diff options
Diffstat (limited to 'src/Ewmh.cc')
-rw-r--r-- | src/Ewmh.cc | 17 |
1 files changed, 10 insertions, 7 deletions
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, | |||
831 | if (winclient == 0 || winclient->fbwindow() == 0) | 831 | if (winclient == 0 || winclient->fbwindow() == 0) |
832 | return true; | 832 | return true; |
833 | // ce.data.l[0] = gravity and flags | 833 | // ce.data.l[0] = gravity and flags |
834 | // ce.data.l[1] = x | 834 | int x = (ce.data.l[0] & 0x0100) ? ce.data.l[1] : |
835 | // ce.data.l[2] = y | 835 | winclient->fbwindow()->x(); |
836 | // ce.data.l[3] = width | 836 | int y = (ce.data.l[0] & 0x0200) ? ce.data.l[2] : |
837 | // ce.data.l[4] = height | 837 | winclient->fbwindow()->y(); |
838 | // TODO: flags | 838 | unsigned int width = (ce.data.l[0] & 0x0400) ? ce.data.l[3] : |
839 | winclient->fbwindow()->width(); | ||
840 | unsigned int height = (ce.data.l[0] & 0x0800) ? ce.data.l[4] : | ||
841 | winclient->fbwindow()->height(); | ||
839 | int win_gravity=ce.data.l[0] & 0xFF; | 842 | int win_gravity=ce.data.l[0] & 0xFF; |
840 | winclient->fbwindow()->moveResizeForClient(ce.data.l[1], ce.data.l[2], | 843 | winclient->fbwindow()->moveResizeForClient(x, y, width, height, |
841 | ce.data.l[3], ce.data.l[4], win_gravity, winclient->old_bw); | 844 | win_gravity, winclient->old_bw); |
842 | return true; | 845 | return true; |
843 | } else if (ce.message_type == m_net_restack_window) { | 846 | } else if (ce.message_type == m_net_restack_window) { |
844 | #ifndef DEBUG | 847 | #ifndef DEBUG |