summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJérôme Guelfucci <jeromeg@xfce.org>2010-01-22 23:51:36 +0100
committerNick Schermer <nick@xfce.org>2010-01-28 19:50:22 +0100
commitcd25664c090036790eef891893208ca826d84439 (patch)
tree0b9e59bb7574319ce9492650318cad04bfdacb6c
parent68d8c335e2ae1afe2d5f469560f0db8d95d51550 (diff)
downloadxfce4-session-cd25664c090036790eef891893208ca826d84439.tar.gz
Add a local function to get the display full name.
-rw-r--r--libxfsm/xfsm-util.c78
-rw-r--r--libxfsm/xfsm-util.h3
-rw-r--r--xfce4-session/shutdown.c2
-rw-r--r--xfce4-session/xfsm-global.c2
-rw-r--r--xfce4-session/xfsm-manager.c2
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