On 31.01.2013 09:39, Mattias Gaertner wrote:
On Wed, 30 Jan 2013 21:24:38 +0100
Sven Barth <[email protected]> wrote:
[...]
But rather often something happens (I don't know what exactly and I'd
like to find this out) and then I can click on the window and I use the
switching window keyboard shortcut all I want and nothing happens. This
even goes so far that modal dialogs (exception windows, open/save
dialog) are opened behind(!) all other windows. So I first need to move
the IDE and other windows out of the way before I can work in that
dialog. I need to restart the IDE to revert to the original behavior
again (for a while...).
For now I've only achieved this problem with the IDE, not with a custom
program. It would be nice if someone had an idea what I could test to
narrow this problem down (the console output does not print anything
useful).
If you have trouble with ShowModal, then it is a bug in the LCL gtk2
interface or below.
ShowModal had in the past some problems with other window managers
too.
Please update to 40085, compile with -dVerboseTransient, then run again.
When it happens again look at the end of the output for 'DEFINE
transient'.
I've done as you proposed (it's an IDE with virgin settings and without
docking, just in case) and I've attached two debug outputs. In both
cases I have started the IDE and opened the File Open dialog with
Ctrl+O. In the "normal" case I've closed the dialog using "ESC" in the
"problem" case I've first used "Win+k" to switch to a different window
of the IDE (which wasn't moved to front of course, but the windows
manager nevertheless marked the windows as focused) and then I've closed
the dialog. After this forceful switch the behavior described in my
original mail appeared (reproduceable).
I've also checked whether some output happens directly after using
"Win+k", but this is not the case...
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 099B98E0 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 099B98E0 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=09BA9CD0
Child=SourceNotebook:TSourceNotebook Index=3 Wnd=09BD2D80
Define TRANSIENT Parent=SourceNotebook:TSourceNotebook Index=3 Wnd=09BD2D80
Child=Form1:TForm1 Index=2 Wnd=09BE0F00
Define TRANSIENT Parent=Form1:TForm1 Index=2 Wnd=09BE0F00
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=1 Wnd=09BAA0B8
Define TRANSIENT Parent=ObjectInspectorDlg:TObjectInspectorDlg Index=1
Wnd=09BAA0B8 Child=MainIDE:TMainIDEBar Index=0 Wnd=099B9C50
Define TRANSIENT Parent=MainIDE:TMainIDEBar Index=0 Wnd=099B9C50
Child=:TOpenDialog Index=0 Wnd=09CA1820
Break old TRANSIENT i=5/6 OldTransientParent=00000000 Child=:TOpenDialog
Index=0 Wnd=09CA1820
Break old TRANSIENT i=4/6 OldTransientParent=00000000 Child=MainIDE:TMainIDEBar
Index=0 Wnd=099B9C50
Break old TRANSIENT i=3/6 OldTransientParent=00000000
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=1 Wnd=09BAA0B8
Break old TRANSIENT i=2/6 OldTransientParent=00000000 Child=Form1:TForm1
Index=2 Wnd=09BE0F00
Break old TRANSIENT i=1/6 OldTransientParent=00000000
Child=SourceNotebook:TSourceNotebook Index=3 Wnd=09BD2D80
Set TRANSIENT i=1/6 Child=SourceNotebook:TSourceNotebook Index=3 Wnd=09BD2D80
Parent=09BA9CD0
Set TRANSIENT i=2/6 Child=Form1:TForm1 Index=2 Wnd=09BE0F00 Parent=09BD2D80
Set TRANSIENT i=3/6 Child=ObjectInspectorDlg:TObjectInspectorDlg Index=1
Wnd=09BAA0B8 Parent=09BE0F00
Set TRANSIENT i=4/6 Child=MainIDE:TMainIDEBar Index=0 Wnd=099B9C50
Parent=09BAA0B8
Set TRANSIENT i=5/6 Child=:TOpenDialog Index=0 Wnd=09CA1820 Parent=099B9C50
DestroyCommonDialogAddOns :TOpenDialog
DestroyCommonDialogAddOns :TOpenDialog
TGtk2WidgetSet.UntransientWindow 09CA1820 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
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 0A0CD8E0 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 0A0CD8E0 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=0A2BDCD0
Child=SourceNotebook:TSourceNotebook Index=3 Wnd=0A2E5D80
Define TRANSIENT Parent=SourceNotebook:TSourceNotebook Index=3 Wnd=0A2E5D80
Child=Form1:TForm1 Index=2 Wnd=0A2F4700
Define TRANSIENT Parent=Form1:TForm1 Index=2 Wnd=0A2F4700
Child=MainIDE:TMainIDEBar Index=1 Wnd=0A0CDC50
Define TRANSIENT Parent=MainIDE:TMainIDEBar Index=1 Wnd=0A0CDC50
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=0 Wnd=0A2BE0B8
Define TRANSIENT Parent=ObjectInspectorDlg:TObjectInspectorDlg Index=0
Wnd=0A2BE0B8 Child=:TOpenDialog Index=0 Wnd=0A3B4808
Break old TRANSIENT i=5/6 OldTransientParent=00000000 Child=:TOpenDialog
Index=0 Wnd=0A3B4808
Break old TRANSIENT i=4/6 OldTransientParent=00000000
Child=ObjectInspectorDlg:TObjectInspectorDlg Index=0 Wnd=0A2BE0B8
Break old TRANSIENT i=3/6 OldTransientParent=00000000 Child=MainIDE:TMainIDEBar
Index=1 Wnd=0A0CDC50
Break old TRANSIENT i=2/6 OldTransientParent=00000000 Child=Form1:TForm1
Index=2 Wnd=0A2F4700
Break old TRANSIENT i=1/6 OldTransientParent=00000000
Child=SourceNotebook:TSourceNotebook Index=3 Wnd=0A2E5D80
Set TRANSIENT i=1/6 Child=SourceNotebook:TSourceNotebook Index=3 Wnd=0A2E5D80
Parent=0A2BDCD0
Set TRANSIENT i=2/6 Child=Form1:TForm1 Index=2 Wnd=0A2F4700 Parent=0A2E5D80
Set TRANSIENT i=3/6 Child=MainIDE:TMainIDEBar Index=1 Wnd=0A0CDC50
Parent=0A2F4700
Set TRANSIENT i=4/6 Child=ObjectInspectorDlg:TObjectInspectorDlg Index=0
Wnd=0A2BE0B8 Parent=0A0CDC50
Set TRANSIENT i=5/6 Child=:TOpenDialog Index=0 Wnd=0A3B4808 Parent=0A2BE0B8
DestroyCommonDialogAddOns :TOpenDialog
TGtk2WidgetSet.UntransientWindow 0A3B4808 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
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus