Index: src/windowlist.c =================================================================== --- src/windowlist.c (revision 23817) +++ src/windowlist.c (working copy) @@ -52,19 +52,26 @@ { static Atom xa_NET_NUMBER_OF_DESKTOPS = 0; XClientMessageEvent sev; + GdkScreen *gscreen; + GdkDisplay *gdisplay; + GdkWindow *groot; + Display *xdpy; gint n; - GdkScreen *gscreen = gtk_widget_get_screen(w); - GdkWindow *groot = gdk_screen_get_root_window(gscreen); + gscreen = gtk_widget_get_screen(w); + gdisplay = gdk_screen_get_display (gscreen); + groot = gdk_screen_get_root_window(gscreen); + xdpy = (Display *) gdk_x11_display_get_xdisplay (gdisplay); + if(!xa_NET_NUMBER_OF_DESKTOPS) { - xa_NET_NUMBER_OF_DESKTOPS = XInternAtom(GDK_DISPLAY(), + xa_NET_NUMBER_OF_DESKTOPS = XInternAtom(xdpy, "_NET_NUMBER_OF_DESKTOPS", False); } n = GPOINTER_TO_INT(num); sev.type = ClientMessage; - sev.display = GDK_DISPLAY(); + sev.display = xdpy; sev.format = 32; sev.window = GDK_WINDOW_XID(groot); sev.message_type = xa_NET_NUMBER_OF_DESKTOPS; @@ -72,7 +79,7 @@ gdk_error_trap_push(); - XSendEvent(GDK_DISPLAY(), GDK_WINDOW_XID(groot), False, + XSendEvent(xdpy, GDK_WINDOW_XID(groot), False, SubstructureNotifyMask | SubstructureRedirectMask, (XEvent *)&sev); Index: src/settings.c =================================================================== --- src/settings.c (revision 23817) +++ src/settings.c (working copy) @@ -89,14 +89,16 @@ McsClient * settings_init() { + GdkDisplay *gdisplay; Display *xdpy; gint xscreen; g_return_val_if_fail(mcs_client == NULL, mcs_client); + + gdisplay = gdk_display_get_default (); + xdpy = (Display *) gdk_x11_display_get_xdisplay (gdisplay); + xscreen = gdk_screen_get_number(gdk_display_get_default_screen(gdisplay)); - xdpy = GDK_DISPLAY(); - xscreen = gdk_screen_get_number(gdk_display_get_default_screen(gdk_display_get_default())); - if(!mcs_client_check_manager(xdpy, xscreen, "xfce-mcs-manager")) { g_critical("%s: Unable to start settings manager", PACKAGE); return NULL; Index: src/xfce-desktop.c =================================================================== --- src/xfce-desktop.c (revision 23817) +++ src/xfce-desktop.c (working copy) @@ -465,16 +465,24 @@ gint xscreen; gchar selection_name[100]; Atom selection_atom, manager_atom; - + GdkScreen *gscreen; + GdkDisplay *gdisplay; + GdkWindow *groot; + Display *xdpy; + + gscreen = desktop->priv->gscreen; xwin = GDK_WINDOW_XID(GTK_WIDGET(desktop)->window); - xscreen = gdk_screen_get_number(desktop->priv->gscreen); + xscreen = gdk_screen_get_number(gscreen); + gdisplay = gdk_screen_get_display (gscreen); + groot = gdk_screen_get_root_window(gscreen); + xdpy = (Display *) gdk_x11_display_get_xdisplay (gdisplay); g_snprintf(selection_name, 100, XFDESKTOP_SELECTION_FMT, xscreen); - selection_atom = XInternAtom(GDK_DISPLAY(), selection_name, False); - manager_atom = XInternAtom(GDK_DISPLAY(), "MANAGER", False); + selection_atom = XInternAtom(xdpy, selection_name, False); + manager_atom = XInternAtom(xdpy, "MANAGER", False); - XSelectInput(GDK_DISPLAY(), xwin, PropertyChangeMask | ButtonPressMask); - XSetSelectionOwner(GDK_DISPLAY(), selection_atom, xwin, GDK_CURRENT_TIME); + XSelectInput(xdpy, xwin, PropertyChangeMask | ButtonPressMask); + XSetSelectionOwner(xdpy, selection_atom, xwin, GDK_CURRENT_TIME); /* listen for client messages */ g_signal_connect(G_OBJECT(desktop), "client-event", @@ -482,9 +490,9 @@ /* Check to see if we managed to claim the selection. If not, * we treat it as if we got it then immediately lost it */ - if(XGetSelectionOwner(GDK_DISPLAY(), selection_atom) == xwin) { + if(XGetSelectionOwner(xdpy, selection_atom) == xwin) { XClientMessageEvent xev; - Window xroot = GDK_WINDOW_XID(gdk_screen_get_root_window(desktop->priv->gscreen)); + Window xroot = GDK_WINDOW_XID(groot); xev.type = ClientMessage; xev.window = xroot; @@ -496,7 +504,7 @@ xev.data.l[3] = 0; /* manager specific data */ xev.data.l[4] = 0; /* manager specific data */ - XSendEvent(GDK_DISPLAY(), xroot, False, StructureNotifyMask, (XEvent *)&xev); + XSendEvent(xdpy, xroot, False, StructureNotifyMask, (XEvent *)&xev); } else { g_error("%s: could not set selection ownership", PACKAGE); exit(1);