i3/include
Ingo Bürk 328035fb7e Handle the EWMH atom _NET_WM_DESKTOP.
We already claim _NET_WM_DESKTOP support in _NET_SUPPORTED since around 2009,
but haven't actually done anything with it. However, especially pagers like
gnome-panel rely on this property to be updated and many tools, like GTK, want
to use the corresponding client messages to make a window sticky, move it
around etc.

This patch implements full support according to the EWMH spec. This means:

* We set the property on all windows when managing it.
* We keep the property updated on all windows at all times.
* We read and respect the property upon managing a window if it was set before
  mapping the window.
* We react to client messages for it.
* We remove the property on withdrawn windows.

Note that the special value 0xFFFFFFFF, according to the spec, means that the
window shall be shown on all workspaces. We do this by making it sticky and
float it. This shows it on all workspaces at least on the output it is on.

Furthermore, the spec gives us the freedom to ignore _NET_WM_DESKTOP when
managing a window if we have good reason to. In our case, we give window
swallowing a higher priority since the user would likely expect that and we
want to keep placeholder windows only around for as long as we have to.
However, we do prioritize this property over, for example, startup
notifications.

fixes #2153
fixes #1507
fixes #938
2016-01-18 12:13:36 +01:00
..
i3 Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
all.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
assignments.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
atoms.xmacro Support matching _NET_WM_WINDOW_TYPE_NOTIFICATION 2015-12-15 21:55:33 +01:00
bindings.h bindings.h: mark DEFAULT_BINDING_MODE as external 2016-01-08 19:56:32 +01:00
click.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
cmdparse.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
commands_parser.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
commands.h added "toggle" option to "split" command 2016-01-04 17:31:47 +01:00
con.h Move title_format from window to container. 2016-01-05 12:22:27 -05:00
config_directives.h Rename decoration_border to child_border. 2016-01-09 16:47:33 -05:00
config_parser.h Check duplicated bindings after translating keysym 2015-10-02 22:09:53 +08:00
config.h Rename decoration_border to child_border. 2016-01-09 16:47:33 -05:00
data.h Handle the EWMH atom _NET_WM_DESKTOP. 2016-01-18 12:13:36 +01:00
debug.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
display_version.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
ewmh.h Handle the EWMH atom _NET_WM_DESKTOP. 2016-01-18 12:13:36 +01:00
fake_outputs.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
floating.h Support "resize set W H" 2015-09-11 23:12:07 +02:00
handlers.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
i3.h Refactor extern definition of conn and root_screen 2015-12-29 12:47:12 +01:00
ipc.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
key_press.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
libi3.h Move title_format from window to container. 2016-01-05 12:22:27 -05:00
load_layout.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
log.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
main.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
manage.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
match.h Refactor parsing of matches to avoid code duplication. 2015-10-04 17:40:25 +02:00
move.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
output.h Keep a sticky window focused if it was the focused window on the source workspace. 2015-09-24 22:10:17 +02:00
queue.h clang-format-3.5 **/*.h **/*.c 2014-06-19 11:20:32 +02:00
randr.h Don't create empty workspaces on restart 2015-09-21 13:26:58 +02:00
regex.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
render.h Refactor out some individual functions in render_con() to make the code more readable. 2015-09-09 18:37:07 +02:00
resize.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
restore_layout.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
scratchpad.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
sd-daemon.h clang-format-3.5 **/*.h **/*.c 2014-06-19 11:20:32 +02:00
shmlog.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
sighandler.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
startup.h Turn "char *" into "const char *" for all command parser functions. 2015-09-28 14:24:08 +02:00
tree.h Validate matched containers for "kill" command correctly. 2015-12-28 02:35:25 -05:00
util.h Move title_format from window to container. 2016-01-05 12:22:27 -05:00
window.h fix memory leak when swallowing windows 2016-01-09 17:06:58 +01:00
workspace.h Handle the EWMH atom _NET_WM_DESKTOP. 2016-01-18 12:13:36 +01:00
x.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
xcb_compat.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
xcb.h Use 32-bit visual by default if available. 2015-11-23 22:18:02 +01:00
xcursor.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
xinerama.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
yajl_utils.h Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00