From 255fea62aff8816d1ef69243f4362c0aed3e7cd6 Mon Sep 17 00:00:00 2001 From: Andreas Stallinger Date: Wed, 7 Jun 2017 17:21:54 +0200 Subject: [PATCH] ui: restrict subwindow movement restrict subwindow movement to mainwindow to make sure you cant move it were you dont see it --- .gitignore | 2 ++ src/lib_gui/qt/window/QtWindow.cpp | 22 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0f416480..6b1cda6a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ .DS_Store .idea +.vscode /ide_plugins/vs/vs2015/SourcetrailPlugin/SourcetrailPlugin/bin /ide_plugins/vs/vs2015/SourcetrailPlugin/SourcetrailPlugin/obj @@ -55,6 +56,7 @@ sourcetrail.srctrlprj compile_commands.json Makefile +CMakeLists.txt.user* /__pycache__/ /deployment/windows/wixSetup/bin diff --git a/src/lib_gui/qt/window/QtWindow.cpp b/src/lib_gui/qt/window/QtWindow.cpp index e8b9d4f9..6893d5d6 100644 --- a/src/lib_gui/qt/window/QtWindow.cpp +++ b/src/lib_gui/qt/window/QtWindow.cpp @@ -409,8 +409,26 @@ void QtWindow::mouseMoveEvent(QMouseEvent* event) { if (event->buttons() & Qt::LeftButton && m_mousePressedInWindow) { - move(event->globalPos() - m_dragPosition); - event->accept(); + if (m_isSubWindow) + { + QPoint pos = event->globalPos() - m_dragPosition; + QRect parentRect = parentWidget()->rect(); + + if (pos.x() < parentRect.left()) + { + pos.setX(parentRect.left()); + } + pos.setX(qBound(parentRect.left(), parentRect.right() - width(), pos.x())); + pos.setY(qBound(parentRect.top(), parentRect.bottom() - height(), pos.y())); + + move(pos); + event->accept(); + } + else + { + move(event->globalPos() - m_dragPosition); + event->accept(); + } } }