diff options
author | Iain Holmes <iain@src.gnome.org> | 2007-11-13 23:12:56 +0000 |
---|---|---|
committer | Iain Holmes <iain@src.gnome.org> | 2007-11-13 23:12:56 +0000 |
commit | 4ae3e2fb224faad2d20adbe0efb5a4b52bc3bbf4 (patch) | |
tree | 2a30e3ed56afdd5f9e883aafcfbdc647218c7ce8 | |
parent | 0377d0b33483bda7bc2fc95d509219858f6bb15f (diff) | |
download | metacity-4ae3e2fb224faad2d20adbe0efb5a4b52bc3bbf4.tar.gz |
Get the root pixmap correctly
svn path=/branches/iains-blingtastic-bucket-o-bling/; revision=3394
-rw-r--r-- | src/compositor.c | 32 | ||||
-rw-r--r-- | src/display.c | 4 | ||||
-rw-r--r-- | src/display.h | 2 |
3 files changed, 21 insertions, 17 deletions
diff --git a/src/compositor.c b/src/compositor.c index d74dcf45..ccbb54c5 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -516,14 +516,17 @@ root_tile (MetaScreen *screen) XRenderPictureAttributes pa; XRenderPictFormat *format; int p; - Atom background_atoms[2]; + Atom background_atoms[3]; + Atom pixmap_atom; pixmap = None; -#if 0 background_atoms[0] = display->atom_x_root_pixmap; background_atoms[1] = display->atom_x_set_root; - for (p = 0; p < 2; p++) { + background_atoms[2] = display->atom_e_set_root; + + pixmap_atom = XInternAtom (display->xdisplay, "PIXMAP", False); + for (p = 0; p < 3; p++) { Atom actual_type; int actual_format; gulong nitems, bytes_after; @@ -533,17 +536,19 @@ root_tile (MetaScreen *screen) background_atoms[p], 0, 4, FALSE, AnyPropertyType, &actual_type, &actual_format, - &nitems, &bytes_after, &prop) == Success && - actual_type == display->atom_pixmap && - actual_format == 32 && - nitems == 1) { - memcpy (&pixmap, prop, 4); - XFree (prop); - fill = FALSE; - break; - } + &nitems, &bytes_after, &prop) == Success) + { + if (actual_type == pixmap_atom && + actual_format == 32 && + nitems == 1) + { + memcpy (&pixmap, prop, 4); + XFree (prop); + fill = FALSE; + break; + } + } } -#endif if (!pixmap) { pixmap = XCreatePixmap (display->xdisplay, screen->xroot, 1, 1, @@ -1629,7 +1634,6 @@ meta_compositor_unmanage_screen (MetaCompositor *compositor, g_free (info->gaussian_map); - /* FIXME: Use correct composite mode */ XCompositeUnredirectSubwindows (display->xdisplay, screen->xroot, CompositeRedirectManual); meta_screen_unset_cm_selection (screen); diff --git a/src/display.c b/src/display.c index 0e674b27..29804a3c 100644 --- a/src/display.c +++ b/src/display.c @@ -344,7 +344,7 @@ meta_display_open (void) "_NET_WM_ACTION_BELOW" "_XROOTPMAP_ID", "_XSETROOT_ID", - "PIXMAP", + "ESETROOT_PMAP_ID" }; Atom atoms[G_N_ELEMENTS(atom_names)]; @@ -508,7 +508,7 @@ meta_display_open (void) display->atom_net_wm_action_below = atoms[96]; display->atom_x_root_pixmap = atoms[97]; display->atom_x_set_root = atoms[98]; - display->atom_pixmap = atoms[99]; + display->atom_e_set_root = atoms[99]; display->prop_hooks = NULL; meta_display_init_window_prop_hooks (display); diff --git a/src/display.h b/src/display.h index 6277f358..1e9fa1b2 100644 --- a/src/display.h +++ b/src/display.h @@ -186,7 +186,7 @@ struct _MetaDisplay Atom atom_net_wm_user_time_window; Atom atom_x_root_pixmap; Atom atom_x_set_root; - Atom atom_pixmap; + Atom atom_e_set_root; /* This is the actual window from focus events, * not the one we last set |