From f7574fe1c90118ca7421dffef0b035cb64cf78c1 Mon Sep 17 00:00:00 2001 From: markt Date: Sun, 9 Jul 2006 01:46:47 +0000 Subject: fix implementation of _NET_MOVERESIZE_WINDOW --- ChangeLog | 3 +++ src/Ewmh.cc | 17 ++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2fc0f98..33f0de9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ (Format: Year/Month/Day) Changes for 1.0rc3: +*06/07/08: + * Fix implementation of _NET_MOVERESIZE_WINDOW (Mark) + Ewmh.cc *06/07/06: * Fixed bug #1069909, Incorrect window dimensions (Henrik) It created strut even if it didnt have any clients diff --git a/src/Ewmh.cc b/src/Ewmh.cc index 8a5bfad..78a2b3c 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc @@ -831,14 +831,17 @@ bool Ewmh::checkClientMessage(const XClientMessageEvent &ce, if (winclient == 0 || winclient->fbwindow() == 0) return true; // ce.data.l[0] = gravity and flags - // ce.data.l[1] = x - // ce.data.l[2] = y - // ce.data.l[3] = width - // ce.data.l[4] = height - // TODO: flags + int x = (ce.data.l[0] & 0x0100) ? ce.data.l[1] : + winclient->fbwindow()->x(); + int y = (ce.data.l[0] & 0x0200) ? 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(); int win_gravity=ce.data.l[0] & 0xFF; - winclient->fbwindow()->moveResizeForClient(ce.data.l[1], ce.data.l[2], - ce.data.l[3], ce.data.l[4], win_gravity, winclient->old_bw); + winclient->fbwindow()->moveResizeForClient(x, y, width, height, + win_gravity, winclient->old_bw); return true; } else if (ce.message_type == m_net_restack_window) { #ifndef DEBUG -- cgit v0.11.2