76 : QObject(targetWindow)
77 , target(targetWindow)
78 , initialMousePosition(QCursor::pos())
79 , initialWindowRect(target->geometry())
82 target->installEventFilter(
this);
88 switch (event->type()) {
89 case QEvent::MouseMove: {
90 auto mouseEvent =
static_cast<QMouseEvent *
>(event);
92 QRect windowRect = initialWindowRect;
94 if (resizeEdges & Qt::LeftEdge) {
95 int delta = globalMousePos.x() - initialMousePosition.x();
96 windowRect.setLeft(initialWindowRect.left() + delta);
98 if (resizeEdges & Qt::RightEdge) {
99 int delta = globalMousePos.x() - initialMousePosition.x();
100 windowRect.setRight(initialWindowRect.right() + delta);
102 if (resizeEdges & Qt::TopEdge) {
103 int delta = globalMousePos.y() - initialMousePosition.y();
104 windowRect.setTop(initialWindowRect.top() + delta);
106 if (resizeEdges & Qt::BottomEdge) {
107 int delta = globalMousePos.y() - initialMousePosition.y();
108 windowRect.setBottom(initialWindowRect.bottom() + delta);
111 target->setGeometry(windowRect);
115 case QEvent::MouseButtonRelease: {
116 target->removeEventFilter(
this);