First Commit

This commit is contained in:
2025-11-18 14:18:26 -07:00
parent 33eb6e3707
commit 27277ec342
6106 changed files with 3571167 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
# Event Filters
Since KDDW works with non-Qt, we can't use Qt event filters directly, so we added an abstraction layer.<br>
Event filters implement `EventFilterInterface`.
For Qt, we have a `GlobalEventFilter` class, which calls `qGuiApp->installEventFilter`, then forwards events
to all registered `EventFilterInterface`.
We have the following global event filters:
- DockRegistry singleton
Catches expose events to maintain floating window z-order.
Catches clicking on a MDI dock widget, to raise it.
For hiding the auto-hide sidebar overlay when clicking elsewhere.
- FallbackMouseGrabber
For platforms that don't support grabbing the mouse. Mostly for QtQuick to workaround bugs.
- Some wayland code
- WidgetResizeHandler when used by MDI, or if EGLFS
For resizing MDI dock widgets when mouse goes near borders.
# mdi raise()
Clicking on a MDI dockwidget will raise it.<br>
This is tested by `tst_mdiZorder()`.<br>
Actual raising is done by `DockRegistry::onMouseButtonPress()`, which is called by our global event filter.