gri3-wm/src
Michael Stapelberg 4f5e0e794f persist root window’s background contents to a pixmap
The commit title is fairly technical, so I’ll try to explain.

Recently, users of GDM3 (I’m sure) and LightDM (I think) have reported
that when switching to a new workspace, the contents of the previous
workspace are still visible. i3bar updates, though, so it is the X11
root window which is not being updated here.

When using GDM3, X11 will be started with -background none, and no
background pixmap or pixel is set. Then, apparently,
gnome-settings-daemon will display a fade animation from whatever is
currently on the window to the destination contents. I think this is to
avoid flickering when logging in, which would occur when just setting a
specific background pixmap or pixel.

So, this commit will, when i3 starts first (not on restarts), copy the
contents of the X11 root window (typicall a grey background, at least on
my machine with GDM3) into a pixmap and set that pixmap as background
pixmap. That way, the content will be preserved and one has a
background, instead of what is perceived as a bug :).

This commit has some chance of breakage, so I’m prepared to revert it
unless we can figure out the issues and roll forward.
2013-11-24 13:44:30 +01:00
..
Makefile Add stub Makefiles to allow subdir make calls 2012-07-22 19:57:48 +02:00
assignments.c use I3__FILE__ for DLOG, leave __FILE__ as is 2012-08-12 12:19:47 +02:00
click.c Fix keyboard and mouse resize in nested containers 2013-09-26 19:30:07 +02:00
commands.c Fix output retrieval for floating cons 2013-10-23 23:26:06 +02:00
commands_parser.c Typo and usage fixes in documentation and comments. 2013-04-11 22:37:39 +02:00
con.c Merge branch 'master' into next 2013-11-22 17:09:28 +01:00
config.c introduced i3 command for changing the hidden state and the mode of i3bar 2013-05-25 23:00:36 +02:00
config_directives.c reduce some yajl boilerplate 2013-09-26 19:09:39 +02:00
config_parser.c Merge branch 'master' into next 2013-06-29 23:47:29 +02:00
debug.c use I3__FILE__ for DLOG, leave __FILE__ as is 2012-08-12 12:19:47 +02:00
display_version.c make i3bar use libi3’s root_atom_contents() 2013-11-22 15:48:45 +01:00
ewmh.c actively delete _NET_WORKAREA on startup 2013-07-13 12:24:15 +02:00
fake_outputs.c use I3__FILE__ for DLOG, leave __FILE__ as is 2012-08-12 12:19:47 +02:00
floating.c Add sensible discretion to UnmapNotify drag abort 2013-11-10 19:54:49 +01:00
handlers.c Reply to _NET_REQUEST_FRAME_EXTENTS correctly 2013-10-09 19:49:37 +02:00
i3.mk makefile: delete test.{config_parser,commands_parser} in distclean 2013-03-12 14:03:22 +01:00
ipc.c Add new bar.binding_mode_indicator configuration. 2013-09-24 06:59:26 +02:00
key_press.c Make i3-nagbar use the same font as configured for i3 2013-01-26 09:55:38 +01:00
load_layout.c Fix restarting with 32bit depth windows (v5) 2013-03-21 23:38:09 +01:00
log.c log.c: use posix_fallocate() instead of ftruncate() (Thanks don) 2013-08-01 00:42:24 +02:00
main.c persist root window’s background contents to a pixmap 2013-11-24 13:44:30 +01:00
manage.c Assigned windows open urgent when not visible 2013-10-19 10:07:24 +02:00
match.c i3/window: Port window names to i3String 2012-08-13 11:30:08 +02:00
move.c Command 'move <direction>' moves across outputs 2013-11-19 20:26:52 +01:00
output.c fix two more crashes when disabling an empty output 2013-01-25 14:53:15 +01:00
randr.c Use a saner sanity check for floating_reposition. 2013-03-21 23:41:07 +01:00
regex.c use I3__FILE__ for DLOG, leave __FILE__ as is 2012-08-12 12:19:47 +02:00
render.c Revert "raise fullscreen windows on top of all other X11 windows" 2013-08-27 20:21:11 +02:00
resize.c Return DRAG_ABORT on UnmapNotify from drag_pointer 2013-11-09 13:27:42 +01:00
scratchpad.c Do not resize/reposition floating containers when moving them to scratchpad 2013-09-30 22:54:35 +02:00
sd-daemon.c implement "socket activation": passing IPC sockets to i3 2011-08-10 15:55:27 +02:00
sighandler.c spelling fix: s/succesfully/successfully/ 2012-09-20 10:55:03 +02:00
startup.c Use _PATH_BSHELL to ensure using a bourne shell 2013-11-09 10:11:32 +01:00
tree.c previous commit: extend test and code to also work with floating windows 2013-10-13 17:59:29 +02:00
util.c refactor both i3-nagbar starts into src/util.c 2012-12-24 16:53:20 +01:00
window.c Bugfix: correctly recognize assigned windows as urgent (Thanks jookia) 2013-09-24 07:47:36 +02:00
workspace.c Respect workspace numbers when looking for a free workspace name 2013-08-18 17:47:53 +02:00
x.c Revert "raise fullscreen windows on top of all other X11 windows" 2013-08-27 20:21:11 +02:00
xcb.c libi3: Rework font to support multiple backends 2012-08-13 11:39:29 +02:00
xcursor.c switch from libXcursor to xcb-util-cursor 2013-08-17 09:44:20 +02:00
xinerama.c use I3__FILE__ for DLOG, leave __FILE__ as is 2012-08-12 12:19:47 +02:00