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);
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);
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
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);
}
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);
}
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);
"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");
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);
}
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,
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 "
}
#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,