X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=cbd504ca5eacb50c48741a266d7af7f47247695d;hb=e04f0859c6f36b77542d8c90fed6974c2ff957de;hp=256d94acffc1765d67f9b2712f3511194b9c8422;hpb=5878a6f549a67f737c1f374b7e0e054c6bde1a08;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index 256d94ac..cbd504ca 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -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,