X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-application.c;h=e852561f3009de2b4c202d9d3e1812a0367c7f9c;hb=f675370b1c2f1e29dfb3a3b97eda5d46f6a4a4ae;hp=eda6d0c45a5e09eb94e5da24011148e22cdcd76e;hpb=83a7a11ba109b8aee5cdc047dec8b93967ccfc0e;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index eda6d0c4..e852561f 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -27,6 +27,7 @@ #include #include #include +#include #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 */