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: 37
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 » Fri Apr 02, 2021 8:13 pm

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: 37
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 » Fri Apr 02, 2021 9:04 pm

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: 16014
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 » Sat Apr 03, 2021 12:33 pm

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: 37
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 » Mon Apr 05, 2021 7:40 pm

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: 37
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 » Tue Apr 06, 2021 8:01 am

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