From 90439526e4c10dc5c2194e6e0439f1d08397c645 Mon Sep 17 00:00:00 2001 From: Bert Gijsbers Date: Sat, 15 Jun 2024 16:39:21 +0200 Subject: [PATCH] Ignore moving/sizing requests, when a moving or sizing is already in progress. --- src/movesize.cc | 6 ++++-- src/wmclient.cc | 4 ++-- src/wmframe.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/movesize.cc b/src/movesize.cc index 54eab4d25..2038504af 100644 --- a/src/movesize.cc +++ b/src/movesize.cc @@ -830,9 +830,11 @@ bool YFrameWindow::canSize(bool horiz, bool vert) { return true; } -void YFrameWindow::startMoveSize(int x, int y, - int direction) +void YFrameWindow::netMoveSize(int x, int y, int direction) { + if (movingWindow || sizingWindow) + return; + int sx[] = { -1, 0, 1, 1, 1, 0, -1, -1, }; int sy[] = { -1, -1, -1, 0, 1, 1, 1, 0, }; diff --git a/src/wmclient.cc b/src/wmclient.cc index 863cec82e..327513c75 100644 --- a/src/wmclient.cc +++ b/src/wmclient.cc @@ -955,8 +955,8 @@ void YFrameClient::handleClientMessage(const XClientMessageEvent &message) { message.format == 32) { if (getFrame()) - getFrame()->startMoveSize(message.data.l[0], message.data.l[1], - message.data.l[2]); + getFrame()->netMoveSize(message.data.l[0], message.data.l[1], + message.data.l[2]); } else if (message.message_type == _XA_NET_MOVERESIZE_WINDOW) { if (getFrame()) { long flag = message.data.l[0]; diff --git a/src/wmframe.h b/src/wmframe.h index b1e442e3c..41cd29912 100644 --- a/src/wmframe.h +++ b/src/wmframe.h @@ -126,7 +126,7 @@ class YFrameWindow: YFrameTitleBar *titlebar(); YClientContainer *container() const { return fContainer; } - void startMoveSize(int x, int y, int direction); + void netMoveSize(int x, int y, int direction); void startMoveSize(bool doMove, bool byMouse, int sideX, int sideY,