X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-application.c;h=600880a1e6ad86dd2d8eff036493fcfcc07505da;hb=156da1afa7b81a00d6308bbf519db965db01fcf2;hp=2fc9030e7832abc309ebd2c6c0e1dd0d347b520e;hpb=be325017a224d8f293753577c031a8b5c277a97a;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index 2fc9030e..600880a1 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -469,9 +469,17 @@ on_register_uri_cb (GObject *source_object, "screen", g_variant_new_int32 (gdk_screen_get_number (data->screen))); if (data->dest) { - g_variant_builder_add (&builder, "{sv}", - "page-label", - g_variant_new_string (ev_link_dest_get_page_label (data->dest))); + const gchar *page_label = ev_link_dest_get_page_label (data->dest); + + if (page_label) { + g_variant_builder_add (&builder, "{sv}", + "page-label", + g_variant_new_string (page_label)); + } else { + g_variant_builder_add (&builder, "{sv}", + "page-index", + g_variant_new_uint32 (ev_link_dest_get_page (data->dest))); + } } if (data->search_string) { g_variant_builder_add (&builder, "{sv}", @@ -770,12 +778,14 @@ method_call_cb (GDBusConnection *connection, while (g_variant_iter_loop (iter, "{&sv}", &key, &value)) { if (strcmp (key, "display") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { display = ev_display_open_if_needed (g_variant_get_string (value, NULL)); - } else if (strcmp (key, "screen") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { + } else if (strcmp (key, "screen") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_INT32) { screen_number = g_variant_get_int32 (value); } else if (strcmp (key, "mode") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_UINT32) { - mode = g_variant_get_uint32 (value); + mode = g_variant_get_uint32 (value); } else if (strcmp (key, "page-label") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { dest = ev_link_dest_new_page_label (g_variant_get_string (value, NULL)); + } else if (strcmp (key, "page-index") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_UINT32) { + dest = ev_link_dest_new_page (g_variant_get_uint32 (value)); } else if (strcmp (key, "find-string") == 0 && g_variant_classify (value) == G_VARIANT_CLASS_STRING) { search_string = g_variant_get_string (value, NULL); }