Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
wxAuiNotebook issues
Jenna:
With the change from wxFlatnotebook to wxAuiNotebook we improved the usage of the editor much (two or more editors with different content side by side).
But we also introduced some issues with it:
http://forums.codeblocks.org/index.php/topic,8595.msg72500.html#msg72500 (ctrl+tab does not wrap at the end or the beginning),
http://forums.codeblocks.org/index.php/topic,10810.msg74542.html#msg74542 (ctrl+tab does not respect order of reordered tabs),
ctr+tab jumps through all tab-controls, even if new groups have been created with dragging the tabs,
the order of reordered tabs is not saved, so that after closing and reopening a project, the tabs have to be moved again.
While searching for a fix of a longstanding bug (crash of C::B when docking free-floating windows on linux-system with composite-effects enabled), I found another issue with wxAuiNotebook, dragging a tab can lead to the exact same crash as docking a free-floating window (again only on linux-systems with composite-effects enabled, as far as I know).
This bug makes it more or less impossible to drag tabs to have multiple editors side by side (I write more or less, because the crash occurs not always, but I never needed more then two or three drags to crash C::B with an X-window error). To prevent the crash when docking windows the drag-hint style of the wxAuiManager has to be changed.
The wxAuiNotebook-class uses wxAuiManager internally and the flags it uses can only be changed from inside the class, because the manager is protected.
These issues can be fixed, if we do not use wxAuiNotebook directly, but a derived-class, that overrides parts of wxAuiNotebooks functions and adds some new to be able to save the visible order.
I started a new thread about this problems, because I think we should seriously think about using our own notebook-class (cbAuiNotebook derived from wxAuiNotebbok) to get rid of these (partly serious) issues.
I attach a patch against C::B trunk, the same patch and patches against the scintilla- and the debugger-branch can be found on my server: http://apt.jenslody.de/patches/ .
I hope to start a discussion, because the tab-order issues are "only" annoying, but the crash is in my opinion a serious bug.
I also added a function to save the perspective of the notebooks to the cbAuiNotebook-class, but loading a perspective is much more complicated (most likely impossible at the moment), bacause the class that holds the tabcontols used by wxAuiNotebook (wxTabFrame) is only defined inside the cpp-file and can therefore not be reached by a derived class.
[attachment deleted by admin]
ollydbg:
--- Quote from: jens on November 15, 2009, 01:34:01 am ---
I attach a patch against C::B trunk, the same patch and patches against the scintilla- and the debugger-branch can be found on my server: http://apt.jenslody.de/patches / .
--- End quote ---
You should remove the space behind the URL.
http://apt.jenslody.de/patches/
Alatar:
To jens
But why you don`t want to sent this changes to wxWidgets core? If you found bug in library, you should send bugfix to upstream, if you need some features in library, you should send patches to trunk - this is one of basic principles of OpenSource Software, isn`t it?
Jenna:
--- Quote from: Alatar on November 15, 2009, 07:48:33 pm ---To jens
But why you don`t want to sent this changes to wxWidgets core? If you found bug in library, you should send bugfix to upstream, if you need some features in library, you should send patches to trunk - this is one of basic principles of OpenSource Software, isn`t it?
--- End quote ---
You are right, but if you would have read the links in my first post, you would know that parts of the patch have been committed to wxWidgets 5 months ago, without any reaction.
The SavePerspective-part is based on a posts in the wxWidgets forum (again written in one of the links of my first post) and I only adapted it to be usable from a derived class.
The workaraounds for the C::B crash with composite-effects enabled are also based on posts and/or bug-tracker entries from wxWidgets,and they are workarounds not fixes, because i do not have the time to dig into wxWidgets-code so deep to find out why it happens.
If I find the time to, I will create patches against wxWidgets sources (auibook.*), but the problems exist now and it will most likely take too much time to wait until they are fixed in a wxWidgets release-version.
That's of course just my (personal) opinion, and the cause why I started this thread.
MortenMacFly:
--- Quote from: jens on November 15, 2009, 01:34:01 am ---I hope to start a discussion, because the tab-order issues are "only" annoying, but the crash is in my opinion a serious bug.
--- End quote ---
Works nicely here with Windows XP-SP3 and Windows Vista. It indeed is more user friendly. Hence a couple of third party plugins need an update, too. Just for the record.
For the schedule: I think it's time to merge the scintilla branch including this patch. That's my personal opinion.
Navigation
[0] Message Index
[#] Next page
Go to full version