[Xfce4-commits] <xfwm4:master> Name the window manager when one is already running to help debugging sessions issues
Olivier Fourdan
noreply at xfce.org
Sun Jan 8 15:14:03 CET 2012
Updating branch refs/heads/master
to ab54b1d7322adaac89b4218e52912d75dc395747 (commit)
from 25d7979f014ea183bbdc2ca446d5c0e23e0c639b (commit)
commit ab54b1d7322adaac89b4218e52912d75dc395747
Author: Olivier Fourdan <fourdan at xfce.org>
Date: Sun Jan 8 12:15:32 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 2a1e6a7..f6ee50f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -587,7 +587,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 0aca55a..40485a0 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -87,12 +87,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 ();
More information about the Xfce4-commits
mailing list