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]