all repos — fluxbox @ 5f45524211c380a0e112054bd6766f2155a41d48

custom fork of the fluxbox windowmanager

fix _NET_MOVERESIZE_WINDOW resize issue (#1108)

handing over the dimensions of a WinClient client must not contain properties
of the FbWinFrame, otherwise they get added twice in
FbWinFrame::moveResizeForClient() and thus result in a resizes when no resize
is wanted.

other changes: it's easier for me to detect the nth bit when the value looks
like (1 << 8) instead of 0x0100 (for the 8th bit). that is why i changed
0x0100, 0x0200 etc. in the nearby code.
Mathias Gumz akira at fluxbox dot org
commit

5f45524211c380a0e112054bd6766f2155a41d48

parent

f3e82cae8372c4f4a757e1277a442b5e9056b44f

1 files changed, 6 insertions(+), 6 deletions(-)

jump to
M src/Ewmh.ccsrc/Ewmh.cc

@@ -1177,14 +1177,14 @@ } else if (ce.message_type == m_net->moveresize_window) {

if (winclient == 0 || winclient->fbwindow() == 0) return true; // ce.data.l[0] = gravity and flags - int x = (ce.data.l[0] & 0x0100) ? ce.data.l[1] : + int x = (ce.data.l[0] & (1 << 8)) ? ce.data.l[1] : winclient->fbwindow()->x(); - int y = (ce.data.l[0] & 0x0200) ? ce.data.l[2] : + int y = (ce.data.l[0] & (1 << 9)) ? ce.data.l[2] : winclient->fbwindow()->y(); - unsigned int width = (ce.data.l[0] & 0x0400) ? ce.data.l[3] : - winclient->fbwindow()->width(); - unsigned int height = (ce.data.l[0] & 0x0800) ? ce.data.l[4] : - winclient->fbwindow()->height(); + unsigned int width = (ce.data.l[0] & (1 << 10)) ? ce.data.l[3] : + winclient->width(); + unsigned int height = (ce.data.l[0] & (1 << 11)) ? ce.data.l[4] : + winclient->height(); int win_gravity=ce.data.l[0] & 0xFF; winclient->fbwindow()->moveResizeForClient(x, y, width, height, win_gravity, winclient->old_bw);