enable dragging the window

This commit is contained in:
danteruiz 2019-08-30 08:48:25 -07:00
parent 9c062e3228
commit 1f4e15314c
2 changed files with 18 additions and 7 deletions

View file

@ -2,30 +2,37 @@
#include <iostream>
#include <QCursor>
void LauncherWindow::keyPressEvent(QKeyEvent* event) {
QQuickView::keyPressEvent(event);
if (!event->isAccepted()) {
// std::cout << "Key press event\n";
}
}
void LauncherWindow::mousePressEvent(QMouseEvent* event) {
QQuickView::mousePressEvent(event);
if (!event->isAccepted()) {
//std::cout << "mouse press event\n";
if (event->button() == Qt::LeftButton) {
_drag = true;
_previousMousePos = QCursor::pos();
}
}
}
void LauncherWindow::mouseReleaseEvent(QMouseEvent* event) {
QQuickView::mouseReleaseEvent(event);
if (!event->isAccepted()) {
//std::cout << "mouse release event\n";
}
_drag = false;
}
void LauncherWindow::mouseMoveEvent(QMouseEvent* event) {
QQuickView::mouseMoveEvent(event);
if (!event->isAccepted()) {
// std::cout << "mouse move event\n";
if (_drag) {
QPoint cursorPos = QCursor::pos();
QPoint offset = _previousMousePos - cursorPos;
_previousMousePos = cursorPos;
setPosition(position() - offset);
}
}
}

View file

@ -1,5 +1,5 @@
#include <QQuickView>
#include <QPoint>
class LauncherWindow : public QQuickView {
public:
@ -7,4 +7,8 @@ public:
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
void mouseMoveEvent(QMouseEvent* event) override;
private:
bool _drag { false };
QPoint _previousMousePos;
};