Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2013-02

IDE window positions

22 messages · 7 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ludo Brands

Hi all,

kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930.

Tired of re-positioning IDE windows after lazarus start-up I have defined custom positions for the main IDE windows. Now, when I start up the computer and start lazarus, the windows are all messed up. I close lazarus, restart lazarus and some of the windows are in the correct position, restart lazarus again and all windows are as defined!! Sometimes a 4th restart is needed. I can restart lazarus as many times as needed thereafter and the windows will be positioned fine, until the next reboot.

When the windows are messed up, the position is random but not the window sizes. The windows sizes are as pre-defined or saved (I have only 6 custom positions, the other are restore window geometry) but the Main Menu will be in the position of fe. the console window or message window, etc. As if a the window positions are restored with a wrong, random, offset.

Is there something I can do to debug this? This is repeatable and could be the reason for some of the complaints of some people about window positions not always being restored correctly (Graeme?). Combine this behaviour with restore window geometry and there is no way to get your original window positions back since, the wrong positions are saved when exiting lazarus.

Mantis?

thanks, Ludo

Reply by email

Mattias Gaertner
to Ludo Brands
Show quoted text 28 lines
Hi all, kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. Tired of re-positioning IDE windows after lazarus start-up I have defined custom positions for the main IDE windows. Now, when I start up the computer and start lazarus, the windows are all messed up. I close lazarus, restart lazarus and some of the windows are in the correct position, restart lazarus again and all windows are as defined!! Sometimes a 4th restart is needed. I can restart lazarus as many times as needed thereafter and the windows will be positioned fine, until the next reboot. When the windows are messed up, the position is random but not the window sizes. The windows sizes are as pre-defined or saved (I have only 6 custom positions, the other are restore window geometry) but the Main Menu will be in the position of fe. the console window or message window, etc. As if a the window positions are restored with a wrong, random, offset. Is there something I can do to debug this? This is repeatable and could be the reason for some of the complaints of some people about window positions not always being restored correctly (Graeme?). Combine this behaviour with restore window geometry and there is no way to get your original window positions back since, the wrong positions are saved when exiting lazarus. Mantis?

Yes, please search if it is already reported.

Mattias

Reply by email

Mark Morgan Lloyd
to Ludo Brands: kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. Tired of re-positioning IDE windows…
Ludo Brands wrote 26 lines
Hi all, kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. Tired of re-positioning IDE windows after lazarus start-up I have defined custom positions for the main IDE windows. Now, when I start up the computer and start lazarus, the windows are all messed up. I close lazarus, restart lazarus and some of the windows are in the correct position, restart lazarus again and all windows are as defined!! Sometimes a 4th restart is needed. I can restart lazarus as many times as needed thereafter and the windows will be positioned fine, until the next reboot. When the windows are messed up, the position is random but not the window sizes. The windows sizes are as pre-defined or saved (I have only 6 custom positions, the other are restore window geometry) but the Main Menu will be in the position of fe. the console window or message window, etc. As if a the window positions are restored with a wrong, random, offset. Is there something I can do to debug this? This is repeatable and could be the reason for some of the complaints of some people about window positions not always being restored correctly (Graeme?). Combine this behaviour with restore window geometry and there is no way to get your original window positions back since, the wrong positions are saved when exiting lazarus.

Might be worth checking whether this is specific to GTK, i.e. Qt is unaffected. I notice that when running a Lazarus+GTK program (including the IDE itself) on Debian+KDE (which I believe is comparable with Kubuntu) some windows sporadically minimise themselves when desktops are switched.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Juha Manninen
to Ludo Brands: kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. Tired of re-positioning IDE windows…

Sounds like this bug:
http://bugs.freepascal.org/view.php?id=14906

although you apparently hit the bug much more often than others. For example I see it only once in few months yet I start Lazarus often. It means that you are the only person who can debug the problem. :)

I am thinking what can cause the randomness. There are no asynchronous messages, no threading, no complex widgetset interaction when setting the window positions.
It is done in Lazarus code. Values are read from a config file and windows and given positions.
Ok, there is widgetset interaction but this one is simple and well tested.

Uninitialized variable is my biggest suspect. Where it is, I have no idea.

Juha

Reply by email

Juha Manninen
to Mark Morgan Lloyd: Might be worth checking whether this is specific to GTK, i.e. Qt is unaffected. I notice…
Mark Morgan Lloyd wrote
Might be worth checking whether this is specific to GTK, i.e. Qt is unaffected.

It happens with QT, too.
What about the other widgetsets, Windows and OS/X? I don't know

I notice that when running a Lazarus+GTK program (including the IDE itself) on Debian+KDE (which I believe is comparable with Kubuntu) some windows sporadically minimise themselves when desktops are switched.

This sounds like a different problem.

Juha

Reply by email

zeljko
to Mark Morgan Lloyd: Might be worth checking whether this is specific to GTK, i.e. Qt is unaffected. I notice…
Mark Morgan Lloyd wrote 33 lines
Ludo Brands wrote: > Hi all, > > kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. > > Tired of re-positioning IDE windows after lazarus start-up I have > defined custom positions for the main IDE windows. Now, when I start up > the computer and start lazarus, the windows are all messed up. I close > lazarus, restart lazarus and some of the windows are in the correct > position, restart lazarus again and all windows are as defined!! > Sometimes a 4th restart is needed. I can restart lazarus as many times > as needed thereafter and the windows will be positioned fine, until the > next reboot. > > When the windows are messed up, the position is random but not the > window sizes. The windows sizes are as pre-defined or saved (I have only > 6 custom positions, the other are restore window geometry) but the Main > Menu will be in the position of fe. the console window or message > window, etc. As if a the window positions are restored with a wrong, > random, offset. > > Is there something I can do to debug this? This is repeatable and could > be the reason for some of the complaints of some people about window > positions not always being restored correctly (Graeme?). Combine this > behaviour with restore window geometry and there is no way to get your > original window positions back since, the wrong positions are saved when > exiting lazarus. Might be worth checking whether this is specific to GTK, i.e. Qt is unaffected. I notice that when running a Lazarus+GTK program (including the IDE itself) on Debian+KDE (which I believe is comparable with Kubuntu) some windows sporadically minimise themselves when desktops are switched.

Actually, pager minimizes windows when you switch desktops , thats how virtual desktops works on X11.

zeljko

Reply by email

Graeme Geldenhuys
to Ludo Brands: kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. Tired of re-positioning IDE windows…
Ludo Brands wrote
be the reason for some of the complaints of some people about window positions not always being restored correctly (Graeme?).

[ I like how my name gets brought into this. ;-) ]

I've always used "Custom Position" for the main windows I am interested in (Project Inspector, Main window, Editor and Messages). Just remember to position them, then click the "Get" button in the Window Settings dialog, so it gets the exact coordinates.

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/

Reply by email

Ludo Brands
to Juha Manninen: Sounds like this bug: http://bugs.freepascal.org/view.php?id=14906 although you…
Juha Manninen wrote 7 lines
Sounds like this bug: http://bugs.freepascal.org/view.php?id=14906 although you apparently hit the bug much more often than others. For example I see it only once in few months yet I start Lazarus often. It means that you are the only person who can debug the problem. :)

This bug is my daily "good morning" from lazarus since I moved to Kubuntu ;)

Show quoted text 9 lines
I am thinking what can cause the randomness. There are no asynchronous messages, no threading, no complex widgetset interaction when setting the window positions. It is done in Lazarus code. Values are read from a config file and windows and given positions. Ok, there is widgetset interaction but this one is simple and well tested. Uninitialized variable is my biggest suspect. Where it is, I have no idea.

I'll start with throwing in a lot of debug lines. Any suggestions on where and what to look for are welcome.

Ludo

Reply by email

Graeme Geldenhuys
to zeljko: Actually, pager minimizes windows when you switch desktops , thats how virtual desktops…
zeljko wrote
Actually, pager minimizes windows when you switch desktops , thats how virtual desktops works on X11.

No, not always true as far as I know. Maybe it is dependent on the window manager or virtual desktop applet. eg: Take the FVWM2 window manager. You can drag your "active screen area" to the centre of a 2x2 virtual desktop grid, and see windows of all four virtual desktops.

Windows on the other hand secretly position windows with a huge negative coordinate when you minimize them. In fpGUI I once had a "restore window" issue, and discovered this. X11 behaved differently - coordinates never changed for hidden windows.

Regards,
- Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/

Reply by email

Mark Morgan Lloyd
to zeljko: Actually, pager minimizes windows when you switch desktops , thats how virtual desktops…
zeljko wrote 8 lines
> Might be worth checking whether this is specific to GTK, i.e. Qt is > unaffected. I notice that when running a Lazarus+GTK program (including > the IDE itself) on Debian+KDE (which I believe is comparable with > Kubuntu) some windows sporadically minimise themselves when desktops are > switched. Actually, pager minimizes windows when you switch desktops , thats how virtual desktops works on X11.

No doubt, but it's hardly normal to find that they stay minimised when you switch back.

Whatever, I only mentioned it as an example of something that appeared to affect a limited number of widget sets and possibly (noting Graeme's comment) versions of window manager. "I'll get my coat" :-)

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Ludo Brands
to Juha Manninen: Sounds like this bug: http://bugs.freepascal.org/view.php?id=14906 although you…
Juha Manninen wrote 9 lines
I am thinking what can cause the randomness. There are no asynchronous messages, no threading, no complex widgetset interaction when setting the window positions. It is done in Lazarus code. Values are read from a config file and windows and given positions. Ok, there is widgetset interaction but this one is simple and well tested. Uninitialized variable is my biggest suspect. Where it is, I have no idea.

Made some progress. Lazarus build with dVerboseIDEDocking -dCHECK_POSITION. The output for lazarus opening with the windows positioned correctly and for lazarus messed up after reboot are below.

You'll notice when things go wrong that the forms are created at the correct position but then a bunch of WMSize messages come in and change everything. Ex: [TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=6 Message.Width=299 Message.Height=109 AutoSizeDelayed=True.

Any clue where these messages are coming from? Debugging messages is not easy.

Lazarus with IDE windows OK:

SetPrimaryConfigPath
NewValue="/home/ludo/D1000/fpclaztrunk/config_lazarus" -> "/home/ludo/D1000/fpclaztrunk/config_lazarus"
TMainIDE.ParseCmdLineOptions:
PrimaryConfigPath="/home/ludo/D1000/fpclaztrunk/config_lazarus/" SecondaryConfigPath="/etc/lazarus"
[TCustomForm.UpdateShowing] STAR :TSplashForm Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TSplashForm Pos=0,0 [TCustomForm.UpdateShowing] activating :TSplashForm Pos=0,0 [TCustomForm.WMSize] SplashForm:TSplashForm Message.SizeType=6 Message.Width=450 Message.Height=300 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR SplashForm:TSplashForm Pos=615,375 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited SplashForm:TSplashForm Pos=615,375
[TCustomForm.UpdateShowing] activating SplashForm:TSplashForm Pos=615,375 [TCustomForm.UpdateShowing] STAR :TMacroListView Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TMacroListView Pos=0,0 [TCustomForm.UpdateShowing] activating :TMacroListView Pos=0,0 [TCustomForm.UpdateShowing] STAR :TMainIDEBar Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TMainIDEBar Pos=0,0 [TCustomForm.UpdateShowing] activating :TMainIDEBar Pos=0,0 [TCustomForm.UpdateShowing] STAR :TLazFindInFilesDialog Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TLazFindInFilesDialog Pos=0,0
[TCustomForm.UpdateShowing] activating :TLazFindInFilesDialog Pos=0,0 [TCustomForm.UpdateShowing] STAR :TIdeLoggerForm Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TIdeLoggerForm Pos=0,0 [TCustomForm.UpdateShowing] activating :TIdeLoggerForm Pos=0,0 [TCustomForm.UpdateShowing] STAR :TMessagesView Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TMessagesView Pos=0,0 [TCustomForm.UpdateShowing] activating :TMessagesView Pos=0,0 [TCustomForm.UpdateShowing] STAR :TLazFindReplaceDialog Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TLazFindReplaceDialog Pos=0,0
[TCustomForm.UpdateShowing] activating :TLazFindReplaceDialog Pos=0,0 [TCustomForm.UpdateShowing] STAR :TPseudoConsoleDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TPseudoConsoleDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TPseudoConsoleDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow
Form=PseudoTerminal:TPseudoConsoleDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore PseudoTerminal CustomPosition 0,788,353,200
[TCustomForm.UpdateShowing] STAR PseudoTerminal:TPseudoConsoleDlg Pos=0,788 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
PseudoTerminal:TPseudoConsoleDlg Pos=0,788
[TCustomForm.UpdateShowing] activating PseudoTerminal:TPseudoConsoleDlg Pos=0,788
[TCustomForm.UpdateShowing] STAR :TWatchesDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TWatchesDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TWatchesDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=Watches:TWatchesDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore Watches RestoreWindowGeometry 0,561,353,200
[TCustomForm.UpdateShowing] STAR Watches:TWatchesDlg Pos=0,561 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited Watches:TWatchesDlg Pos=0,561 [TCustomForm.UpdateShowing] activating Watches:TWatchesDlg Pos=0,561 [TCustomForm.UpdateShowing] STAR :TCallStackDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TCallStackDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TCallStackDlg Pos=0,0 [TCustomForm.UpdateShowing] STAR CallStack:TCallStackDlg Pos=306,130 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited CallStack:TCallStackDlg Pos=306,130
[TCustomForm.UpdateShowing] activating CallStack:TCallStackDlg Pos=306,130 TSimpleWindowLayoutList.ApplyAndShow Form=CallStack:TCallStackDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore CallStack CustomPosition 0,288,353,246
[TCustomForm.WMSize] CallStack:TCallStackDlg Message.SizeType=6 Message.Width=353 Message.Height=246 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR :TEvaluateDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TEvaluateDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TEvaluateDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=EvaluateModify:TEvaluateDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore EvaluateModify CustomPosition 0,561,353,200
[TCustomForm.UpdateShowing] STAR EvaluateModify:TEvaluateDlg Pos=0,561 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
EvaluateModify:TEvaluateDlg Pos=0,561
[TCustomForm.UpdateShowing] activating EvaluateModify:TEvaluateDlg Pos=0,561
TSimpleWindowLayoutList.ApplyAndShow Form=MainIDE:TMainIDEBar False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore MainIDE CustomPosition 0,0,1503,88
[TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=6 Message.Width=1503 Message.Height=88 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR MainIDE:TMainIDEBar Pos=0,0 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited MainIDE:TMainIDEBar Pos=0,0 [TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=128 Message.Width=1503 Message.Height=88 AutoSizeDelayed=False [TCustomForm.UpdateShowing] activating MainIDE:TMainIDEBar Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=MessagesView:TMessagesView False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore MessagesView CustomPosition 357,888,1146,100
[TCustomForm.UpdateShowing] STAR MessagesView:TMessagesView Pos=357,888 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
MessagesView:TMessagesView Pos=357,888
[TCustomForm.UpdateShowing] activating MessagesView:TMessagesView Pos=357,888
[TCustomForm.UpdateShowing] STAR :TObjectInspectorDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TObjectInspectorDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TObjectInspectorDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow
Form=ObjectInspectorDlg:TObjectInspectorDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore ObjectInspectorDlg CustomPosition 0,115,299,625
[TCustomForm.UpdateShowing] STAR ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115
[TCustomForm.UpdateShowing] activating
ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115
TSimpleWindowLayoutList.ApplyAndShow Form=MainIDE:TMainIDEBar False DesktopWidth=1680 DesktopHeight=1050
[TCustomForm.UpdateShowing] STAR :TSourceNotebook Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TSourceNotebook Pos=0,0 [TCustomForm.UpdateShowing] activating :TSourceNotebook Pos=0,0 [TCustomForm.UpdateShowing] STAR :THintWindow Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :THintWindow Pos=0,0 [TCustomForm.UpdateShowing] activating :THintWindow Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook True DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore SourceNotebook CustomPosition 357,115,1146,746
[TCustomForm.UpdateShowing] STAR SourceNotebook:TSourceNotebook Pos=357,115 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
SourceNotebook:TSourceNotebook Pos=357,115
[TCustomForm.UpdateShowing] activating SourceNotebook:TSourceNotebook Pos=357,115
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook True DesktopWidth=1680 DesktopHeight=1050
[TCustomForm.UpdateShowing] STAR :THintWindow Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :THintWindow Pos=0,0 [TCustomForm.UpdateShowing] activating :THintWindow Pos=0,0 [TCustomForm.UpdateShowing] STAR Form1:TForm1 Pos=250,250 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited Form1:TForm1 Pos=250,250 [TCustomForm.UpdateShowing] activating Form1:TForm1 Pos=250,250 TSimpleWindowLayoutList.ApplyAndShow Form=MessagesView:TMessagesView False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook True DesktopWidth=1680 DesktopHeight=1050
[TCustomForm.UpdateShowing] STAR SplashForm:TSplashForm Pos=615,375 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited SplashForm:TSplashForm Pos=615,375
[TCustomForm.UpdateShowing] activating SplashForm:TSplashForm Pos=615,375 [TCustomForm.UpdateShowing] STAR PseudoTerminal:TPseudoConsoleDlg Pos=0,788 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
PseudoTerminal:TPseudoConsoleDlg Pos=0,788
[TCustomForm.UpdateShowing] activating PseudoTerminal:TPseudoConsoleDlg Pos=0,788
[TCustomForm.UpdateShowing] STAR Watches:TWatchesDlg Pos=0,561 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited Watches:TWatchesDlg Pos=0,561 [TCustomForm.UpdateShowing] activating Watches:TWatchesDlg Pos=0,561 [TCustomForm.UpdateShowing] STAR CallStack:TCallStackDlg Pos=0,288 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited CallStack:TCallStackDlg Pos=0,288
[TCustomForm.UpdateShowing] activating CallStack:TCallStackDlg Pos=0,288 [TCustomForm.UpdateShowing] STAR EvaluateModify:TEvaluateDlg Pos=0,561 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
EvaluateModify:TEvaluateDlg Pos=0,561
[TCustomForm.UpdateShowing] activating EvaluateModify:TEvaluateDlg Pos=0,561
[TCustomForm.UpdateShowing] STAR MessagesView:TMessagesView Pos=357,888 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
MessagesView:TMessagesView Pos=357,888
[TCustomForm.UpdateShowing] activating MessagesView:TMessagesView Pos=357,888
[TCustomForm.UpdateShowing] STAR ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115
[TCustomForm.UpdateShowing] activating
ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115
[TCustomForm.UpdateShowing] STAR MainIDE:TMainIDEBar Pos=0,0 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited MainIDE:TMainIDEBar Pos=0,0 [TCustomForm.UpdateShowing] activating MainIDE:TMainIDEBar Pos=0,0 [TCustomForm.UpdateShowing] STAR
SourceNotebook___140103934165904:TSourceNotebook Pos=357,115 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
SourceNotebook___140103934165904:TSourceNotebook Pos=357,115 [TCustomForm.UpdateShowing] activating
SourceNotebook___140103934165904:TSourceNotebook Pos=357,115 LAZARUS END - cleaning up ...
[TMainIDE.Destroy] A
[TMainIDE.Destroy] B -> inherited Destroy... TMainIDE [TMainIDE.Destroy] END

Broken lazarus after reboot:

TMainIDE.ParseCmdLineOptions:
PrimaryConfigPath="/home/ludo/D1000/fpclaztrunk/config_lazarus/" SecondaryConfigPath="/etc/lazarus"
[TCustomForm.UpdateShowing] STAR :TSplashForm Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TSplashForm Pos=0,0 [TCustomForm.UpdateShowing] activating :TSplashForm Pos=0,0 [TCustomForm.WMSize] SplashForm:TSplashForm Message.SizeType=6 Message.Width=450 Message.Height=300 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR SplashForm:TSplashForm Pos=615,375 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited SplashForm:TSplashForm Pos=615,375
[TCustomForm.UpdateShowing] activating SplashForm:TSplashForm Pos=615,375 [TCustomForm.WMSize] SplashForm:TSplashForm Message.SizeType=128 Message.Width=309 Message.Height=240 AutoSizeDelayed=False [TCustomForm.WMSize] SplashForm:TSplashForm Message.SizeType=6 Message.Width=309 Message.Height=240 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR :TMacroListView Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TMacroListView Pos=0,0 [TCustomForm.UpdateShowing] activating :TMacroListView Pos=0,0 [TCustomForm.UpdateShowing] STAR :TMainIDEBar Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TMainIDEBar Pos=0,0 [TCustomForm.UpdateShowing] activating :TMainIDEBar Pos=0,0 [TCustomForm.UpdateShowing] STAR :TLazFindInFilesDialog Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TLazFindInFilesDialog Pos=0,0
[TCustomForm.UpdateShowing] activating :TLazFindInFilesDialog Pos=0,0 [TCustomForm.UpdateShowing] STAR :TIdeLoggerForm Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TIdeLoggerForm Pos=0,0 [TCustomForm.UpdateShowing] activating :TIdeLoggerForm Pos=0,0 [TCustomForm.UpdateShowing] STAR :TMessagesView Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TMessagesView Pos=0,0 [TCustomForm.UpdateShowing] activating :TMessagesView Pos=0,0 [TCustomForm.UpdateShowing] STAR :TLazFindReplaceDialog Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TLazFindReplaceDialog Pos=0,0
[TCustomForm.UpdateShowing] activating :TLazFindReplaceDialog Pos=0,0 [TCustomForm.UpdateShowing] STAR :TPseudoConsoleDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TPseudoConsoleDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TPseudoConsoleDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow
Form=PseudoTerminal:TPseudoConsoleDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore PseudoTerminal CustomPosition 0,788,353,200
[TCustomForm.UpdateShowing] STAR PseudoTerminal:TPseudoConsoleDlg Pos=0,788 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
PseudoTerminal:TPseudoConsoleDlg Pos=0,788
[TCustomForm.UpdateShowing] activating PseudoTerminal:TPseudoConsoleDlg Pos=0,788
[TCustomForm.UpdateShowing] STAR :TWatchesDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TWatchesDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TWatchesDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=Watches:TWatchesDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore Watches RestoreWindowGeometry 371,285,309,240
[TCustomForm.UpdateShowing] STAR Watches:TWatchesDlg Pos=371,285 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited Watches:TWatchesDlg Pos=371,285
[TCustomForm.UpdateShowing] activating Watches:TWatchesDlg Pos=371,285 [TCustomForm.UpdateShowing] STAR :TCallStackDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TCallStackDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TCallStackDlg Pos=0,0 [TCustomForm.UpdateShowing] STAR CallStack:TCallStackDlg Pos=306,130 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited CallStack:TCallStackDlg Pos=306,130
[TCustomForm.UpdateShowing] activating CallStack:TCallStackDlg Pos=306,130 TSimpleWindowLayoutList.ApplyAndShow Form=CallStack:TCallStackDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore CallStack CustomPosition 0,288,353,246
[TCustomForm.WMSize] CallStack:TCallStackDlg Message.SizeType=6 Message.Width=353 Message.Height=246 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR :TEvaluateDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TEvaluateDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TEvaluateDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=EvaluateModify:TEvaluateDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore EvaluateModify CustomPosition 0,561,353,200
[TCustomForm.UpdateShowing] STAR EvaluateModify:TEvaluateDlg Pos=0,561 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
EvaluateModify:TEvaluateDlg Pos=0,561
[TCustomForm.UpdateShowing] activating EvaluateModify:TEvaluateDlg Pos=0,561
TSimpleWindowLayoutList.ApplyAndShow Form=MainIDE:TMainIDEBar False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore MainIDE CustomPosition 0,0,1503,88
[TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=6 Message.Width=1503 Message.Height=88 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR MainIDE:TMainIDEBar Pos=0,0 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited MainIDE:TMainIDEBar Pos=0,0 [TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=128 Message.Width=1503 Message.Height=88 AutoSizeDelayed=False [TCustomForm.UpdateShowing] activating MainIDE:TMainIDEBar Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=MessagesView:TMessagesView False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore MessagesView CustomPosition 357,888,1146,100
[TCustomForm.UpdateShowing] STAR MessagesView:TMessagesView Pos=357,888 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
MessagesView:TMessagesView Pos=357,888
[TCustomForm.UpdateShowing] activating MessagesView:TMessagesView Pos=357,888
[TCustomForm.UpdateShowing] STAR :TObjectInspectorDlg Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TObjectInspectorDlg Pos=0,0 [TCustomForm.UpdateShowing] activating :TObjectInspectorDlg Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow
Form=ObjectInspectorDlg:TObjectInspectorDlg False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore ObjectInspectorDlg CustomPosition 0,115,299,625
[TCustomForm.UpdateShowing] STAR ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115
[TCustomForm.UpdateShowing] activating
ObjectInspectorDlg:TObjectInspectorDlg Pos=0,115
TSimpleWindowLayoutList.ApplyAndShow Form=MainIDE:TMainIDEBar False DesktopWidth=1680 DesktopHeight=1050
[TCustomForm.UpdateShowing] STAR :TSourceNotebook Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :TSourceNotebook Pos=0,0 [TCustomForm.UpdateShowing] activating :TSourceNotebook Pos=0,0 [TCustomForm.UpdateShowing] STAR :THintWindow Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :THintWindow Pos=0,0 [TCustomForm.UpdateShowing] activating :THintWindow Pos=0,0 TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook True DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow restore SourceNotebook CustomPosition 357,115,1146,746
[TCustomForm.UpdateShowing] STAR SourceNotebook:TSourceNotebook Pos=357,115 Visible=True Showing=False
[TCustomForm.UpdateShowing] calling inherited
SourceNotebook:TSourceNotebook Pos=357,115
[TCustomForm.UpdateShowing] activating SourceNotebook:TSourceNotebook Pos=357,115
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook True DesktopWidth=1680 DesktopHeight=1050
[TCustomForm.UpdateShowing] STAR :THintWindow Pos=0,0 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited :THintWindow Pos=0,0 [TCustomForm.UpdateShowing] activating :THintWindow Pos=0,0 [TCustomForm.UpdateShowing] STAR Form1:TForm1 Pos=250,250 Visible=False Showing=False
[TCustomForm.UpdateShowing] calling inherited Form1:TForm1 Pos=250,250 [TCustomForm.UpdateShowing] activating Form1:TForm1 Pos=250,250 TSimpleWindowLayoutList.ApplyAndShow Form=MessagesView:TMessagesView False DesktopWidth=1680 DesktopHeight=1050
TSimpleWindowLayoutList.ApplyAndShow Form=SourceNotebook:TSourceNotebook True DesktopWidth=1680 DesktopHeight=1050
[TCustomForm.WMSize] MessagesView:TMessagesView Message.SizeType=128 Message.Width=1146 Message.Height=746 AutoSizeDelayed=False [TCustomForm.WMSize] MessagesView:TMessagesView Message.SizeType=6 Message.Width=1146 Message.Height=746 AutoSizeDelayed=True [TCustomForm.WMSize] PseudoTerminal:TPseudoConsoleDlg Message.SizeType=128 Message.Width=353 Message.Height=246 AutoSizeDelayed=False
[TCustomForm.WMSize] PseudoTerminal:TPseudoConsoleDlg Message.SizeType=6 Message.Width=353 Message.Height=246 AutoSizeDelayed=True [TCustomForm.WMSize] ObjectInspectorDlg:TObjectInspectorDlg Message.SizeType=128 Message.Width=320 Message.Height=240 AutoSizeDelayed=False
[TCustomForm.WMSize] ObjectInspectorDlg:TObjectInspectorDlg Message.SizeType=6 Message.Width=320 Message.Height=240 AutoSizeDelayed=True [TCustomForm.WMSize] EvaluateModify:TEvaluateDlg Message.SizeType=128 Message.Width=1146 Message.Height=200 AutoSizeDelayed=False [TCustomForm.WMSize] EvaluateModify:TEvaluateDlg Message.SizeType=6 Message.Width=1146 Message.Height=200 AutoSizeDelayed=True [TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=128 Message.Width=299 Message.Height=109 AutoSizeDelayed=False [TCustomForm.WMSize] MainIDE:TMainIDEBar Message.SizeType=6 Message.Width=299 Message.Height=109 AutoSizeDelayed=True [TCustomForm.WMSize] Watches:TWatchesDlg Message.SizeType=128 Message.Width=353 Message.Height=200 AutoSizeDelayed=False [TCustomForm.WMSize] Watches:TWatchesDlg Message.SizeType=6 Message.Width=353 Message.Height=200 AutoSizeDelayed=True [TCustomForm.UpdateShowing] STAR SplashForm:TSplashForm Pos=371,285 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited SplashForm:TSplashForm Pos=371,285
[TCustomForm.UpdateShowing] activating SplashForm:TSplashForm Pos=371,285 [TCustomForm.UpdateShowing] STAR PseudoTerminal:TPseudoConsoleDlg Pos=0,288 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
PseudoTerminal:TPseudoConsoleDlg Pos=0,288
[TCustomForm.UpdateShowing] activating PseudoTerminal:TPseudoConsoleDlg Pos=0,288
[TCustomForm.UpdateShowing] STAR Watches:TWatchesDlg Pos=0,561 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited Watches:TWatchesDlg Pos=0,561 [TCustomForm.UpdateShowing] activating Watches:TWatchesDlg Pos=0,561 [TCustomForm.UpdateShowing] STAR CallStack:TCallStackDlg Pos=0,288 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited CallStack:TCallStackDlg Pos=0,288
[TCustomForm.UpdateShowing] activating CallStack:TCallStackDlg Pos=0,288 [TCustomForm.UpdateShowing] STAR EvaluateModify:TEvaluateDlg Pos=357,888 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
EvaluateModify:TEvaluateDlg Pos=357,888
[TCustomForm.UpdateShowing] activating EvaluateModify:TEvaluateDlg Pos=357,888
[TCustomForm.UpdateShowing] STAR MessagesView:TMessagesView Pos=357,115 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
MessagesView:TMessagesView Pos=357,115
[TCustomForm.UpdateShowing] activating MessagesView:TMessagesView Pos=357,115
[TCustomForm.UpdateShowing] STAR ObjectInspectorDlg:TObjectInspectorDlg Pos=250,250 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
ObjectInspectorDlg:TObjectInspectorDlg Pos=250,250 [TCustomForm.UpdateShowing] activating
ObjectInspectorDlg:TObjectInspectorDlg Pos=250,250 [TCustomForm.UpdateShowing] STAR MainIDE:TMainIDEBar Pos=0,115 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited MainIDE:TMainIDEBar Pos=0,115 [TCustomForm.UpdateShowing] activating MainIDE:TMainIDEBar Pos=0,115 [TCustomForm.UpdateShowing] STAR
SourceNotebook___139783502768496:TSourceNotebook Pos=357,115 Visible=False Showing=True
[TCustomForm.UpdateShowing] calling inherited
SourceNotebook___139783502768496:TSourceNotebook Pos=357,115 [TCustomForm.UpdateShowing] activating
SourceNotebook___139783502768496:TSourceNotebook Pos=357,115 LAZARUS END - cleaning up ...
[TMainIDE.Destroy] A
[TMainIDE.Destroy] B -> inherited Destroy... TMainIDE [TMainIDE.Destroy] END

Ludo

Reply by email

zeljko
to Mark Morgan Lloyd: No doubt, but it's hardly normal to find that they stay minimised when you switch back.…
Mark Morgan Lloyd wrote 12 lines
zeljko wrote: >> Might be worth checking whether this is specific to GTK, i.e. Qt is >> unaffected. I notice that when running a Lazarus+GTK program (including >> the IDE itself) on Debian+KDE (which I believe is comparable with >> Kubuntu) some windows sporadically minimise themselves when desktops are >> switched. > > Actually, pager minimizes windows when you switch desktops , thats how > virtual desktops works on X11. No doubt, but it's hardly normal to find that they stay minimised when you switch back.

They should not. Pager must know (and LCL widgetset api when it was minimised by pager) which windows are minimized by himself so it can restore them when you switch back. Also minimized windows (before switch to another desktop) should stay minimized when you switch back.

zeljko

Reply by email

zeljko
to Graeme Geldenhuys: No, not always true as far as I know. Maybe it is dependent on the window manager or…
Graeme Geldenhuys wrote 8 lines
On 2013-02-02 09:25, zeljko wrote: > Actually, pager minimizes windows when you switch desktops , thats how > virtual desktops works on X11. No, not always true as far as I know. Maybe it is dependent on the window manager or virtual desktop applet. eg: Take the FVWM2 window manager. You can drag your "active screen area" to the centre of a 2x2 virtual desktop grid, and see windows of all four virtual desktops.

There's XOrg standard which says so. If some window manager have virtual desktops and it doesn't work like standard says then such window manager isn't standard (it's not enough mature, it's buggy etc etc).

Windows on the other hand secretly position windows with a huge negative coordinate when you minimize them. In fpGUI I once had a "restore window" issue, and discovered this. X11 behaved differently - coordinates never changed for hidden windows.

I don't care about windows.

zeljko

Reply by email

zeljko
to Ludo Brands: This bug is my daily "good morning" from lazarus since I moved to Kubuntu ;) I'll start…
Ludo Brands wrote 24 lines
On 02/02/2013 10:14 AM, Juha Manninen wrote: > Sounds like this bug: > http://bugs.freepascal.org/view.php?id=14906 > > although you apparently hit the bug much more often than others. > For example I see it only once in few months yet I start Lazarus often. > It means that you are the only person who can debug the problem. :) This bug is my daily "good morning" from lazarus since I moved to Kubuntu ;) > I am thinking what can cause the randomness. There are no asynchronous > messages, no threading, no complex widgetset interaction when setting > the window positions. > It is done in Lazarus code. Values are read from a config file and > windows and given positions. > Ok, there is widgetset interaction but this one is simple and well > tested. > > Uninitialized variable is my biggest suspect. Where it is, I have no > idea. I'll start with throwing in a lot of debug lines. Any suggestions on where and what to look for are welcome.

hm...do you use compositing manager ? If yes, can you disable it and then make an trial to see if positions are ok ?
There's one big problem with gtk2 and compositing manager and geometry (resize) changes. Without compositing resize events of form are passed correctly (as gtk2 docs says), but with compositing manager you have x5 resize events and it's very hard to get out which one is correct.

zeljko

Reply by email

Hans-Peter Diettrich
to Ludo Brands: kubuntu 12.04 64 bit. lazarus 1.0.4 and 1.1 39930. Tired of re-positioning IDE windows…
Show quoted text 8 lines
Tired of re-positioning IDE windows after lazarus start-up I have defined custom positions for the main IDE windows. Now, when I start up the computer and start lazarus, the windows are all messed up. I close lazarus, restart lazarus and some of the windows are in the correct position, restart lazarus again and all windows are as defined!! Sometimes a 4th restart is needed. I can restart lazarus as many times as needed thereafter and the windows will be positioned fine, until the next reboot.

You can try the EasyDockMgr, which stores the form positions independently from the IDE. There is no guarantee, though, that the forms are reopened at their stored position, when some IDE code decides to place them somewhere else. But the observed results can help to spot eventual bugs in the IDE code.

DoDi

Reply by email

Ludo Brands
to zeljko: hm...do you use compositing manager ? If yes, can you disable it and then make an trial…
zeljko wrote
hm...do you use compositing manager ? If yes, can you disable it and then make an trial to see if positions are ok ?

KWin with the XRender compositing backend. Default for kubuntu. When disabling desktop effects the problem is gone.

The problem seems also timing related. When lazarus build with -dVerboseIDEDocking -dCHECK_POSITION, lazarus was showing the windows in the correct position at the 2nd restart. Without it, 3 sometimes 4 restarts were needed. When build with -dVerboseIDEDocking -dCHECK_POSITION -dVerboseAllAutoSize which produces many more debug lines, lazarus started up correctly the first time. The wrong WMSize messages reported earlier weren't in the longer log.

Show quoted text 5 lines
There's one big problem with gtk2 and compositing manager and geometry (resize) changes. Without compositing resize events of form are passed correctly (as gtk2 docs says), but with compositing manager you have x5 resize events and it's very hard to get out which one is correct.

This doesn't really explain why a second or third run of the application fixes the issue.

thanks,

Ludo

Reply by email

zeljko
to Ludo Brands
Ludo Brands wrote 6 lines
On 02/02/2013 12:36 PM, zeljko wrote: > hm...do you use compositing manager ? If yes, can you disable it and then > make an trial to see if positions are ok ? KWin with the XRender compositing backend. Default for kubuntu. When disabling desktop effects the problem is gone.

yes, because without xrender num of size/move events is dramatically reduced and some workarounds in GDK_CONFIGURE doesn't trigger.

Show quoted text 15 lines
The problem seems also timing related. When lazarus build with -dVerboseIDEDocking -dCHECK_POSITION, lazarus was showing the windows in the correct position at the 2nd restart. Without it, 3 sometimes 4 restarts were needed. When build with -dVerboseIDEDocking -dCHECK_POSITION -dVerboseAllAutoSize which produces many more debug lines, lazarus started up correctly the first time. The wrong WMSize messages reported earlier weren't in the longer log. > There's one big problem with gtk2 and compositing manager and geometry > (resize) changes. Without compositing resize events of form are passed > correctly (as gtk2 docs says), but with compositing manager you have x5 > resize events and it's very hard to get out which one is correct. This doesn't really explain why a second or third run of the application fixes the issue.

No, but we know root of problems for now.
Gtk2WSForms.pp, line 168, GDK_CONFIGURE. I've maded that patch to fix problems with composite manager , so maybe something can be extended there (or checked if X and Y are valid at all). Try to disable that check and see what happens. See this (read notes too): http://bugs.freepascal.org/view.php?id=17523

zeljko

Reply by email

Mark Morgan Lloyd
to zeljko: They should not. Pager must know (and LCL widgetset api when it was minimised by pager)…
zeljko wrote 16 lines
On Saturday 02 of February 2013 11:00:22 Mark Morgan Lloyd wrote: > zeljko wrote: >>> Might be worth checking whether this is specific to GTK, i.e. Qt is >>> unaffected. I notice that when running a Lazarus+GTK program (including >>> the IDE itself) on Debian+KDE (which I believe is comparable with >>> Kubuntu) some windows sporadically minimise themselves when desktops are >>> switched. >> Actually, pager minimizes windows when you switch desktops , thats how >> virtual desktops works on X11. > No doubt, but it's hardly normal to find that they stay minimised when > you switch back. They should not. Pager must know (and LCL widgetset api when it was minimised by pager) which windows are minimized by himself so it can restore them when you switch back. Also minimized windows (before switch to another desktop) should stay minimized when you switch back.

Much what I assumed. I've not mentioned this in the past- and am definitely not complaining about it now- since my desktop machine is actually running a fairly old KDE.

In any event, thanks for the explanation since it implies that something I do as routine using Delphi (have a watchdog process monitoring any unexpected dialogue boxes etc. on multiple desktops/windowstations) is probably fundamentally incompatible with unix.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Ludo Brands
to zeljko: yes, because without xrender num of size/move events is dramatically reduced and some…
zeljko wrote 6 lines
No, but we know root of problems for now. Gtk2WSForms.pp, line 168, GDK_CONFIGURE. I've maded that patch to fix problems with composite manager , so maybe something can be extended there (or checked if X and Y are valid at all). Try to disable that check and see what happens. See this (read notes too): http://bugs.freepascal.org/view.php?id=17523

Bad luck, I can't reproduce the problem any more. Changed the compositing back-end to opengl and the problem went away. Changed it back to XRender and got a message that a few effects were not functioning and disabled. Since then everything works fine. Perhaps just a buggy effect in KWin that is causing all this.

Thanks a lot for your help. When it does come back I'll update bug 14906.

Ludo

Reply by email