On XCB platforms, the initialization of native windows is an async task.
When floating a dock widget, a new top level window is created, followed
by further customizations (changes to title and status bar, child
rearrangements etc). The customizations might be triggered at a time
when Qt was still processing XCB events and the QWindows state not yet
fully initialized. In some random cases, this caused the Window to be
invisible.
By sleeping for 100 ms on XCB platforms, we make sure that
all customizations are delayed long enough that the XCB event thread can
continue to process. By then all XCB communication
should be finished and the window setup complete.
refs #754
* move hotkey settings in own GUI component -> easier adjustments
* some fixes for dock widgets when tab widget is shown without names (unrelated but found + fixed in same step)
* Added extra QFrame in CDockWidgets to have better control in stylesheez (CDockWidget -> QWidget -> QFrame)
* Adjusted stylesheets
* Force update of stylesheet when frameless changes
* Cascading status message in nested CInfoArea components
Floating frameless dock widget still not transparent
* different dyn. property names for main window, dock window and infoarea
* dyn.properties for nested QWidgets
* style sheet for navigator
* utility function to delete layout
* added standard OS icons, some formatting in CICons
* actions in main window to be used in navigator
* main window becomes normal window when minimized so it is correctly displayed in Win taskbar
Remark: Frameless floating dockwidgets with rounded borders not yet working
* allow to set/unset frameless mode in CDockWidget
* adjusted context menus
* adjusted style sheets
* ini settings for margins
* hidden info area to host floating widgets only visible when floating (allows to CDockInfoArea widgets)
* made some private slots non-virtual
* renamed to toggleFloatingWholeInfoArea() for whole info area (in contrast to toggleInfoArea for individual areas)
* signal for changedWholeInfoAreaFloating (allows the main GUI to hide this area if empty)
* add. flag to understand m_resetedFloating
* prepared for frameless dock widget (not yet implemented)
Existing functions visible() / isHidden() are not suitable, as those represent "technical visibility".
We need a logical visibility telling us if the user can see / has selected the corresponing dockable widget.
* New base class info area (where dockable widgets are placed)
* Adjusted derived component (currently 1)
* Cleaned up old code in floatAllWidgets