diff options
author | Jérôme Guelfucci <jeromeg@xfce.org> | 2010-01-22 23:51:36 +0100 |
---|---|---|
committer | Nick Schermer <nick@xfce.org> | 2010-01-28 19:50:22 +0100 |
commit | cd25664c090036790eef891893208ca826d84439 (patch) | |
tree | 0b9e59bb7574319ce9492650318cad04bfdacb6c | |
parent | 68d8c335e2ae1afe2d5f469560f0db8d95d51550 (diff) | |
download | xfce4-session-cd25664c090036790eef891893208ca826d84439.tar.gz |
Add a local function to get the display full name.
-rw-r--r-- | libxfsm/xfsm-util.c | 78 | ||||
-rw-r--r-- | libxfsm/xfsm-util.h | 3 | ||||
-rw-r--r-- | xfce4-session/shutdown.c | 2 | ||||
-rw-r--r-- | xfce4-session/xfsm-global.c | 2 | ||||
-rw-r--r-- | xfce4-session/xfsm-manager.c | 2 |
5 files changed, 49 insertions, 38 deletions
diff --git a/libxfsm/xfsm-util.c b/libxfsm/xfsm-util.c index 1a76a793..26391538 100644 --- a/libxfsm/xfsm-util.c +++ b/libxfsm/xfsm-util.c @@ -76,41 +76,10 @@ xfsm_start_application (gchar **command, { if (client_machine != NULL) { - const gchar *name; - const gchar *np; - GdkDisplay *display; - gchar *hostname; - gchar buffer[256]; - gchar *bp; - - display = gdk_screen_get_display (screen); - - name = gdk_display_get_name (display); - if (*name == ':') - { - hostname = xfce_gethostname (); - g_strlcpy (buffer, hostname, 256); - g_free (hostname); - - bp = buffer + strlen (buffer); - - for (np = name; *np != '\0' && *np != '.' && bp < buffer + 255; ) - *bp++ = *np++; - *bp = '\0'; - } - else - { - g_strlcpy (buffer, name, 256); - - for (bp = buffer + strlen (buffer) - 1; *bp != ':'; --bp) - if (*bp == '.') - { - *bp = '\0'; - break; - } - } - - screen_name = g_strdup_printf ("%s.%d", buffer, + gchar *display_name = + xfsm_gdk_display_get_fullname (gdk_screen_get_display (screen)); + + screen_name = g_strdup_printf ("%s.%d", display_name, gdk_screen_get_number (screen)); } else @@ -225,3 +194,42 @@ xfsm_open_config (void) return xfconf_channel_get ("xfce4-session"); } +gchar* +xfsm_gdk_display_get_fullname (GdkDisplay *display) +{ + const gchar *name; + const gchar *np; + gchar *hostname; + gchar buffer[256]; + gchar *bp; + + g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); + + name = gdk_display_get_name (display); + if (*name == ':') + { + hostname = xfce_gethostname (); + g_strlcpy (buffer, hostname, 256); + g_free (hostname); + + bp = buffer + strlen (buffer); + + for (np = name; *np != '\0' && *np != '.' && bp < buffer + 255; ) + *bp++ = *np++; + *bp = '\0'; + } + else + { + g_strlcpy (buffer, name, 256); + + for (bp = buffer + strlen (buffer) - 1; *bp != ':'; --bp) + if (*bp == '.') + { + *bp = '\0'; + break; + } + } + + return g_strdup (buffer); +} + diff --git a/libxfsm/xfsm-util.h b/libxfsm/xfsm-util.h index d479beed..d7b9d9b9 100644 --- a/libxfsm/xfsm-util.h +++ b/libxfsm/xfsm-util.h @@ -50,6 +50,9 @@ void xfsm_window_grab_input (GtkWindow *window); XfconfChannel *xfsm_open_config (void); +gchar *xfsm_gdk_display_get_fullname (GdkDisplay *display); + + G_END_DECLS; #endif /* !__XFSM_UTIL_H__ */ diff --git a/xfce4-session/shutdown.c b/xfce4-session/shutdown.c index 96252e86..58536047 100644 --- a/xfce4-session/shutdown.c +++ b/xfce4-session/shutdown.c @@ -96,7 +96,7 @@ screenshot_save (const gchar *session_name, GdkPixmap *pm, GdkRectangle *area) { /* determine thumb file */ dpy = gdk_drawable_get_display (GDK_DRAWABLE (pm)); - display_name = xfce_gdk_display_get_fullname (dpy); + display_name = xfsm_gdk_display_get_fullname (dpy); resource = g_strconcat ("sessions/thumbs-", display_name, "/", session_name, ".png", NULL); filename = xfce_resource_save_location (XFCE_RESOURCE_CACHE, diff --git a/xfce4-session/xfsm-global.c b/xfce4-session/xfsm-global.c index 9d6a4341..9aa98d0d 100644 --- a/xfce4-session/xfsm-global.c +++ b/xfce4-session/xfsm-global.c @@ -150,7 +150,7 @@ xfsm_load_session_preview (const gchar *name) /* determine thumb file */ display = gdk_display_get_default (); - display_name = xfce_gdk_display_get_fullname (display); + display_name = xfsm_gdk_display_get_fullname (display); resource = g_strconcat ("sessions/thumbs-", display_name, "/", name, ".png", NULL); filename = xfce_resource_save_location (XFCE_RESOURCE_CACHE, resource, TRUE); diff --git a/xfce4-session/xfsm-manager.c b/xfce4-session/xfsm-manager.c index 4f9e60ed..6aa3543c 100644 --- a/xfce4-session/xfsm-manager.c +++ b/xfce4-session/xfsm-manager.c @@ -726,7 +726,7 @@ xfsm_manager_load (XfsmManager *manager, manager->compat_gnome = xfconf_channel_get_bool (channel, "/compat/LaunchGNOME", FALSE); manager->compat_kde = xfconf_channel_get_bool (channel, "/compat/LaunchKDE", FALSE); - display_name = xfce_gdk_display_get_fullname (gdk_display_get_default ()); + display_name = xfsm_gdk_display_get_fullname (gdk_display_get_default ()); #ifdef HAVE_OS_CYGWIN /* rename a colon (:) to a hash (#) under cygwin. windows doesn't like |