summaryrefslogtreecommitdiffstats
path: root/launcher-desktop-files.patch
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@fedoraproject.org>2007-09-06 16:59:35 +0000
committerMatthias Clasen <mclasen@fedoraproject.org>2007-09-06 16:59:35 +0000
commitadb8fd2f3b45ea9be616686229df78dc936509f6 (patch)
treeb2bd556f6e351efa232d919a633f56ad033e0669 /launcher-desktop-files.patch
parentb6b876425a293962a99f64cfea524752adff1c7b (diff)
downloadgnome-panel-adb8fd2f3b45ea9be616686229df78dc936509f6.tar.gz
gnome-panel-adb8fd2f3b45ea9be616686229df78dc936509f6.tar.xz
gnome-panel-adb8fd2f3b45ea9be616686229df78dc936509f6.zip
Diffstat (limited to 'launcher-desktop-files.patch')
-rw-r--r--launcher-desktop-files.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/launcher-desktop-files.patch b/launcher-desktop-files.patch
new file mode 100644
index 0000000..4d1d92a
--- /dev/null
+++ b/launcher-desktop-files.patch
@@ -0,0 +1,71 @@
+diff -up gnome-panel-2.19.6/gnome-panel/panel-ditem-editor.c.launcher-desktop-file gnome-panel-2.19.6/gnome-panel/panel-ditem-editor.c
+--- gnome-panel-2.19.6/gnome-panel/panel-ditem-editor.c.launcher-desktop-file 2007-08-28 00:20:51.000000000 -0400
++++ gnome-panel-2.19.6/gnome-panel/panel-ditem-editor.c 2007-08-28 00:20:57.000000000 -0400
+@@ -973,6 +973,42 @@ panel_ditem_editor_icon_changed (PanelDI
+ g_free (file);
+ }
+
++static gboolean
++update_editor_from_desktop_file (PanelDItemEditor *dialog,
++ const gchar *uri)
++{
++ GKeyFile *key_file;
++ char *name;
++ char *comment;
++ char *exec;
++ char *icon;
++
++ key_file = g_key_file_new ();
++ if (g_key_file_load_from_file (key_file, uri, 0, NULL)) {
++ if (panel_util_key_file_get_boolean (key_file, "Terminal", FALSE))
++ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->type_combo), 1);
++ else
++ gtk_combo_box_set_active (GTK_COMBO_BOX (dialog->priv->type_combo), 0);
++
++ name = panel_util_key_file_get_locale_string (key_file, "Name");
++ comment = panel_util_key_file_get_locale_string (key_file, "Comment");
++ icon = panel_util_key_file_get_locale_string (key_file, "Icon");
++ exec = panel_util_key_file_get_string (key_file, "Exec");
++
++ gtk_entry_set_text (GTK_ENTRY (dialog->priv->name_entry), name ? name : "");
++ gtk_entry_set_text (GTK_ENTRY (dialog->priv->comment_entry), comment ? comment : "");
++ gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), exec ? exec : "");
++ /* Note: we need to set the icon last, since the editor
++ * tries to guess the icon when the command is modified
++ */
++ setup_icon_entry (dialog, icon);
++
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
+ static void
+ command_browse_chooser_response (GtkFileChooser *chooser,
+ gint response_id,
+@@ -986,7 +1022,11 @@ command_browse_chooser_response (GtkFile
+ case PANEL_DITEM_EDITOR_TYPE_APPLICATION:
+ case PANEL_DITEM_EDITOR_TYPE_TERMINAL_APPLICATION:
+ text = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
+- uri = panel_util_make_exec_uri_for_desktop (text);
++ if (g_str_has_suffix (text, ".desktop") &&
++ update_editor_from_desktop_file (dialog, text))
++ uri = NULL;
++ else
++ uri = panel_util_make_exec_uri_for_desktop (text);
+ g_free (text);
+ break;
+ case PANEL_DITEM_EDITOR_TYPE_LINK:
+@@ -996,8 +1036,9 @@ command_browse_chooser_response (GtkFile
+ g_assert_not_reached ();
+ }
+
+- gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry),
+- uri);
++ if (uri)
++ gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry),
++ uri);
+ g_free (uri);
+ }
+