[Mono-bugs] [Bug 82835][Blo] New - GraphicsPath.IsVisible does not hit test shapes properly.
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Thu Sep 13 10:23:55 EDT 2007
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by brock.reeve at ni.com.
http://bugzilla.ximian.com/show_bug.cgi?id=82835
--- shadow/82835 2007-09-13 10:23:55.000000000 -0400
+++ shadow/82835.tmp.15465 2007-09-13 10:23:55.000000000 -0400
@@ -0,0 +1,63 @@
+Bug#: 82835
+Product: Mono: Class Libraries
+Version: 1.2
+OS: SUSE 9.2
+OS Details: I am actuall using openSUSE 10.2. This also doesn't work on MacOS
+Status: NEW
+Resolution:
+Severity:
+Priority: Blocker
+Component: Sys.Drawing.
+AssignedTo: mono-bugs at ximian.com
+ReportedBy: brock.reeve at ni.com
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: GraphicsPath.IsVisible does not hit test shapes properly.
+
+Description of Problem:
+GraphicsPath.IsVisible does not work correctly on non windows machines. I
+am using the latest version of MONO 1.2.5
+
+Steps to reproduce the problem:
+- Create a new Windows Forms application on WindowsXP using VS2005.
+- Drop a textbox onto the bottom portion of the form.
+- Paste the following code into the form class definition.
+ private GraphicsPath CreatePath()
+ {
+ GraphicsPath path = new GraphicsPath();
+ path.AddEllipse(new Rectangle(20, 20, 100, 100));
+ return path;
+ }
+
+ protected override void OnPaint(PaintEventArgs e)
+ {
+ base.OnPaint(e);
+
+ using (GraphicsPath path = CreatePath())
+ e.Graphics.FillPath(Brushes.Red, path);
+ }
+
+ protected override void OnMouseMove(MouseEventArgs e)
+ {
+ base.OnMouseMove(e);
+ bool hit = false;
+ using (GraphicsPath path = CreatePath())
+ hit = path.IsVisible(e.X, e.Y);
+
+ textBox1.Text = hit ? "hit" : "miss";
+ }
+
+
+Results:
+
+The string "hit" is never displayed in the texbox when the mouse is moved
+over the red circle when running on non-windows systems. It works fine on
+windows. I expect "hit" to be display when mouse is over the red circle,
+just like windows.
+
+Additional Information:
+
+We are working on a port of our Windows forms controls. We use
+GraphicsPath.IsVisible a ton for hit testing more complicated shapes.
More information about the mono-bugs
mailing list