[gtk+/gtk-3-4] application-window: Move desktop file handling code to separate function
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-4] application-window: Move desktop file handling code to separate function
- Date: Mon, 16 Apr 2012 16:24:04 +0000 (UTC)
commit 9857c28e2b0606efc3942a89dcd53c4be73d568e
Author: Kalev Lember <kalevlember gmail com>
Date: Sat Apr 14 21:30:26 2012 +0300
application-window: Move desktop file handling code to separate function
https://bugzilla.gnome.org/show_bug.cgi?id=674118
gtk/gtkapplicationwindow.c | 64 ++++++++++++++++++++++++++++----------------
1 files changed, 41 insertions(+), 23 deletions(-)
---
diff --git a/gtk/gtkapplicationwindow.c b/gtk/gtkapplicationwindow.c
index 7037a0a..f1af0e2 100644
--- a/gtk/gtkapplicationwindow.c
+++ b/gtk/gtkapplicationwindow.c
@@ -257,6 +257,32 @@ gtk_application_window_update_menubar (GtkApplicationWindow *window)
}
}
+static gchar *
+gtk_application_window_get_app_desktop_name ()
+{
+ gchar *retval = NULL;
+
+#ifdef HAVE_GIO_UNIX
+ GDesktopAppInfo *app_info;
+ const gchar *app_name = NULL;
+ gchar *desktop_file;
+
+ desktop_file = g_strconcat (g_get_prgname (), ".desktop", NULL);
+ app_info = g_desktop_app_info_new (desktop_file);
+ g_free (desktop_file);
+
+ if (app_info != NULL)
+ app_name = g_app_info_get_name (G_APP_INFO (app_info));
+
+ if (app_name != NULL)
+ retval = g_strdup (app_name);
+
+ g_clear_object (&app_info);
+#endif /* HAVE_GIO_UNIX */
+
+ return retval;
+}
+
static void
gtk_application_window_update_shell_shows_app_menu (GtkApplicationWindow *window,
GtkSettings *settings)
@@ -282,33 +308,25 @@ gtk_application_window_update_shell_shows_app_menu (GtkApplicationWindow *window
if (app_menu != NULL)
{
- const gchar *name;
- GDesktopAppInfo *app_info = NULL;
+ const gchar *app_name;
+ gchar *name;
- name = g_get_application_name ();
- if (name == g_get_prgname ())
+ app_name = g_get_application_name ();
+ if (app_name != g_get_prgname ())
{
- const gchar *app_name = NULL;
-
-#ifdef HAVE_GIO_UNIX
- gchar *desktop_name;
-
- desktop_name = g_strconcat (name, ".desktop", NULL);
- app_info = g_desktop_app_info_new (desktop_name);
- if (app_info != NULL)
- app_name = g_app_info_get_name (G_APP_INFO (app_info));
-
- g_free (desktop_name);
-#endif /* HAVE_GIO_UNIX */
-
- if (app_name != NULL &&
- g_strcmp0 (app_name, name) != 0)
- name = app_name;
- else
- name = _("Application");
+ /* the app has set its application name, use it */
+ name = g_strdup (app_name);
}
+ else
+ {
+ /* get the name from .desktop file */
+ name = gtk_application_window_get_app_desktop_name ();
+ if (name == NULL)
+ name = g_strdup (_("Application"));
+ }
+
g_menu_append_submenu (window->priv->app_menu_section, name, app_menu);
- g_clear_object (&app_info);
+ g_free (name);
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]