]> git.sur5r.net Git - i3/i3/commit
handle ButtonPress events with child != XCB_NONE (Thanks xeen)
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 9 Feb 2014 13:00:43 +0000 (14:00 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 9 Feb 2014 13:00:43 +0000 (14:00 +0100)
commit491274d8b3f0f683fb554d696f5c2bd205a0cfc9
treeb64bde37ae285f8f1f453d8a207d0c0bebfd20cd
parent22be7bc986f51e8dc798fcd5f6bb72e3ed87ba0c
handle ButtonPress events with child != XCB_NONE (Thanks xeen)

The X11 protocol description states:

  The window the event is reported with respect to is called the event
  window. The event window is found by starting with the source window
  and looking up the hierarchy for the first window on which any client
  has selected interest in the event.

For the case of urxvt with URxvt.internalBorder > 0, urxvt sets up a
subwindow for its actual contents that is placed “in the middle” of the
urxvt window. In terms of the X11 protocol, the source window is urxvt’s
window, but urxvt does not select ButtonPress events for that.
Therefore, X11 will go up in the hierarchy and deliver the event to i3
for i3’s window decoration, even though this was not actually a click on
the decoration, but into the managed window.

Therefore, we check whether child != XCB_NONE for clicks on window
decorations and then handle them as a click inside the window.

fixes #1176
src/click.c