]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
fix compilation.
[evince.git] / shell / ev-window.c
index 2ebcc1b3572ad4292677664606077f7f1ebbade4..062dc5d78d535251147bdf4d58b61f0bf575cb49 100644 (file)
@@ -40,6 +40,7 @@
 #include "ev-properties.h"
 #include "ev-document-thumbnails.h"
 #include "ev-document-links.h"
+#include "ev-document-fonts.h"
 #include "ev-document-types.h"
 #include "ev-document-find.h"
 #include "ev-document-security.h"
@@ -172,7 +173,8 @@ static void     ev_window_run_presentation              (EvWindow         *windo
 static void     ev_window_stop_presentation             (EvWindow         *window);
 static void     ev_window_cmd_view_presentation         (GtkAction        *action,
                                                         EvWindow         *window);
-
+static void     show_fullscreen_popup                   (EvWindow         *window);
+                                                       
 
 G_DEFINE_TYPE (EvWindow, ev_window, GTK_TYPE_WINDOW)
 
@@ -316,7 +318,10 @@ update_chrome_visibility (EvWindow *window)
        set_widget_visibility (priv->fullscreen_toolbar, fullscreen_toolbar);
 
        if (priv->fullscreen_popup != NULL) {
-               set_widget_visibility (priv->fullscreen_popup, fullscreen);
+               if (fullscreen)
+                       show_fullscreen_popup (window);
+               else
+                       set_widget_visibility (priv->fullscreen_popup, FALSE);
        }
 }
 
@@ -1184,11 +1189,20 @@ ev_window_cmd_file_print (GtkAction *action, EvWindow *ev_window)
 static void
 ev_window_cmd_file_properties (GtkAction *action, EvWindow *ev_window)
 {
+       EvDocument *document = ev_window->priv->document;
        EvDocumentInfo *info;
        GtkDialog *dialog;
+       GtkTreeModel *fonts;
+
+       if (EV_IS_DOCUMENT_FONTS (document)) {
+               fonts = ev_document_fonts_get_fonts_model (EV_DOCUMENT_FONTS (document));
+       } else {
+               fonts = NULL;
+       }
 
-       info = ev_document_get_info (ev_window->priv->document);
-       dialog = ev_properties_new (info);
+       info = ev_document_get_info (document);
+       dialog = ev_properties_new (info, fonts);
+       gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (ev_window));
        gtk_dialog_run (dialog);
        gtk_widget_destroy (GTK_WIDGET (dialog));
        ev_document_info_free (info);
@@ -1388,6 +1402,18 @@ fullscreen_clear_timeout (EvWindow *window)
        ev_view_show_cursor (EV_VIEW (window->priv->view));
 }
 
+
+static void
+show_fullscreen_popup (EvWindow *window)
+{
+       if (!GTK_WIDGET_VISIBLE (window->priv->fullscreen_popup)) {
+               g_object_set (window->priv->fullscreen_popup, "visible", TRUE, NULL);
+               ev_view_show_cursor (EV_VIEW (window->priv->view));
+       }
+
+       fullscreen_set_timeout (window);        
+}
+
 static gboolean
 fullscreen_motion_notify_cb (GtkWidget *widget,
                             GdkEventMotion *event,
@@ -1395,12 +1421,7 @@ fullscreen_motion_notify_cb (GtkWidget *widget,
 {
        EvWindow *window = EV_WINDOW (user_data);
 
-       if (!GTK_WIDGET_VISIBLE (window->priv->fullscreen_popup)) {
-               g_object_set (window->priv->fullscreen_popup, "visible", TRUE, NULL);
-               ev_view_show_cursor (EV_VIEW (window->priv->view));
-       }
-
-       fullscreen_set_timeout (window);
+       show_fullscreen_popup (window);
 
        return FALSE;
 }
@@ -1645,7 +1666,7 @@ ev_window_focus_in_event (GtkWidget *widget, GdkEventFocus *event)
                      NULL);
 
        if (fullscreen)
-               gtk_widget_show (priv->fullscreen_popup);
+               show_fullscreen_popup (window);
 
        return GTK_WIDGET_CLASS (ev_window_parent_class)->focus_in_event (widget, event);
 }
@@ -2327,6 +2348,10 @@ ev_window_dispose (GObject *object)
                priv->find_bar = NULL;
        }
 
+       if (window->priv->fullscreen_timeout_source) {
+               g_source_destroy (window->priv->fullscreen_timeout_source);
+               window->priv->fullscreen_timeout_source = NULL;
+       }
        destroy_fullscreen_popup (window);
 
        G_OBJECT_CLASS (ev_window_parent_class)->dispose (object);