From e51eb7f9b51dc29be83a00abf2ebf95cc17d0ba7 Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Fri, 3 Mar 2017 14:25:29 -0500 Subject: Another large batch of updates to the Native Window "plumbing": 1) Handle all property changes in bulk groups for efficiency 2) Add simplification functions for changing single properties. 3) Automatically prune redundant property settings from signals 4) Add another property or two, and simplify the number of "extra" signals/functions for non-property changes/requests. 5) Starting cleaning up the new NativeWindowSystem class to use the new plumbing, and get it ready for the XCB "guts" to be copied in. --- src-qt5/core/libLumina/NativeWindowSystem.h | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src-qt5/core/libLumina/NativeWindowSystem.h') diff --git a/src-qt5/core/libLumina/NativeWindowSystem.h b/src-qt5/core/libLumina/NativeWindowSystem.h index ef169059..b26400a6 100644 --- a/src-qt5/core/libLumina/NativeWindowSystem.h +++ b/src-qt5/core/libLumina/NativeWindowSystem.h @@ -33,7 +33,7 @@ private: } //Now define a simple private_objects class so that each implementation - // has a storage container for placing private objects as needed + // has a storage container for defining/placing private objects as needed class p_objects; p_objects* obj; @@ -51,6 +51,7 @@ public: //General-purpose listing functions QList currentWindows(){ return NWindows; } + QList currentTrayWindows(){ return TWindows; } public slots: //These are the slots which are typically only used by the desktop system itself or the NativeWindowEventFilter @@ -64,21 +65,21 @@ public slots: //NativeWindowEventFilter interactions void NewWindowDetected(WId); //will automatically create the new NativeWindow object + void NewTrayWindowDetected(WId); //will automatically create the new NativeWindow object void WindowCloseDetected(WId); //will update the lists and make changes if needed - void WindowPropertyChanged(WId, NativeWindow::Property); //will rescan the window and update the object as needed - void NewKeyPress(int keycode); - void NewKeyRelease(int keycode); - void NewMousePress(int buttoncode); - void NewMouseRelease(int buttoncode); + void WindowPropertiesChanged(WId, NativeWindow::Property); //will rescan the window and update the object as needed + void NewKeyPress(int keycode, WId win = 0); + void NewKeyRelease(int keycode, WId win = 0); + void NewMousePress(int buttoncode, WId win = 0); + void NewMouseRelease(int buttoncode, WId win = 0); void CheckDamageID(WId); private slots: //These are the slots which are built-in and automatically connected when a new NativeWindow is created - void RequestActivate(WId); + void RequestPropertiesChange(WId, QList, QList); void RequestClose(WId); - void RequestSetVisible(WId, bool); - void RequestSetGeometry(WId, QRect); - void RequestSetFrameExtents(WId, QList); //[Left,Right,Top,Bottom] in pixels + void RequestKill(WId); + void RequestPing(WId); signals: void NewWindowAvailable(NativeWindow*); -- cgit