summaryrefslogtreecommitdiff
path: root/gtk2_ardour/au_pluginui.mm
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-07-23 14:22:27 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-07-23 14:22:27 +0000
commitc623cfe0f3f1877aff480d64165965c5956a643c (patch)
treef5182983b09fab8b9b3547fa85d81c1692e9b3e6 /gtk2_ardour/au_pluginui.mm
parentec0a1b88bb06dfffdf2046c74fd8e76cbb979299 (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.mm19
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 ];