Updating branch refs/heads/xfce-4.8 to 30e7cb0fc8b51d9bfe08ce0c04f08f09889bef88 (commit) from 9c6463e5f9eb6f396d250554e10511774882485f (commit)
commit 30e7cb0fc8b51d9bfe08ce0c04f08f09889bef88 Author: Olivier Fourdan <four...@xfce.org> Date: Sun Jan 8 11:54:18 2012 +0100 Name the window manager when one is already running to help debugging sessions issues src/main.c | 2 +- src/screen.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletions(-) diff --git a/src/main.c b/src/main.c index e5fb24b..cf42e07 100644 --- a/src/main.c +++ b/src/main.c @@ -595,7 +595,7 @@ main (int argc, char **argv) switch (status) { case -1: - g_warning ("Another Window Manager is already running"); + g_warning ("Could not find a screen to manage, exiting"); exit (1); break; case -2: diff --git a/src/screen.c b/src/screen.c index a76ec0f..e629cb3 100644 --- a/src/screen.c +++ b/src/screen.c @@ -83,12 +83,25 @@ myScreenSetWMAtom (ScreenInfo *screen_info, gboolean replace_wm) g_snprintf (selection, sizeof (selection), "WM_S%d", screen_info->screen); wm_sn_atom = XInternAtom (display_info->dpy, selection, FALSE); + XSync (display_info->dpy, FALSE); current_wm = XGetSelectionOwner (display_info->dpy, wm_sn_atom); if (current_wm) { if (!replace_wm) { + const char *wm_name; + gchar *display_name; + + display_name = gdk_screen_make_display_name (screen_info->gscr); + wm_name = gdk_x11_screen_get_window_manager_name (screen_info->gscr); + g_message ("Another Window Manager (%s) is already running on screen %s", wm_name, display_name); g_message ("To replace the current window manager, try \"--replace\""); + g_free (display_name); + /* + * Note: gdk_x11_screen_get_window_manager_name() returns a + * const not to be freed, no leak here... + */ + return FALSE; } gdk_error_trap_push (); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits