Menu

#214 Docking classes overhaul

8
pending
nobody
1
2026-03-31
2022-07-26
No

The docking classes have rendering issues on modern systems. For example:

  • Outdated 3D style is used, such as in TEdgeSlip that always draws a border; either WS_BORDER around the whole window or an "etched" border in the non-client area of the window (TEdgeSlip::EvNCPaint).
  • The mouse cursor for grip handles are wrong; e.g. a left-right arrow is shown for a horizontal gadget window although the window can be dragged in all directions (see TDockableGadgetWindow::EvOwlWindowDocked).
  • More seriously, the rendering of the destination indicator rectangle while dragging does not show in the right place on systems with high DPI screen resolution. The rendering of the indicator rectangle is also ugly and slow, and sometimes leaves artefacts on the screen. See Visual Studio for how it can and should be done.
  • Special optional rendering in debugging mode for diagnostics relies on outdated placement of "OWL.INI" and will not access the main file now located under "%appdata%/OWLNext", e.g. see TEdgeSlip::TEdgeSlip. This means that there is no control over this rendering in the built-in Diagnostic Window.

There may be other issues. Separate bug tickets may be created for these issues as they are addressed. This ticket is for the overall overhaul and modernisation effort, in particular the GUI look and behaviour.

We should perhaps also look into what is available in the Windows API for toolbars and docking, and whether the the OWL implementation of these features can be replaced and retired.

Related

Wiki: OWLNext_Roadmap_and_Prereleases

Discussion

  • Vidar Hasfjord

    Vidar Hasfjord - 2022-07-26

    Special optional rendering in debugging mode for diagnostics relies on outdated placement of "OWL.INI"

    This part of the code has now been rewritten for 7.1 [r6161] to use macros DIAG_ISENABLED and DIAG_GETLEVEL instead. Set the diagnostic level for group "OwlDocking" to 2 or higher to trigger the diagnostic rendering. This can be controlled using the built-in Diagnostic Window.

     

    Related

    Commit: [r6161]

  • Vidar Hasfjord

    Vidar Hasfjord - 2025-04-17
    • Labels: GUI --> GUI, Cleanup
     
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-03-31
    • status: open --> pending
     
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-03-31

    "Fix: Dockable toolbar drag guide invisible or misplaced under DWM / high-DPI (Windows 8+)" [bugs:#637] fixes the dragging indicator issue mentioned in the ticket description. @neige68's patches have been applied for the trunk [r8654] and branches/7 [r8706].

     

    Related

    Bugs: #637
    Commit: [r8654]
    Commit: [r8706]

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB