summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2008-01-14 12:53:42 +0100
committerBenjamin Otte <otte@gnome.org>2008-01-14 12:53:42 +0100
commitd7840716923b5367caf9fef02511161ce1c105dd (patch)
tree771610bd806ba51130fe84c0711f5e8bce8561fd
parent3303418faa1ae48a5401b799a2a4ef44c6620b77 (diff)
make sure the recent files only include files from swfdec-player
-rw-r--r--player/swfdec-window.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/player/swfdec-window.c b/player/swfdec-window.c
index c7fa72c..5b1a32e 100644
--- a/player/swfdec-window.c
+++ b/player/swfdec-window.c
@@ -78,11 +78,17 @@ swfdec_window_init (SwfdecWindow *window)
static void
swfdec_window_player_initialized (SwfdecPlayer *player, GParamSpec *pspec, SwfdecWindow *window)
{
- if (!swfdec_player_is_initialized (player))
- return;
-
- gtk_recent_manager_add_item (gtk_recent_manager_get_default (),
- swfdec_url_get_url (swfdec_loader_get_url (window->loader)));
+ static const char *mime[2] = { "swfdec-player", NULL };
+ GtkRecentData data = { NULL, NULL, (char *) "application/x-shockwave-flash",
+ (char *) g_get_application_name (), g_strjoin (" ", g_get_prgname (), "%u", NULL),
+ (char **) mime, FALSE };
+
+ if (swfdec_player_is_initialized (player)) {
+ gtk_recent_manager_add_full (gtk_recent_manager_get_default (),
+ swfdec_url_get_url (swfdec_loader_get_url (window->loader)),
+ &data);
+ }
+ g_free (data.app_exec);
}
/**
@@ -148,6 +154,16 @@ swfdec_window_error (SwfdecWindow *window, const char *msg)
window->error = TRUE;
}
+static void
+swfdec_window_add_recent_filter (GtkRecentChooser *chooser)
+{
+ GtkRecentFilter *filter;
+
+ filter = gtk_recent_filter_new ();
+ gtk_recent_filter_add_group (filter, "swfdec-player");
+ gtk_recent_chooser_set_filter (chooser, filter);
+}
+
#define BUILDER_FILE DATADIR G_DIR_SEPARATOR_S "swfdec-gnome" G_DIR_SEPARATOR_S "swfdec-player.ui"
/**
* swfdec_window_new:
@@ -172,6 +188,8 @@ swfdec_window_new (const char *url)
return window;
}
gtk_builder_connect_signals (window->builder, window);
+ swfdec_window_add_recent_filter (GTK_RECENT_CHOOSER (
+ gtk_builder_get_object (window->builder, "recent")));
window->window = GTK_WIDGET (gtk_builder_get_object (window->builder, "player-window"));
if (window->window == NULL) {
swfdec_window_error (window, _("Broken user interface definition file"));