diff options
author | Ken Moore <ken@ixsystems.com> | 2017-06-29 10:41:12 -0400 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2017-06-29 10:41:12 -0400 |
commit | f7ef0f0a21d56e3c9c946c6f4010a713835c8cbe (patch) | |
tree | 5346db8ca342e4b37a8add733f55122264c6cd37 | |
parent | Add the ability to change the "Size" property for windows. (diff) | |
download | lumina-f7ef0f0a21d56e3c9c946c6f4010a713835c8cbe.tar.gz lumina-f7ef0f0a21d56e3c9c946c6f4010a713835c8cbe.tar.bz2 lumina-f7ef0f0a21d56e3c9c946c6f4010a713835c8cbe.zip |
Make sure the global position of a window is/can be set as needed.
-rw-r--r-- | src-qt5/core/libLumina/NativeWindowSystem.cpp | 12 | ||||
-rw-r--r-- | src-qt5/core/libLumina/RootSubWindow.cpp | 9 | ||||
-rw-r--r-- | src-qt5/core/libLumina/RootSubWindow.h | 2 |
3 files changed, 18 insertions, 5 deletions
diff --git a/src-qt5/core/libLumina/NativeWindowSystem.cpp b/src-qt5/core/libLumina/NativeWindowSystem.cpp index d540d86e..791271cc 100644 --- a/src-qt5/core/libLumina/NativeWindowSystem.cpp +++ b/src-qt5/core/libLumina/NativeWindowSystem.cpp @@ -476,15 +476,21 @@ void NativeWindowSystem::ChangeWindowProperties(NativeWindow* win, QList< Native if(props.contains(NativeWindow::Icon)){ } - if(props.contains(NativeWindow::Size) ){ + if(props.contains(NativeWindow::Size) || props.contains(NativeWindow::GlobalPos) ){ xcb_configure_window_value_list_t valList; uint16_t mask = 0; - //if(props.contains(NativeWindow::Size)){ + if(props.contains(NativeWindow::Size)){ QSize sz = vals[ props.indexOf(NativeWindow::Size) ] .toSize(); valList.width = sz.width(); valList.height = sz.height(); mask = mask & XCB_CONFIG_WINDOW_WIDTH & XCB_CONFIG_WINDOW_HEIGHT; - //} + } + if(props.contains(NativeWindow::GlobalPos)){ + QPoint pt = vals[ props.indexOf(NativeWindow::GlobalPos) ] .toPoint(); + valList.x = pt.x(); + valList.y = pt.y(); + mask = mask & XCB_CONFIG_WINDOW_X & XCB_CONFIG_WINDOW_Y; + } xcb_configure_window_aux(QX11Info::connection(), win->id(), mask, &valList); } if(props.contains(NativeWindow::Name)){ diff --git a/src-qt5/core/libLumina/RootSubWindow.cpp b/src-qt5/core/libLumina/RootSubWindow.cpp index 66cfbc6a..59cfc662 100644 --- a/src-qt5/core/libLumina/RootSubWindow.cpp +++ b/src-qt5/core/libLumina/RootSubWindow.cpp @@ -412,11 +412,18 @@ void RootSubWindow::leaveEvent(QEvent *ev){ }*/ void RootSubWindow::resizeEvent(QResizeEvent *ev){ - qDebug() << "Got Resize Event:" << ev->size(); + //qDebug() << "Got Resize Event:" << ev->size(); WIN->requestProperty(NativeWindow::Size, WinWidget->size()); QFrame::resizeEvent(ev); } + /*void RootSubWindow::showEvent(QShowEvent *ev){ WIN->requestProperty(NativeWindow::Visible, true); QFrame::showEvent(ev); }*/ + +void RootSubWindow::moveEvent(QMoveEvent *ev){ + //qDebug() << "Got Move Event:" << ev->pos(); + WIN->setProperty(NativeWindow::GlobalPos, WinWidget->mapToGlobal(QPoint(0,0)) ); + QFrame::moveEvent(ev); +} diff --git a/src-qt5/core/libLumina/RootSubWindow.h b/src-qt5/core/libLumina/RootSubWindow.h index e1b992c9..cb502107 100644 --- a/src-qt5/core/libLumina/RootSubWindow.h +++ b/src-qt5/core/libLumina/RootSubWindow.h @@ -78,7 +78,7 @@ protected: //void hideEvent(QHideEvent *ev); void resizeEvent(QResizeEvent *ev); //void showEvent(QShowEvent *ev); - //void moveEvent(QMoveEvent *ev); + void moveEvent(QMoveEvent *ev); }; |