]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-application.c
Updated Greek translation by Papadeas Pierros
[evince.git] / shell / ev-application.c
index eda6d0c45a5e09eb94e5da24011148e22cdcd76e..e852561f3009de2b4c202d9d3e1812a0367c7f9c 100644 (file)
@@ -27,6 +27,7 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
+#include <gdk/gdkx.h>
 
 #include "totem-scrsaver.h"
 #include "eggsmclient.h"
@@ -449,11 +450,16 @@ ev_application_open_window (EvApplication  *application,
                gtk_window_set_screen (GTK_WINDOW (new_window), screen);
        }
        ev_application_add_icon_path_for_screen (screen);
+
+       if (!GTK_WIDGET_REALIZED (new_window))
+               gtk_widget_realize (new_window);
        
-       gtk_widget_show (new_window);
+       if (timestamp <= 0)
+               timestamp = gdk_x11_get_server_time (GTK_WIDGET (new_window)->window);
+       gdk_x11_window_set_user_time (GTK_WIDGET (new_window)->window, timestamp);
        
-       gtk_window_present_with_time (GTK_WINDOW (new_window),
-                                     timestamp);
+       gtk_window_present (GTK_WINDOW (new_window));
+
        return TRUE;
 }
 
@@ -533,7 +539,7 @@ ev_application_add_icon_path_for_screen (GdkScreen *screen)
 {
        GtkIconTheme *icon_theme;
 
-       icon_theme = gtk_icon_theme_get_for_screen (screen);
+       icon_theme = screen ? gtk_icon_theme_get_for_screen (screen) : gtk_icon_theme_get_default ();
        if (icon_theme) {
                gchar **path = NULL;
                gint    n_paths;
@@ -604,12 +610,16 @@ ev_application_open_uri_at_dest (EvApplication  *application,
        ev_window_open_uri (new_window, uri, dest, mode, search_string, 
                            unlink_temp_file, print_settings);
 
+       if (!GTK_WIDGET_REALIZED (GTK_WIDGET (new_window)))
+               gtk_widget_realize (GTK_WIDGET (new_window));
+
+       if (timestamp <= 0)
+               timestamp = gdk_x11_get_server_time (GTK_WIDGET (new_window)->window);
+       gdk_x11_window_set_user_time (GTK_WIDGET (new_window)->window, timestamp);
+
        ev_document_fc_mutex_lock ();
-       gtk_widget_show (GTK_WIDGET (new_window));
+       gtk_window_present (GTK_WINDOW (new_window));
        ev_document_fc_mutex_unlock ();
-
-       gtk_window_present_with_time (GTK_WINDOW (new_window),
-                                     timestamp);
 }
 
 /**
@@ -712,6 +722,13 @@ ev_application_shutdown (EvApplication *application)
                application->print_settings = NULL;
        }
 #endif /* GTK 2.11.0 */
+
+#ifdef ENABLE_DBUS
+       if (application->keys) {
+               g_object_unref (application->keys);
+               application->keys = NULL;
+       }
+#endif /* ENABLE_DBUS */
        
        g_free (application->last_chooser_uri);
        g_object_unref (application);
@@ -815,13 +832,11 @@ ev_application_get_windows (EvApplication *application)
  *
  * Returns: A #EvMediaPlayerKeys.
  */
-GObject
-*ev_application_get_media_keys (EvApplication *application)
+GObject *
+ev_application_get_media_keys (EvApplication *application)
 {
 #ifdef ENABLE_DBUS
-       if (!application->keys)
-               return NULL;
-       return g_object_ref (G_OBJECT (application->keys));
+       return G_OBJECT (application->keys);
 #else
        return NULL;
 #endif /* ENABLE_DBUS */