Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Widgets - General questions or Mixed problems » [BUG] TheIDE doesn't restore window state correctly on Linux
[BUG] TheIDE doesn't restore window state correctly on Linux [message #30566] Sat, 08 January 2011 21:25 Go to previous message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

Hi,

Some of the recent changes to maximize/minimize handling and/or SerializePlacement() causes that theide is no longer started in maximized state. The problem is, that now it doesn't restore correctly the state after restart, i.e. if I close maximized ide, it opens in normal state next time.

The logs from serialization say (only ide serialization related logs shown here for clarity):
// Backup serialization before loading new data from file
TopWindow::SerializePlacement / write
minimized = false, maximized = true
rect = [0, 0] - [0, 0] : (0, 0), overlapped = [0, 0] - [0, 0] : (0, 0)

// LoadFromFile(ide); (ide/idewin.cpp:1003)
TopWindow::SerializePlacement / read
minimized = false, maximized = true
rect = [0, 15] - [1024, 600] : (1024, 585), overlapped = [0, 0] - [0, 0] : (0, 0)

// StoreToFile(ide); (ide/idewin.cpp:1031)
TopWindow::SerializePlacement / write
minimized = false, maximized = false
rect = [8, 32] - [1016, 592] : (1008, 560), overlapped = [0, 0] - [0, 0] : (0, 0)

// StoreToFile(ide); (ide/idewin.cpp:1036)
TopWindow::SerializePlacement / write
minimized = false, maximized = false
rect = [8, 32] - [1016, 592] : (1008, 560), overlapped = [0, 0] - [0, 0] : (0, 0)

As you can see, the StoreToFile() is called twice and between the calls the ide.state changes its value. I tried to track down where the change occures and got into ProcessEvents() call Then I got lost (couldn't find out which event triggers the change). The backtrace at this point was:
ProcessEvents () at /home/h/upp-production/uppsrc/CtrlCore/X11Wnd.cpp:362
Process (this=0xbffe4d88) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:199
Setxt (this=0xbffe4d88) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:206
Create (this=0xbffe4d88) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:183
Process (this=0xbffe4d88) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:193
Setxt (this=0xbffe4d88) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:206
Set (this=0xbffe4d88, apos=37, atotal=0) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:221
Step (this=0xbffe4d88, n=1) at /home/h/upp-production/uppsrc/CtrlLib/Progress.cpp:236
SyncRefsDir (dir=0xaf104210 "/home/h/MyApps/Wizard", rel=..., pi=...) at /home/h/upp-production/uppsrc/ide/Browser/TopicBase.cpp:178
SyncRefsDir (dir=0xaf10c518 "/home/h/MyApps", rel=..., pi=...) at /home/h/upp-production/uppsrc/ide/Browser/TopicBase.cpp:198
SyncRefs () at /home/h/upp-production/uppsrc/ide/Browser/TopicBase.cpp:209
SetMain (this=0xbffe58c0, package=...) at /home/h/upp-production/uppsrc/ide/ide.cpp:140
OpenMainPackage (this=0xbffe58c0) at /home/h/upp-production/uppsrc/ide/ide.cpp:172
GuiMainFn_ () at /home/h/upp-production/uppsrc/ide/idewin.cpp:1030
main (argc=1, argv=0xbffff984, envptr=0xbffff98c) at /home/h/upp-production/uppsrc/ide/idewin.cpp:731

I'm afraid that fixing this goes beyond my abilities Sad Mirek, (or any other volunteer Smile ), could you have a look at it? It is not really that much annoying to maximize theide every time, but my desire for perfection suffers Wink

BTW: In GUI_APP_MAIN there is (ide/idewin.cpp:839):
		Ide ide;
		ide.Maximize();
The call to Maximize is overwritten later, so it doesn't really matter and could be removed.

Best regards,
Honza
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: WhenEnter in GridCtrl not fired
Next Topic: Found solution. On arrayctrl, you have addcolumn, but what about deleting a column
Goto Forum:
  


Current Time: Fri Jun 07 02:11:48 CEST 2024

Total time taken to generate the page: 0.02044 seconds