From 62caa3e6eec7b6109703071179ed260aac507db7 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Thu, 13 Nov 2003 17:28:04 +0000 Subject: Rework shell services initialization so that it happen either on every 2003-11-13 Marco Pesenti Gritti * embed/mozilla/mozilla-notifiers.cpp: * src/ephy-main.c: (main): * src/ephy-shell.c: (ephy_shell_init), (ephy_shell_startup), (ephy_shell_finalize), (ephy_shell_get_session), (ephy_shell_get_extensions_manager): * src/ephy-window.c: (ensure_default_icon), (ephy_window_init): Rework shell services initialization so that it happen either on every instance, before the automation stuff is used, either when they are requested. This appear to fix the crash with two instances runned simultaneously. (Christian I'm not quite sure this is ok for plugins manager, if there are problems let me know.) --- src/ephy-window.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/ephy-window.c') diff --git a/src/ephy-window.c b/src/ephy-window.c index c93689f54..854b2d9c8 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -1450,6 +1450,40 @@ ephy_window_class_init (EphyWindowClass *klass) g_type_class_add_private (object_class, sizeof(EphyWindowPrivate)); } +static void +ensure_default_icon (void) +{ + static gboolean ephy_has_default_icon = FALSE; + GtkIconTheme *icon_theme; + GtkIconInfo *icon_info; + const char *icon_file; + + if (ephy_has_default_icon) return; + + /* FIXME listen on icon changes */ + /* FIXME MultiHead: icon theme is per-display, not global */ + icon_theme = gtk_icon_theme_get_default (); + icon_info = gtk_icon_theme_lookup_icon (icon_theme, "web-browser", -1, 0); + + if (icon_info) + { + + icon_file = gtk_icon_info_get_filename (icon_info); + if (icon_file) + { + gtk_window_set_default_icon_from_file (icon_file, NULL); + } + + gtk_icon_info_free (icon_info); + } + else + { + g_warning ("Web browser gnome icon not found"); + } + + ephy_has_default_icon = TRUE; +} + static void ephy_window_init (EphyWindow *window) { @@ -1468,6 +1502,8 @@ ephy_window_init (EphyWindow *window) window->priv->is_fullscreen = FALSE; window->priv->has_size = FALSE; + ensure_default_icon (); + /* Setup the window and connect verbs */ setup_window (window); -- cgit v1.2.3