X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=shell%2Fev-window.c;h=734846ffc8aace25c5d620be9ac8530b08e04844;hb=c40d134508973388c175eaaf42cebacc98ae9888;hp=3185e66e39dc17f943dadfd428cf54d46eb7769c;hpb=f9df2040ea8d3d5814257a45c23461eda0532f4e;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index 3185e66e..734846ff 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -366,8 +366,10 @@ update_sizing_buttons (EvWindow *window) void ev_window_open_page (EvWindow *ev_window, int page) { - if (ev_window->priv->page_cache) - ev_page_cache_set_current_page (ev_window->priv->page_cache, page); + if (ev_window->priv->page_cache) { + page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache)); + ev_page_cache_set_current_page (ev_window->priv->page_cache, page); + } } void @@ -551,10 +553,12 @@ ev_window_setup_document (EvWindow *ev_window) "notify::title", G_CALLBACK (update_window_title), ev_window, 0); - g_signal_connect_object (G_OBJECT (document), - "find_changed", - G_CALLBACK (find_changed_cb), - ev_window, 0); + if (EV_IS_DOCUMENT_FIND (document)) { + g_signal_connect_object (G_OBJECT (document), + "find_changed", + G_CALLBACK (find_changed_cb), + ev_window, 0); + } ev_window_set_page_mode (ev_window, PAGE_MODE_SINGLE_PAGE); @@ -1624,12 +1628,7 @@ ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window) g_return_if_fail (EV_IS_WINDOW (ev_window)); -#if 0 - /* FIXME: uncomment when this is written.*/ - page = ev_page_cache_get_page (ev_window->priv->page_cache); -#else - page = 1; -#endif + page = ev_page_cache_get_current_page (ev_window->priv->page_cache); uri = g_strdup (ev_window->priv->uri); ev_window_open (ev_window, uri); @@ -1659,6 +1658,19 @@ ev_window_cmd_leave_fullscreen (GtkAction *action, EvWindow *window) gtk_window_unfullscreen (GTK_WINDOW (window)); } +static void +ev_window_cmd_escape (GtkAction *action, EvWindow *window) +{ + GtkWidget *widget; + + widget = gtk_window_get_focus (GTK_WINDOW (window)); + if (widget && gtk_widget_get_ancestor (widget, EGG_TYPE_FIND_BAR)) { + update_chrome_flag (window, EV_CHROME_FINDBAR, NULL, FALSE); + } else { + gtk_window_unfullscreen (GTK_WINDOW (window)); + } +} + static void update_view_size (EvWindow *window) { @@ -2153,9 +2165,12 @@ static GtkActionEntry entries[] = { G_CALLBACK (ev_window_cmd_help_about) }, /* Toolbar-only */ - { "LeaveFullscreen", EV_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), "Escape", + { "LeaveFullscreen", EV_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), NULL, N_("Leave fullscreen mode"), - G_CALLBACK (ev_window_cmd_leave_fullscreen) } + G_CALLBACK (ev_window_cmd_leave_fullscreen) }, + + { "Escape", NULL, N_("Selection Caret"), "Escape", "", + G_CALLBACK (ev_window_cmd_escape) } }; /* Toggle items */