]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Updated Italian translation.
[evince.git] / shell / ev-window.c
index 256d94acffc1765d67f9b2712f3511194b9c8422..cbd504ca5eacb50c48741a266d7af7f47247695d 100644 (file)
@@ -211,8 +211,10 @@ static void     ev_window_set_page_mode                 (EvWindow         *windo
                                                         EvWindowPageMode  page_mode);
 static void    ev_window_xfer_job_cb                   (EvJobXfer        *job,
                                                         gpointer          data);
+#ifdef WITH_GTK_PRINT
 static void     ev_window_print_job_cb                  (EvJobPrint       *job,
                                                         EvWindow         *window);
+#endif
 static void     ev_window_sizing_mode_changed_cb        (EvView           *view,
                                                         GParamSpec       *pspec,
                                                         EvWindow         *ev_window);
@@ -961,7 +963,7 @@ ev_window_xfer_job_cb  (EvJobXfer *job,
                if (ev_window->priv->document)
                        g_object_unref (ev_window->priv->document);
                ev_window->priv->document = g_object_ref (document);
-               
+
                ev_window_setup_document (ev_window);
                ev_window_add_recent (ev_window, ev_window->priv->uri);         
 
@@ -1126,7 +1128,8 @@ ev_window_cmd_recent_file_activate (GtkAction     *action,
 
        uri = gtk_recent_info_get_uri (info);
        
-       ev_application_open_uri (EV_APP, uri, NULL, GDK_CURRENT_TIME, NULL);
+       ev_application_open_uri (EV_APP, uri, NULL,
+                                GDK_CURRENT_TIME, NULL);
 }
 #else
 static void
@@ -1141,7 +1144,8 @@ ev_window_cmd_recent_file_activate (GtkAction *action,
 
        uri = egg_recent_item_get_uri (item);
 
-       ev_application_open_uri (EV_APP, uri, NULL, GDK_CURRENT_TIME, NULL);
+       ev_application_open_uri (EV_APP, uri, NULL,
+                                GDK_CURRENT_TIME, NULL);
        
        g_free (uri);
 }
@@ -2365,6 +2369,24 @@ ev_window_screen_changed (GtkWidget *widget,
        EvWindowPrivate *priv = window->priv;
        GdkScreen *screen;
 
+       screen = gtk_widget_get_screen (widget);
+       if (screen == old_screen)
+               return;
+
+#ifdef HAVE_GTK_RECENT
+       if (old_screen) {
+               g_signal_handlers_disconnect_by_func (
+                       gtk_recent_manager_get_for_screen (old_screen),
+                       G_CALLBACK (ev_window_setup_recent), window);
+       }
+
+       priv->recent_manager = gtk_recent_manager_get_for_screen (screen);
+       g_signal_connect_swapped (priv->recent_manager,
+                                 "changed",
+                                 G_CALLBACK (ev_window_setup_recent),
+                                 window);
+#endif
+       
        if (GTK_WIDGET_CLASS (ev_window_parent_class)->screen_changed) {
                GTK_WIDGET_CLASS (ev_window_parent_class)->screen_changed (widget, old_screen);
        }
@@ -2373,7 +2395,6 @@ ev_window_screen_changed (GtkWidget *widget,
                g_signal_handlers_disconnect_by_func
                        (old_screen, G_CALLBACK (screen_size_changed_cb), window);
 
-               screen = gtk_widget_get_screen (widget);
                g_signal_connect_object (screen, "size-changed",
                                         G_CALLBACK (screen_size_changed_cb),
                                         window, 0);
@@ -2606,10 +2627,14 @@ ev_window_cmd_escape (GtkAction *action, EvWindow *window)
                              "presentation", &presentation,
                              NULL);
 
-               if (fullscreen)
+               if (fullscreen) {
                        ev_window_stop_fullscreen (window);
-               if (presentation)
+               } else if (presentation) {
                        ev_window_stop_presentation (window);
+                       gtk_widget_grab_focus (window->priv->view);
+               } else {
+                       gtk_widget_grab_focus (window->priv->view);
+               }
 
                if (fullscreen && presentation)
                        g_warning ("Both fullscreen and presentation set somehow");
@@ -3225,6 +3250,11 @@ ev_window_dispose (GObject *object)
                priv->view = NULL;
        }
 
+       if (priv->password_view) {
+               g_object_unref (priv->password_view);
+               priv->password_view = NULL;
+       }
+
        if (priv->xfer_job) {
                ev_window_clear_xfer_job (window);
        }
@@ -3775,7 +3805,7 @@ open_remote_link (EvWindow *window, EvLinkAction *action)
        uri = g_build_filename (dir, ev_link_action_get_filename (action),
                                NULL);
        g_free (dir);
-       
+
        ev_application_open_uri_at_dest (EV_APP, uri,
                                         ev_link_action_get_dest (action),
                                         0,
@@ -3801,6 +3831,8 @@ do_action_named (EvWindow *window, EvLinkAction *action)
                ev_window_cmd_focus_page_selector (NULL, window);
        } else if (g_ascii_strcasecmp (name, "Find") == 0) {
                ev_window_cmd_edit_find (NULL, window);
+       } else if (g_ascii_strcasecmp (name, "Close") == 0) {
+               ev_window_cmd_file_close_window (NULL, window);
        } else {
                g_warning ("Unimplemented named action: %s, please post a "
                           "bug report in Evince bugzilla "
@@ -4034,7 +4066,8 @@ ev_window_init (EvWindow *ev_window)
        }
        
 #ifdef HAVE_GTK_RECENT
-       ev_window->priv->recent_manager = gtk_recent_manager_get_default ();
+       ev_window->priv->recent_manager = gtk_recent_manager_get_for_screen (
+               gtk_widget_get_screen (GTK_WIDGET (ev_window)));
        ev_window->priv->recent_action_group = NULL;
        ev_window->priv->recent_ui_id = 0;
        g_signal_connect_swapped (ev_window->priv->recent_manager,