diff options
author | Ken Moore <ken@ixsystems.com> | 2017-08-14 12:19:47 -0400 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2017-08-14 12:19:47 -0400 |
commit | 0302f69edae597b872fa75d364272b74f500c58b (patch) | |
tree | 0995a9cd7ad862215ee3a62c60f038838b66f5be /src-qt5/core/libLumina/RootWindow-mgmt.cpp | |
parent | Add a wm failure counter to start-lumina-desktop, and restart the process up ... (diff) | |
download | lumina-0302f69edae597b872fa75d364272b74f500c58b.tar.gz lumina-0302f69edae597b872fa75d364272b74f500c58b.tar.bz2 lumina-0302f69edae597b872fa75d364272b74f500c58b.zip |
Some work on Lumina 2.x
Disable compositing for now with a simple define - can re-enable later when more time to fix
Start work on the client message detection/handling
Diffstat (limited to 'src-qt5/core/libLumina/RootWindow-mgmt.cpp')
-rw-r--r-- | src-qt5/core/libLumina/RootWindow-mgmt.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src-qt5/core/libLumina/RootWindow-mgmt.cpp b/src-qt5/core/libLumina/RootWindow-mgmt.cpp index e00ce9ce..00b3e336 100644 --- a/src-qt5/core/libLumina/RootWindow-mgmt.cpp +++ b/src-qt5/core/libLumina/RootWindow-mgmt.cpp @@ -19,16 +19,31 @@ void RootWindow::arrangeWindows(RootSubWindow *primary, QString type){ // ================ // Public slots for starting the arrangement routine(s) above // ================ -void RootWindow::ArrangeWindows(WId *primary, QString type){ - +void RootWindow::ArrangeWindows(WId primary, QString type){ + RootSubWindow* win = windowForId(primary); + if(type.isEmpty()){ type = ""; } //grab the default arrangement format + arrangeWindows(win, type); } -void RootWindow::TileWindows(WId *primary, QString type){ - +void RootWindow::TileWindows(WId primary, QString type){ + RootSubWindow* win = windowForId(primary); + if(type.isEmpty()){ type = ""; } //grab the default arrangement format for tiling + arrangeWindows(win, type); } -void RootWindow::CheckWindowPosition(WId, bool newwindow){ +void RootWindow::CheckWindowPosition(WId id, bool newwindow){ //used after a "drop" to validate/snap/re-arrange window(s) as needed // if "newwindow" is true, then this is the first-placement routine for a window before it initially appears - + RootSubWindow* win = windowForId(id); + if(win==0){ return; } //invalid window + QRect geom = win->nativeWindow()->geometry(); + bool changed = false; + //Make sure it is on the screen (quick check) + if(geom.x() < 0){ changed = true; geom.moveLeft(0); } + if(geom.y() < 0){ changed = true; geom.moveTop(0); } + if(geom.width() < 20){ changed = true; geom.setWidth(100); } + if(geom.height() < 20){ changed = true; geom.setHeight(100); } + if(changed){ win->setGeometry(geom); } + //Now run it through the window arrangement routine + ArrangeWindows(id); } |