On 01.02.2013 02:36, Mattias Gaertner wrote:
On Fri, 01 Feb 2013 01:44:17 +0100
Hans-Peter Diettrich <[email protected]> wrote:
Mattias Gaertner schrieb:
>From the output: The LCL gtk2 interfaces sets the right order.
TOpenDialog on top of OI on top of MainIDE on Form1 on SrcNB on
MsgView.
So, the question is what does this WM need more than
gtk_window_set_transient_for.
http://developer.gimp.org/api/2.0/gtk/GtkWindow.html#gtk-window-set-transient-for
A WM manages the windows, and a widgetset (gtk...) only can tell the WM
how his windows should be ordered. A WM may e.g. reorder the window
order on focus switch or other actions, without telling or asking the
widgetset.
According to its source code, "awesome" knows
the transient WM HINT.
To make sure:
Sven, please test if you can focus or bring to front other IDE windows
while a modal dialog is open. Before the error happens and after.
The point is: I can focus other windows without problems (I'm using the
"focus follows mouse cursor" feature), but I can't interact with those
other non-modal windows and they also aren't brought to the front.
I've attached a log where I did the following:
* openen open file dialog
* focused object inspector by moving the mouse there
* closed the dialog
* moved the mouse (and thus the focus) onto the following windows (in
that order)
- object inspector
- form
- source editor
- message window
* opened the dialog again
=> the dialog now appeared behind all other windows
Regards,
Sven
SetPrimaryConfigPath NewValue="/home/sven/.lazarus/1.1-new" ->
"/home/sven/.lazarus/1.1-new"
TMainIDE.ParseCmdLineOptions:
PrimaryConfigPath="/home/sven/.lazarus/1.1-new/"
SecondaryConfigPath="/etc/lazarus"
Hinweis: CodeTools-Konfigurationsdatei nicht gefunden - verwende
Voreinstellungen
NOTE: help options config file not found - using defaults
TGtk2WidgetSet.ShowHide HIDE TSplashForm
TGtk2WidgetSet.UntransientWindow 0AFE38E0 LCLObject=TSplashForm
TGtk2WidgetSet.UpdateTransientWindows
TGtk2WidgetSet.UpdateTransientWindows Untransient 4 MainIDE:TMainIDEBar
TGtk2WidgetSet.UpdateTransientWindows Untransient 3 Form1:TForm1
TGtk2WidgetSet.UpdateTransientWindows Untransient 2
SourceNotebook:TSourceNotebook
TGtk2WidgetSet.UpdateTransientWindows Untransient 1
ObjectInspectorDlg:TObjectInspectorDlg
TGtk2WidgetSet.UpdateTransientWindows Untransient 0 MessagesView:TMessagesView
TGtk2WidgetSet.UntransientWindow 0AFE38E0 LCLObject=TSplashForm
TGtk2WidgetSet.UpdateTransientWindows
TGtk2WidgetSet.UpdateTransientWindows Untransient 4 MainIDE:TMainIDEBar
TGtk2WidgetSet.UpdateTransientWindows Untransient 3 Form1:TForm1
TGtk2WidgetSet.UpdateTransientWindows Untransient 2
SourceNotebook:TSourceNotebook
TGtk2WidgetSet.UpdateTransientWindows Untransient 1
ObjectInspectorDlg:TObjectInspectorDlg
TGtk2WidgetSet.UpdateTransientWindows Untransient 0 MessagesView:TMessagesView
TGtkWidgetSet.GtkWindowShowModal nil
TGtk2WidgetSet.UpdateTransientWindows
Define TRANSIENT Parent=MessagesView:TMessagesView Index=4 Wnd=0B1D3CD0
Child=SourceNotebook:TSourceNotebook Index=3 Wnd=0B1FBD80
Define TRANSIENT Parent=SourceNotebook:TSourceNotebook Index=3 Wnd=0B1FBD80
Child=Form1:TForm1 Index=2 Wnd=0B20A700
Define TRANSIENT Parent=Form1:TForm1 Index=2 Wnd=0B20A700
Child=MainIDE:TMainIDEBar Index=1 Wnd=0AFE3C50
Define TRANSIENT Parent=MainIDE:TMainIDEBar Index=1 Wnd=0AFE3C50
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=0 Wnd=0B1D40B8
Define TRANSIENT Parent=ObjectInspectorDlg:TObjectInspectorDlg Index=0
Wnd=0B1D40B8 Child=:TOpenDialog Index=0 Wnd=0B2CB020
Break old TRANSIENT i=5/6 OldTransientParent=00000000 Child=:TOpenDialog
Index=0 Wnd=0B2CB020
Break old TRANSIENT i=4/6 OldTransientParent=00000000
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=0 Wnd=0B1D40B8
Break old TRANSIENT i=3/6 OldTransientParent=00000000 Child=MainIDE:TMainIDEBar
Index=1 Wnd=0AFE3C50
Break old TRANSIENT i=2/6 OldTransientParent=00000000 Child=Form1:TForm1
Index=2 Wnd=0B20A700
Break old TRANSIENT i=1/6 OldTransientParent=00000000
Child=SourceNotebook:TSourceNotebook Index=3 Wnd=0B1FBD80
Set TRANSIENT i=1/6 Child=SourceNotebook:TSourceNotebook Index=3 Wnd=0B1FBD80
Parent=0B1D3CD0
Set TRANSIENT i=2/6 Child=Form1:TForm1 Index=2 Wnd=0B20A700 Parent=0B1FBD80
Set TRANSIENT i=3/6 Child=MainIDE:TMainIDEBar Index=1 Wnd=0AFE3C50
Parent=0B20A700
Set TRANSIENT i=4/6 Child=ObjectInspectorDlg:TObjectInspectorDlg Index=0
Wnd=0B1D40B8 Parent=0AFE3C50
Set TRANSIENT i=5/6 Child=:TOpenDialog Index=0 Wnd=0B2CB020 Parent=0B1D40B8
DestroyCommonDialogAddOns :TOpenDialog
DestroyCommonDialogAddOns :TOpenDialog
TGtk2WidgetSet.UntransientWindow 0B2CB020 LCLObject=TOpenDialog
TGtk2WidgetSet.UpdateTransientWindows
TGtk2WidgetSet.UpdateTransientWindows Untransient 4 MainIDE:TMainIDEBar
TGtk2WidgetSet.UpdateTransientWindows Untransient 3 Form1:TForm1
TGtk2WidgetSet.UpdateTransientWindows Untransient 2
SourceNotebook:TSourceNotebook
TGtk2WidgetSet.UpdateTransientWindows Untransient 1
ObjectInspectorDlg:TObjectInspectorDlg
TGtk2WidgetSet.UpdateTransientWindows Untransient 0 MessagesView:TMessagesView
TGtkWidgetSet.GtkWindowShowModal nil
TGtk2WidgetSet.UpdateTransientWindows
Define TRANSIENT Parent=MainIDE:TMainIDEBar Index=4 Wnd=0AFE3C50
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=3 Wnd=0B1D40B8
Define TRANSIENT Parent=ObjectInspectorDlg:TObjectInspectorDlg Index=3
Wnd=0B1D40B8 Child=Form1:TForm1 Index=2 Wnd=0B20A700
Define TRANSIENT Parent=Form1:TForm1 Index=2 Wnd=0B20A700
Child=SourceNotebook:TSourceNotebook Index=1 Wnd=0B1FBD80
Define TRANSIENT Parent=SourceNotebook:TSourceNotebook Index=1 Wnd=0B1FBD80
Child=MessagesView:TMessagesView Index=0 Wnd=0B1D3CD0
Define TRANSIENT Parent=MessagesView:TMessagesView Index=0 Wnd=0B1D3CD0
Child=:TOpenDialog Index=0 Wnd=0B2CB458
Break old TRANSIENT i=5/6 OldTransientParent=00000000 Child=:TOpenDialog
Index=0 Wnd=0B2CB458
Break old TRANSIENT i=4/6 OldTransientParent=00000000
Child=MessagesView:TMessagesView Index=0 Wnd=0B1D3CD0
Break old TRANSIENT i=3/6 OldTransientParent=00000000
Child=SourceNotebook:TSourceNotebook Index=1 Wnd=0B1FBD80
Break old TRANSIENT i=2/6 OldTransientParent=00000000 Child=Form1:TForm1
Index=2 Wnd=0B20A700
Break old TRANSIENT i=1/6 OldTransientParent=00000000
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=3 Wnd=0B1D40B8
Set TRANSIENT i=1/6 Child=ObjectInspectorDlg:TObjectInspectorDlg Index=3
Wnd=0B1D40B8 Parent=0AFE3C50
Set TRANSIENT i=2/6 Child=Form1:TForm1 Index=2 Wnd=0B20A700 Parent=0B1D40B8
Set TRANSIENT i=3/6 Child=SourceNotebook:TSourceNotebook Index=1 Wnd=0B1FBD80
Parent=0B20A700
Set TRANSIENT i=4/6 Child=MessagesView:TMessagesView Index=0 Wnd=0B1D3CD0
Parent=0B1FBD80
Set TRANSIENT i=5/6 Child=:TOpenDialog Index=0 Wnd=0B2CB458 Parent=0B1D3CD0
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus