X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=37148318272a51244faacdac5737b2835550edf0;hb=d098f8e9bc72fb6406b75776c875d486be928e72;hp=d7565fffe46562bd568a290b07c6d5765f2a8302;hpb=383143ff3eae8e057fbe9cd4837e03ab3ea43bce;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index d7565fff..37148318 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -853,6 +853,14 @@ view_handle_link_cb (EvView *view, EvLink *link, EvWindow *window) ev_window_add_history (window, current_page, NULL); } +static void +view_selection_changed_cb (EvView *view, + EvWindow *window) +{ + ev_window_set_action_sensitive (window, "EditCopy", + ev_view_get_has_selection (view)); +} + static void ev_window_page_changed_cb (EvWindow *ev_window, gint old_page, @@ -3577,6 +3585,12 @@ ev_window_update_presentation_action (EvWindow *window) (action, G_CALLBACK (ev_window_cmd_view_presentation), window); } +static void +ev_window_view_presentation_finished (EvWindow *window) +{ + ev_window_stop_presentation (window, TRUE); +} + static void ev_window_run_presentation (EvWindow *window) { @@ -3596,6 +3610,9 @@ ev_window_run_presentation (EvWindow *window) rotation = ev_document_model_get_rotation (window->priv->model); window->priv->presentation_view = ev_view_presentation_new (window->priv->document, current_page, rotation); + g_signal_connect_swapped (window->priv->presentation_view, "finished", + G_CALLBACK (ev_window_view_presentation_finished), + window); gtk_box_pack_start (GTK_BOX (window->priv->main_box), window->priv->presentation_view, @@ -4143,12 +4160,6 @@ ev_window_inverted_colors_changed_cb (EvDocumentModel *model, ev_window_refresh_window_thumbnail (window); } -static void -ev_window_has_selection_changed_cb (EvView *view, GParamSpec *pspec, EvWindow *window) -{ - ev_window_update_actions (window); -} - static void ev_window_dual_mode_changed_cb (EvDocumentModel *model, GParamSpec *pspec, @@ -6278,10 +6289,12 @@ ev_window_init (EvWindow *ev_window) g_signal_connect_object (ev_window->priv->view, "handle-link", G_CALLBACK (view_handle_link_cb), ev_window, 0); - g_signal_connect_object (ev_window->priv->view, - "popup", + g_signal_connect_object (ev_window->priv->view, "popup", G_CALLBACK (view_menu_popup_cb), ev_window, 0); + g_signal_connect_object (ev_window->priv->view, "selection-changed", + G_CALLBACK (view_selection_changed_cb), + ev_window, 0); gtk_widget_show (ev_window->priv->view); gtk_widget_show (ev_window->priv->password_view); @@ -6327,16 +6340,10 @@ ev_window_init (EvWindow *ev_window) "notify::dual-page", G_CALLBACK (ev_window_dual_mode_changed_cb), ev_window); - - /* Connect to view signals */ g_signal_connect (ev_window->priv->model, "notify::inverted-colors", G_CALLBACK (ev_window_inverted_colors_changed_cb), ev_window); - g_signal_connect (ev_window->priv->view, - "notify::has-selection", - G_CALLBACK (ev_window_has_selection_changed_cb), - ev_window); /* Connect sidebar signals */ g_signal_connect (ev_window->priv->sidebar,