]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Do not update visibility when changing a chrome flag so that it's possible
[evince.git] / shell / ev-window.c
index 9081b85593c7c789672c15f82552408945453b2c..c973f42810d1a61ce0f4eb46758f9e0f3c7036eb 100644 (file)
@@ -316,7 +316,7 @@ ev_window_setup_action_sensitivity (EvWindow *ev_window)
                has_properties = FALSE;
        }
 
-       if (has_document && ev_document_can_get_text (document)) {
+       if (has_document && EV_IS_SELECTION (document)) {
                can_get_text = TRUE;
        }
        
@@ -537,8 +537,6 @@ update_chrome_flag (EvWindow *window, EvChrome flag, gboolean active)
        } else {
                priv->chrome &= ~flag;
        }
-
-       update_chrome_visibility (window);
 }
 
 static void
@@ -856,6 +854,7 @@ setup_sidebar_from_metadata (EvWindow *window, EvDocument *document)
        if (ev_metadata_manager_get (uri, "sidebar_visibility", &sidebar_visibility, FALSE)) {
                update_chrome_flag (window, EV_CHROME_SIDEBAR, g_value_get_boolean (&sidebar_visibility));
                g_value_unset (&sidebar_visibility);
+               update_chrome_visibility (window);
        }
 }
 
@@ -2332,7 +2331,6 @@ ev_window_print_dialog_response_cb (GtkDialog *dialog,
        gdouble        width;
        gdouble        height;
        GtkPrintPages  print_pages;
-       EvFileExporterOrientation orientation = EV_FILE_EXPORTER_PORTRAIT;
        const gchar   *file_format;
        
        if (response == GTK_RESPONSE_CANCEL) {
@@ -2408,21 +2406,10 @@ ev_window_print_dialog_response_cb (GtkDialog *dialog,
        scale = gtk_print_settings_get_scale (window->priv->print_settings) * 0.01;
        
        width = gtk_page_setup_get_paper_width (window->priv->print_page_setup,
-                                               GTK_UNIT_PIXEL);
+                                               GTK_UNIT_POINTS);
        height = gtk_page_setup_get_paper_height (window->priv->print_page_setup,
-                                                 GTK_UNIT_PIXEL);
+                                                 GTK_UNIT_POINTS);
        
-       switch (gtk_page_setup_get_orientation (window->priv->print_page_setup)) {
-               case GTK_PAGE_ORIENTATION_PORTRAIT:
-               case GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT:
-                       orientation = EV_FILE_EXPORTER_PORTRAIT;
-                       break;
-               case GTK_PAGE_ORIENTATION_LANDSCAPE:
-               case GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE:
-                       orientation = EV_FILE_EXPORTER_LANDSCAPE;
-                       break;
-       }
-
        if (scale != 1.0) {
                width *= scale;
                height *= scale;
@@ -2437,7 +2424,6 @@ ev_window_print_dialog_response_cb (GtkDialog *dialog,
        window->priv->print_job = ev_job_print_new (window->priv->document,
                                                    file_format ? file_format : "ps",
                                                    width, height,
-                                                   orientation,
                                                    ranges, n_ranges,
                                                    page_set,
                                                    pages_per_sheet,
@@ -2691,6 +2677,7 @@ ev_window_cmd_focus_page_selector (GtkAction *act, EvWindow *window)
        
        update_chrome_flag (window, EV_CHROME_RAISE_TOOLBAR, TRUE);
        ev_window_set_action_sensitive (window, "ViewToolbar", FALSE);
+       update_chrome_visibility (window);
        
        action = gtk_action_group_get_action (window->priv->action_group,
                                              PAGE_SELECTOR_ACTION);
@@ -2781,6 +2768,7 @@ ev_window_cmd_edit_find (GtkAction *action, EvWindow *ev_window)
        } 
 
        update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE);
+       update_chrome_visibility (ev_window);
        gtk_widget_grab_focus (ev_window->priv->find_bar);
 }
 
@@ -2790,6 +2778,7 @@ ev_window_cmd_edit_find_next (GtkAction *action, EvWindow *ev_window)
         g_return_if_fail (EV_IS_WINDOW (ev_window));
 
        update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE);
+       update_chrome_visibility (ev_window);
        gtk_widget_grab_focus (ev_window->priv->find_bar);
        ev_view_find_next (EV_VIEW (ev_window->priv->view));
 }
@@ -2800,6 +2789,7 @@ ev_window_cmd_edit_find_previous (GtkAction *action, EvWindow *ev_window)
         g_return_if_fail (EV_IS_WINDOW (ev_window));
 
        update_chrome_flag (ev_window, EV_CHROME_FINDBAR, TRUE);
+       update_chrome_visibility (ev_window);
        gtk_widget_grab_focus (ev_window->priv->find_bar);
        ev_view_find_previous (EV_VIEW (ev_window->priv->view));
 }
@@ -3524,6 +3514,7 @@ ev_window_cmd_escape (GtkAction *action, EvWindow *window)
        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, FALSE);
+               update_chrome_visibility (window);
                gtk_widget_grab_focus (window->priv->view);
        } else {
                gboolean fullscreen;
@@ -3802,6 +3793,7 @@ ev_window_view_toolbar_cb (GtkAction *action, EvWindow *ev_window)
        
        active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
        update_chrome_flag (ev_window, EV_CHROME_TOOLBAR, active);
+       update_chrome_visibility (ev_window);
        ev_metadata_manager_set_boolean (NULL, "show_toolbar", active);
 }
 
@@ -3813,6 +3805,7 @@ ev_window_view_sidebar_cb (GtkAction *action, EvWindow *ev_window)
            
        update_chrome_flag (ev_window, EV_CHROME_SIDEBAR,
                            gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
+       update_chrome_visibility (ev_window);
 }
 
 static void
@@ -4015,6 +4008,7 @@ find_bar_close_cb (EggFindBar *find_bar,
                   EvWindow   *ev_window)
 {
        update_chrome_flag (ev_window, EV_CHROME_FINDBAR, FALSE);
+       update_chrome_visibility (ev_window);
 }
 
 static void
@@ -4634,6 +4628,8 @@ view_actions_focus_in_cb (GtkWidget *widget, GdkEventFocus *event, EvWindow *win
 
        ev_window_set_view_accels_sensitivity (window, TRUE);
 
+       update_chrome_visibility (window);
+
        return FALSE;
 }