Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-application.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/ev-application.c')
-rw-r--r--shell/ev-application.c38
1 files changed, 26 insertions, 12 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 381b4e3..b7002a7 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -239,6 +239,7 @@ void
ev_application_open_uri_at_dest (EvApplication *application,
const char *uri,
EvLinkDest *dest,
+ EvWindowRunMode mode,
guint timestamp)
{
EvWindow *new_window;
@@ -263,7 +264,7 @@ ev_application_open_uri_at_dest (EvApplication *application,
/* We need to load uri before showing the window, so
we can restore window size without flickering */
- ev_window_open_uri (new_window, uri, dest);
+ ev_window_open_uri (new_window, uri, dest, mode);
gtk_widget_show (GTK_WIDGET (new_window));
@@ -274,21 +275,34 @@ ev_application_open_uri_at_dest (EvApplication *application,
gboolean
ev_application_open_uri (EvApplication *application,
const char *uri,
- const char *page_label,
+ GHashTable *args,
guint timestamp,
GError **error)
{
-
- if (page_label && strcmp (page_label, "") != 0) {
- EvLinkDest *dest;
+ EvLinkDest *dest = NULL;
+ EvWindowRunMode mode = EV_WINDOW_MODE_NORMAL;
+
+ if (args) {
+ GValue *value = NULL;
+
+ value = g_hash_table_lookup (args, "page-label");
+ if (value) {
+ const gchar *page_label;
+
+ page_label = g_value_get_string (value);
+ dest = ev_link_dest_new_page_label (page_label);
+ }
- dest = ev_link_dest_new_page_label (page_label);
+ value = g_hash_table_lookup (args, "mode");
+ if (value) {
+ mode = g_value_get_uint (value);
+ }
+ }
+
+ ev_application_open_uri_at_dest (application, uri, dest, mode, timestamp);
- ev_application_open_uri_at_dest (application, uri, dest, timestamp);
+ if (dest)
g_object_unref (dest);
- } else {
- ev_application_open_uri_at_dest (application, uri, NULL, timestamp);
- }
return TRUE;
}
@@ -346,9 +360,9 @@ ev_application_init (EvApplication *ev_application)
DATADIR "/evince-toolbar.xml");
if (!egg_toolbars_model_load_toolbars (ev_application->toolbars_model,
- ev_application->toolbars_file)) {
+ ev_application->toolbars_file)) {
egg_toolbars_model_load_toolbars (ev_application->toolbars_model,
- DATADIR"/evince-toolbar.xml");
+ DATADIR"/evince-toolbar.xml");
}
egg_toolbars_model_set_flags (ev_application->toolbars_model, 0,