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

Reply via email to