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

Reply via email to