]> git.sur5r.net Git - i3/i3/commit
Send IPC window events for focus and title changes
authorMarco Hunsicker <i3@hunsicker.de>
Sat, 22 Feb 2014 10:52:01 +0000 (11:52 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Wed, 26 Feb 2014 21:24:19 +0000 (22:24 +0100)
commit00ee86de79800d80cacc014b53b47585eacdb90b
tree71bc3f9cc5e8b94ffd3eaed3134f93911c84dca3
parent07d583d7806dc87c92796fcc1c3cf0b887dd925b
Send IPC window events for focus and title changes

This patch fixes ticket #1168 to extend the window IPC event mechanism
to send IPC events for window focus and title changes. The newly added
window events use the same format as the already established "new"
event.

Specifically this patch:

* Moves the ipc_send_window_event() function from src/manage.c into
  src/ipc.c and adds an argument for the change property of the event
* Updates src/manage.c to use the new function signature. To ensure
  that the "new" event does not send the same event data as the
  "focus" event, setting focus now happens after the "new" event
  has been sent
* Adds IPC focus event notification to src/x.c. To workaround a problem
  during window close when accessing the window name, a function has been
  added to query whether a window is actually attached to its parent. To
  avoid obsolete focus notification, a new field has been added to keep
  track of the focus without any interference by the click handling
* Adds IPC title event notification to src/handlers.c. To avoid
  obsolete title notification, a function has been added to determine
  whether a window title has actually changed
* Updates the IPC documentation to include the new events
* Updates testcases/t/205-ipc-windows.t to include the "focus" event
  in order to ensure the correct event sequence
* Adds two new unit tests, b/testcases/t/219-ipc-window-focus.t and
  b/testcases/t/220-ipc-window-title.t to ensure proper "focus" and
 "title" events
docs/ipc
include/ipc.h
src/handlers.c
src/ipc.c
src/manage.c
src/x.c
testcases/t/205-ipc-windows.t
testcases/t/219-ipc-window-focus.t [new file with mode: 0644]
testcases/t/220-ipc-window-title.t [new file with mode: 0644]