Go to file
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
contrib contrib: add per-workspace-layout.pl 2014-01-26 16:51:32 +01:00
debian debian: update changelog 2015-09-30 09:03:34 +02:00
docs Rename decoration_border to child_border. 2016-01-09 16:47:33 -05:00
i3-config-wizard Correct color management for pango fonts 2015-12-29 14:26:21 +01:00
i3-dump-log i3-dump-log: explicitly free shmname 2016-01-08 20:17:34 +01:00
i3-input Correct color management for pango fonts 2015-12-29 14:26:21 +01:00
i3-msg i3-msg: strdup getenv() result before freeing 2015-09-08 09:13:26 +02:00
i3-nagbar i3-nagbar: explicitly set cursor using libxcursor if available 2016-01-04 09:26:45 +01:00
i3bar ASAN: trigger leak before exiting 2016-01-09 17:18:05 +01:00
include Handle the EWMH atom _NET_WM_DESKTOP. 2016-01-18 12:13:36 +01:00
libi3 font: free errors 2016-01-09 17:07:23 +01:00
man man: add “floating window” to terminology (Thanks frederik) 2015-10-16 19:42:20 +02:00
parser-specs Rename decoration_border to child_border. 2016-01-09 16:47:33 -05:00
src Handle the EWMH atom _NET_WM_DESKTOP. 2016-01-18 12:13:36 +01:00
testcases Handle the EWMH atom _NET_WM_DESKTOP. 2016-01-18 12:13:36 +01:00
.clang-format clang-format: don’t define ForeachMacros 2014-06-19 11:17:46 +02:00
.gitignore Rebuild version.o when version.c or LAST_VERSION change 2015-04-12 12:31:58 -04:00
.travis.yml travis: use trusty (simpler config, faster builds) 2016-01-11 21:18:11 +01:00
common.mk common.mk: add ASAN flag for AddressSanitizer 2016-01-09 17:15:33 +01:00
CONTRIBUTING.md docs: improve formatting for CONTRIBUTING 2015-08-01 14:50:55 -04:00
DEPENDS Raise dependency to cairo 1.14.4. 2015-11-02 17:32:04 -05:00
generate-command-parser.pl generate parser enums stably: additionally sort on name 2015-08-05 21:23:51 +01:00
i3-dmenu-desktop Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
i3-migrate-config-to-v4 Remove dead documentation for non-existing feature "stack-limit". 2015-06-09 23:13:15 +02:00
i3-save-tree i3-save-tree: retain “rect” for floating_cons 2015-08-05 22:43:18 +02:00
i3-sensible-editor Quote the variables in i3-sensible-* correctly 2015-11-30 21:36:23 +00:00
i3-sensible-pager Quote the variables in i3-sensible-* correctly 2015-11-30 21:36:23 +00:00
i3-sensible-terminal Quote the variables in i3-sensible-* correctly 2015-11-30 21:36:23 +00:00
i3-with-shmlog.xsession.desktop enable shmlog when invoked as i3-with-shmlog, install symlink + .desktop file 2014-01-04 12:18:45 +01:00
i3.applications.desktop Add 'NoDisplay=true' to i3.application.desktop 2013-06-12 19:47:57 +02:00
i3.config Add 'tray_output primary' to the default config 2015-08-25 18:56:05 +02:00
i3.config.keycodes Add 'tray_output primary' to the default config 2015-08-25 18:56:05 +02:00
i3.xsession.desktop set DesktopNames (which gdm uses) (Thanks Yves-Alexis) 2014-10-23 23:18:15 +02:00
LICENSE remove obsolete CMDMODE and TODO files, update LICENSE 2011-10-08 15:18:04 +01:00
logo.svg s/i3.zekjur.net/i3wm.org/g 2011-08-28 17:44:42 +02:00
Makefile Rebuild version.o when version.c or LAST_VERSION change 2015-04-12 12:31:58 -04:00
PACKAGE-MAINTAINER Fix contact information 2015-11-22 19:57:46 +01:00
pseudo-doc.doxygen s/i3.zekjur.net/i3wm.org/g 2011-08-28 17:44:42 +02:00
RELEASE-NOTES-4.11 release i3 4.11 2015-09-30 08:55:07 +02:00
release.sh Use https if possible 2015-11-19 13:32:35 +01:00