diff options
author | Cody Russell <cody@jhu.edu> | 2015-03-05 00:36:31 +0300 |
---|---|---|
committer | Cody Russell <cody@jhu.edu> | 2015-03-05 00:37:02 +0300 |
commit | cf275a858c38cfc50ef887871cfacf87f9ca3fb8 (patch) | |
tree | 7b5e24183aa169be37bc43c847c35e9917573a61 /main/src/core/MonoDevelop.Ide/MonoDevelop.Components | |
parent | db013c45d2d480850ac50cfb51e03884c71a88d4 (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.cs | 14 |
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); |