diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-07-23 14:22:27 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-07-23 14:22:27 +0000 |
commit | c623cfe0f3f1877aff480d64165965c5956a643c (patch) | |
tree | f5182983b09fab8b9b3547fa85d81c1692e9b3e6 /gtk2_ardour/au_pluginui.mm | |
parent | ec0a1b88bb06dfffdf2046c74fd8e76cbb979299 (diff) |
forward port the carbon window position fix from 2.X
git-svn-id: svn://localhost/ardour2/branches/3.0@13069 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/au_pluginui.mm')
-rw-r--r-- | gtk2_ardour/au_pluginui.mm | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm index 0433d2502d..f394e305c8 100644 --- a/gtk2_ardour/au_pluginui.mm +++ b/gtk2_ardour/au_pluginui.mm @@ -542,7 +542,7 @@ AUPluginUI::parent_carbon_window () { #ifdef WITH_CARBON NSWindow* win = get_nswindow (); - int x, y; + Rect windowStructureBoundsRect; if (!win) { return -1; @@ -555,7 +555,11 @@ AUPluginUI::parent_carbon_window () return -1; } - toplevel->get_window()->get_root_origin (x, y); + /* figure out where the cocoa parent window is in carbon-coordinate space, which + differs from both cocoa-coordinate space and GTK-coordinate space + */ + + GetWindowBounds((WindowRef) [win windowRef], kWindowStructureRgn, &windowStructureBoundsRect); /* compute how tall the title bar is, because we have to offset the position of the carbon window by that much. @@ -568,13 +572,16 @@ AUPluginUI::parent_carbon_window () int packing_extra = 6; // this is the total vertical packing in our top level window + /* move into position, based on parent window position */ + MoveWindow (carbon_window, + windowStructureBoundsRect.left, + windowStructureBoundsRect.top + titlebar_height + top_box.get_height() + packing_extra, + false); + ShowWindow (carbon_window); + // create the cocoa window for the carbon one and make it visible cocoa_parent = [[NSWindow alloc] initWithWindowRef: carbon_window]; - PositionWindow (carbon_window, [cocoa_parent windowRef], kWindowCascadeStartAtParentWindowScreen); - MoveWindow (carbon_window, x, y + titlebar_height + top_box.get_height() + packing_extra, false); - ShowWindow (carbon_window); - SetWindowActivationScope (carbon_window, kWindowActivationScopeNone); _notify = [ [NotificationObject alloc] initWithPluginUI:this andCocoaParent:cocoa_parent andTopLevelParent:win ]; |