Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Russell <cody@jhu.edu>2015-03-05 00:36:31 +0300
committerCody Russell <cody@jhu.edu>2015-03-05 00:37:02 +0300
commitcf275a858c38cfc50ef887871cfacf87f9ca3fb8 (patch)
tree7b5e24183aa169be37bc43c847c35e9917573a61 /main/src/core/MonoDevelop.Ide/MonoDevelop.Components
parentdb013c45d2d480850ac50cfb51e03884c71a88d4 (diff)
[Core] Fix position calculations of native Mac context menus
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=26170
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Components')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/ContextMenuExtensionsMac.cs14
1 files changed, 6 insertions, 8 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/ContextMenuExtensionsMac.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/ContextMenuExtensionsMac.cs
index a5ae8e01dd..706cd86f9a 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/ContextMenuExtensionsMac.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/ContextMenuExtensionsMac.cs
@@ -70,19 +70,17 @@ namespace MonoDevelop.Components
Gdk.Pointer.Ungrab (Gtk.Global.CurrentEventTime);
var nsview = MonoDevelop.Components.Mac.GtkMacInterop.GetNSView (parent);
var toplevel = parent.Toplevel as Gtk.Window;
- int trans_x, trans_y;
- parent.TranslateCoordinates (toplevel, (int)x, (int)y, out trans_x, out trans_y);
- // Window coordinates in gtk are the same for cocoa, with the exception of the Y coordinate, that has to be flipped.
- var pt = new CoreGraphics.CGPoint ((float)trans_x, (float)trans_y);
- int w,h;
- toplevel.GetSize (out w, out h);
- pt.Y = h - pt.Y;
+ var screenPoint = NSEvent.CurrentMouseLocation;
+ var screenRect = new CoreGraphics.CGRect (screenPoint.X, screenPoint.Y, 0, 0);
+ var nswindow = MonoDevelop.Components.Mac.GtkMacInterop.GetNSWindow (toplevel);
+ var rect = nswindow.ConvertRectFromScreen (screenRect);
+ var pt = rect.Location;
var tmp_event = NSEvent.MouseEvent (NSEventType.LeftMouseDown,
pt,
0, 0,
- MonoDevelop.Components.Mac.GtkMacInterop.GetNSWindow (toplevel).WindowNumber,
+ nswindow.WindowNumber,
null, 0, 0, 0);
NSMenu.PopUpContextMenu (menu, tmp_event, nsview);