diff -Nru xfdesktop4-4.8.1/debian/changelog xfdesktop4-4.8.1/debian/changelog --- xfdesktop4-4.8.1/debian/changelog 2011-03-11 19:51:51.000000000 +0000 +++ xfdesktop4-4.8.1/debian/changelog 2011-04-22 20:31:11.000000000 +0100 @@ -1,3 +1,10 @@ +xfdesktop4 (4.8.1-1ubuntu3) natty; urgency=low + + * debian/patches/bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch + - Upstream patch by Nick Schermer to fix logout/shutdown crashes + + -- Arand Nash Fri, 22 Apr 2011 20:28:45 +0100 + xfdesktop4 (4.8.1-1ubuntu2) natty; urgency=low * debian/patches: diff -Nru xfdesktop4-4.8.1/debian/patches/bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch xfdesktop4-4.8.1/debian/patches/bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch --- xfdesktop4-4.8.1/debian/patches/bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch 1970-01-01 01:00:00.000000000 +0100 +++ xfdesktop4-4.8.1/debian/patches/bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch 2011-04-22 21:07:16.000000000 +0100 @@ -0,0 +1,71 @@ +From bf07cc01b5457067303bdfad93433def548b6172 Mon Sep 17 00:00:00 2001 +From: Nick Schermer +Date: Fri, 22 Apr 2011 16:55:35 +0000 +Subject: Stop altering the root window pixmap to avoid X crash (bug #7442). + +Altering the back pixmap makes X segfault, sometimes on startup +of xfdesktop, all the time during logout. Not the best solution +to fix it this way, but the background is still shown when +xfdesktop is running, so not a big issue. +--- +--- a/src/xfce-desktop.c ++++ b/src/xfce-desktop.c +@@ -275,6 +275,7 @@ + set_real_root_window_pixmap(GdkScreen *gscreen, + GdkPixmap *pmap) + { ++#if 0 /* see bug #7442 */ + Window xid; + GdkWindow *groot; + +@@ -296,8 +297,9 @@ + /* and set the root window's BG pixmap, because aterm is somewhat lame. */ + gdk_window_set_back_pixmap(groot, pmap, FALSE); + /* there really should be a standard for this crap... */ +- ++ + gdk_error_trap_pop(); ++#endif + } + + static void +@@ -808,15 +810,19 @@ + G_CALLBACK(screen_size_changed_cb), desktop); + g_signal_handlers_disconnect_by_func(G_OBJECT(desktop->priv->gscreen), + G_CALLBACK(screen_composited_changed_cb), desktop); ++ ++ gdk_error_trap_push(); + + groot = gdk_screen_get_root_window(desktop->priv->gscreen); + gdk_property_delete(groot, gdk_atom_intern("XFCE_DESKTOP_WINDOW", FALSE)); + gdk_property_delete(groot, gdk_atom_intern("NAUTILUS_DESKTOP_WINDOW_ID", FALSE)); ++ ++#if 0 /* see bug #7442 */ + gdk_property_delete(groot, gdk_atom_intern("_XROOTPMAP_ID", FALSE)); + gdk_property_delete(groot, gdk_atom_intern("ESETROOT_PMAP_ID", FALSE)); + gdk_window_set_back_pixmap(groot, NULL, FALSE); +- gdk_flush(); +- ++#endif ++ + if(desktop->priv->backdrops) { + for(i = 0; i < desktop->priv->nbackdrops; i++) { + g_snprintf(property_name, 128, XFDESKTOP_IMAGE_FILE_FMT, i); +@@ -826,7 +832,10 @@ + g_free(desktop->priv->backdrops); + desktop->priv->backdrops = NULL; + } +- ++ ++ gdk_flush(); ++ gdk_error_trap_pop(); ++ + g_object_unref(G_OBJECT(desktop->priv->bg_pixmap)); + desktop->priv->bg_pixmap = NULL; + +--- a/po/POTFILES.skip ++++ b/po/POTFILES.skip +@@ -1,2 +1,3 @@ + .pc/0001-Retrieve-the-translated-desktop-file-name.patch/src/xfdesktop-file-utils.c + .pc/xubuntu_hide-ugly-resize-grip.patch/src/xfce-desktop.c ++.pc/bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch diff -Nru xfdesktop4-4.8.1/debian/patches/series xfdesktop4-4.8.1/debian/patches/series --- xfdesktop4-4.8.1/debian/patches/series 2011-03-11 20:16:01.000000000 +0000 +++ xfdesktop4-4.8.1/debian/patches/series 2011-04-22 21:11:16.000000000 +0100 @@ -1,2 +1,3 @@ 0001-Retrieve-the-translated-desktop-file-name.patch xubuntu_hide-ugly-resize-grip.patch +bf07cc0-dont-alter-root-window-pixmap-to-avoid-X-crash.patch