Question

I have a problem with Qt modeless dialog in Solaris 8/10 machine using CDE (Common Desktop Environment).

The dialog serve as drawing panel/popup that required user to choose the tools from main application before proceeding to draw on it. The problem is whenever user click on main application toolbar, then the dialog will goes behind the main application.

Notice that this is the behavior pertaining to CDE only, Open Windows enviroment or Solaris Java environment don't cause this issue.

My question is how can I make it always on top of its parent (main application)?

I've tried to pass in WX11BypassWM flag to the dialog, to by pass window manager, but then the border and frame is gone which cause the dialog to not drag/move-able.

Update 1:

With regard to Andy's answer:

I've tried Qt::WStyle_StaysOnTop, but it doesn't work.

I tried also to combine:

WX11BypassWM | WStyle_StaysOnTop | WStyle_Title

and other combinationa of WStyle_DialogBorder, WType_TopLevel etc, it only stays on top if WX11BypassWM is passed in.

But whenever WX11BypassWM is passed in, the dialog shown up will not have border nor the tittle bar.

Which means it's a unmove-able tittle-less dialog.

Update 2:

Since I can't find a solution for this issue, for the time being, I resolve it by resizing and reposition the main application and the modeless dialog to be side by side.

This at least will let user navigate in both interface.

Anyone if has a better suggestion then let me know.

No correct solution

OTHER TIPS

I'm not sure I understood your question, but, wouldn't it be possible to use :

Found in QtAssistant :

enum Qt::WindowType
flags Qt::WindowFlags

Qt::WindowStaysOnTopHint :

"Informs the window system that the window should stay on top of all other windows."

I hope it helps a bit !

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top