X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=fc8cc8dc2ba3838002b529af113903e9fbc0517a;hb=0be3be0d4166be324d628802772e99cacd336f11;hp=ed64145dcb807af3087e63028d9236390aeb196f;hpb=3e53caa56a48a1b854588e9a53c863ef7071f58e;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index ed64145d..fc8cc8dc 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -2624,13 +2624,13 @@ ev_window_cmd_focus_page_selector (GtkAction *act, EvWindow *window) static void ev_window_cmd_scroll_forward (GtkAction *action, EvWindow *window) { - ev_view_scroll (EV_VIEW (window->priv->view), EV_SCROLL_PAGE_FORWARD, FALSE); + ev_view_scroll (EV_VIEW (window->priv->view), GTK_SCROLL_PAGE_FORWARD, FALSE); } static void ev_window_cmd_scroll_backward (GtkAction *action, EvWindow *window) { - ev_view_scroll (EV_VIEW (window->priv->view), EV_SCROLL_PAGE_BACKWARD, FALSE); + ev_view_scroll (EV_VIEW (window->priv->view), GTK_SCROLL_PAGE_BACKWARD, FALSE); } static void @@ -4143,7 +4143,9 @@ find_bar_visibility_changed_cb (EggFindBar *find_bar, } static void -find_bar_scroll(EggFindBar *find_bar, GtkScrollType scroll, EvWindow* ev_window) +find_bar_scroll (EggFindBar *find_bar, + GtkScrollType scroll, + EvWindow *ev_window) { ev_view_scroll (EV_VIEW (ev_window->priv->view), scroll, FALSE); } @@ -4882,25 +4884,34 @@ static void launch_external_uri (EvWindow *window, EvLinkAction *action) { const gchar *uri = ev_link_action_get_uri (action); + GAppLaunchContext *context = NULL; GError *error = NULL; gboolean ret; + +#if GTK_CHECK_VERSION (2, 14, 0) + context = G_APP_LAUNCH_CONTEXT (gdk_app_launch_context_new ()); + gdk_app_launch_context_set_screen (GDK_APP_LAUNCH_CONTEXT (context), + gtk_window_get_screen (GTK_WINDOW (window))); + gdk_app_launch_context_set_timestamp (GDK_APP_LAUNCH_CONTEXT (context), + GDK_CURRENT_TIME); +#endif + + if (!g_strstr_len (uri, strlen (uri), "://")) { + gchar *http; + + /* Not a valid uri, assuming it's http */ + http = g_strdup_printf ("http://%s", uri); + ret = g_app_info_launch_default_for_uri (http, NULL, &error); + g_free (http); + } else { + ret = g_app_info_launch_default_for_uri (uri, NULL, &error); + } - ret = g_app_info_launch_default_for_uri (uri, NULL, &error); if (ret == FALSE) { - GtkWidget *dialog; - - dialog = gtk_message_dialog_new (GTK_WINDOW (window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - _("Unable to open external link")); - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), - error->message, uri); - g_signal_connect (dialog, "response", - G_CALLBACK (gtk_widget_destroy), - NULL); - gtk_widget_show (dialog); - g_error_free(error); + ev_window_error_message (GTK_WINDOW (window), + _("Unable to open external link"), + error); + g_error_free (error); } } @@ -5063,7 +5074,7 @@ image_save_dialog_response_cb (GtkWidget *fc, } extensions = gdk_pixbuf_format_get_extensions (format); - if (g_str_has_suffix(uri, extensions[0])) { + if (!g_str_has_suffix (uri, extensions[0])) { gchar *uri_extension; uri_extension = g_strconcat (uri, ".", extensions[0], NULL); @@ -5072,7 +5083,7 @@ image_save_dialog_response_cb (GtkWidget *fc, } else { target_file = g_file_new_for_uri (uri); } - g_strfreev(extensions); + g_strfreev (extensions); g_free (uri); is_native = g_file_is_native (target_file);