]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
only call ev_properties_fonts_set_document() if the document implements
[evince.git] / shell / ev-window.c
index 72b7a38ce536fb5d76eb1fe546b1c088366c1203..854079b573e0888cfbb9a4c2929daeafce1adf06 100644 (file)
@@ -37,7 +37,8 @@
 #include "ev-password.h"
 #include "ev-password-view.h"
 #include "ev-print-job.h"
-#include "ev-properties.h"
+#include "ev-properties-dialog.h"
+#include "ev-ps-exporter.h"
 #include "ev-document-thumbnails.h"
 #include "ev-document-links.h"
 #include "ev-document-fonts.h"
@@ -107,7 +108,7 @@ struct _EvWindowPrivate {
        GtkWidget *sidebar_thumbs;
 
        /* Dialogs */
-       EvProperties *properties;
+       GtkWidget *properties;
 
        /* UI Builders */
        GtkActionGroup *action_group;
@@ -237,6 +238,9 @@ update_action_sensitivity (EvWindow *ev_window)
                ok_to_copy = (info->permissions & EV_DOCUMENT_PERMISSIONS_OK_TO_COPY);
        }
 
+       if (has_document && !EV_IS_PS_EXPORTER(document))
+               ok_to_print = FALSE;
+
        if (!info || info->fields_mask == 0) {
                has_properties = FALSE;
        }
@@ -668,8 +672,8 @@ ev_window_setup_document (EvWindow *ev_window)
        update_document_mode (ev_window, info->mode);
 
        if (ev_window->priv->properties) {
-               ev_properties_set_document (ev_window->priv->properties,
-                                           ev_window->priv->document);
+               ev_properties_dialog_set_document (EV_PROPERTIES_DIALOG (ev_window->priv->properties),
+                                                  ev_window->priv->document);
        }
 }
 
@@ -1319,14 +1323,16 @@ static void
 ev_window_cmd_file_properties (GtkAction *action, EvWindow *ev_window)
 {
        if (ev_window->priv->properties == NULL) {
-               ev_window->priv->properties = ev_properties_new ();
-               ev_properties_set_document (ev_window->priv->properties,
-                                           ev_window->priv->document);
+               ev_window->priv->properties = ev_properties_dialog_new ();
+               ev_properties_dialog_set_document (EV_PROPERTIES_DIALOG (ev_window->priv->properties),
+                                                  ev_window->priv->document);
                g_object_add_weak_pointer (G_OBJECT (ev_window->priv->properties),
                                           (gpointer *) &(ev_window->priv->properties));
+               gtk_window_set_transient_for (GTK_WINDOW (ev_window->priv->properties),
+                                             GTK_WINDOW (ev_window));
        }
 
-       ev_properties_show (ev_window->priv->properties, GTK_WIDGET (ev_window));
+       gtk_widget_show (ev_window->priv->properties);
 }
                                        
 static void