wxAui problem on the Mac (floating panes appear on top of frame windows that do not own them).

Do you have a typical platform dependent issue you're battling with ? Ask it here. Make sure you mention your platform, compiler, and wxWidgets version.
Post Reply
tonyvsuk
Knows some wx things
Knows some wx things
Posts: 41
Joined: Wed Oct 19, 2011 12:41 pm

wxAui problem on the Mac (floating panes appear on top of frame windows that do not own them).

Post by tonyvsuk »

Hello all,

I've got an application where each workspace window has a number of floating panes (all managed by a wxAuiManager).

The problem is that if I have two windows open on the Mac, each with a floating pane, the floating panes appear on top of all other windows. It's as if the floating panes have the wxSTAY_ON_TOP style, but they should only stay on top of their parent window (not other wxFrame windows).

All works fine on Windows, a pane floats on top of it's own parent only.

I've tried setting the Layer during the creation of the panes, but that didn't make any difference. Also cannot see anything in the documentation that is helping me.

Any ideas?

Thanks in advance,

Tony.
tonyvsuk
Knows some wx things
Knows some wx things
Posts: 41
Joined: Wed Oct 19, 2011 12:41 pm

Re: wxAui problem on the Mac (floating panes appear on top of frame windows that do not own them).

Post by tonyvsuk »

Some more info if it helps.

If I create a wxMiniFrame, that also floats on top of all other wxFrame windows (not just it's parent).

If I create a modeless dialog, that behaves correctly, it only floats on it's parent.
User avatar
doublemax
Moderator
Moderator
Posts: 19103
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: wxAui problem on the Mac (floating panes appear on top of frame windows that do not own them).

Post by doublemax »

There may be too few OSX users here to help with that. If you don't get an answer, try on the wx-users Google group where the core wx developers can see your question: https://groups.google.com/g/wx-users
Use the source, Luke!
tonyvsuk
Knows some wx things
Knows some wx things
Posts: 41
Joined: Wed Oct 19, 2011 12:41 pm

Re: wxAui problem on the Mac (floating panes appear on top of frame windows that do not own them).

Post by tonyvsuk »

Some more info on this as I've been experimenting and in case this helps someone else.

If I make the following two changes, I get pretty much what I need (the floating panes become dialogs instead). I know this doesn't fix the problem, but it makes my app work in a similar way to the Windows version and stops any user confusion.

1. Edit framemanager.h, and change the wxAuiPaneInfo.frame variable from a wxFrame to wxWindow.

2. Edit floatpane.h, change
#define wxAuiFloatingFrameBaseClass wxMiniFrame
to
#define wxAuiFloatingFrameBaseClass wxDialog
tonyvsuk
Knows some wx things
Knows some wx things
Posts: 41
Joined: Wed Oct 19, 2011 12:41 pm

Re: wxAui problem on the Mac (floating panes appear on top of frame windows that do not own them).

Post by tonyvsuk »

The modification here does not quite work as intended. When dragging the parent window with a child that is undocked, the child docks by itself.
Post Reply