diff options
-rw-r--r-- | shell/ChangeLog | 16 | ||||
-rw-r--r-- | shell/Makefile.am | 2 | ||||
-rw-r--r-- | shell/e-shell-window.c | 10 | ||||
-rw-r--r-- | shell/e-shell-window.h | 1 | ||||
-rw-r--r-- | shell/e-shell.c | 23 |
5 files changed, 51 insertions, 1 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index ce8ff8dfce..0480780d3b 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,5 +1,21 @@ 2003-11-19 Ettore Perazzoli <ettore@ximian.com> + * e-shell-window.c (impl_dispose): Destroy the tooltips instead of + unreffing them. + + * e-shell.c (struct _EShellPrivate): New member activity_handler. + (setup_activity_interface): New. + (impl_dispose): Add a comment about why we must not unref + activity_handler here. + (create_window): Attach the task bar to the new window. + + * e-shell-window.c (e_shell_window_peek_task_bar): New. + + * e-activity-handler.c: Add back. + * e-activity-handler.h: Add back. + +2003-11-19 Ettore Perazzoli <ettore@ximian.com> + * e-shell-window.c (struct _EShellWindowPrivate): New members status_bar, offline_toggle, offline_toggle_image, menu_hint_label, task_bar, tooltips. diff --git a/shell/Makefile.am b/shell/Makefile.am index 729b1d2544..fcf102bac0 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -155,6 +155,8 @@ libeshell_la_LIBADD = \ evolution_SOURCES = \ $(SELECT_NAMES_IDL_GENERATED) \ $(DATASERVER_IDL_GENERATED) \ + e-activity-handler.c \ + e-activity-handler.h \ e-component-registry.c \ e-component-registry.h \ e-config-upgrade.c \ diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c index d2845fe8c3..cde68a42e6 100644 --- a/shell/e-shell-window.c +++ b/shell/e-shell-window.c @@ -598,7 +598,7 @@ impl_dispose (GObject *object) } if (priv->tooltips != NULL) { - g_object_unref (priv->tooltips); + gtk_object_destroy (priv->tooltips); priv->tooltips = NULL; } @@ -782,6 +782,14 @@ e_shell_window_peek_bonobo_ui_component (EShellWindow *window) return window->priv->ui_component; } +GtkWidget * +e_shell_window_peek_task_bar (EShellWindow *window) +{ + g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); + + return window->priv->task_bar; +} + void e_shell_window_save_defaults (EShellWindow *window) { diff --git a/shell/e-shell-window.h b/shell/e-shell-window.h index 01c231c329..f7431d5a68 100644 --- a/shell/e-shell-window.h +++ b/shell/e-shell-window.h @@ -64,6 +64,7 @@ const char *e_shell_window_peek_current_component_id (EShellWindow *shell); EShell *e_shell_window_peek_shell (EShellWindow *window); BonoboUIComponent *e_shell_window_peek_bonobo_ui_component (EShellWindow *window); +GtkWidget *e_shell_window_peek_task_bar (EShellWindow *window); void e_shell_window_save_defaults (EShellWindow *window); void e_shell_window_show_settings (EShellWindow *window); diff --git a/shell/e-shell.c b/shell/e-shell.c index c6b2f782e3..84c4ddad85 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -28,6 +28,7 @@ #include "e-util/e-dialog-utils.h" +#include "e-activity-handler.h" #include "e-setup.h" #include "e-shell-constants.h" #include "e-shell-settings-dialog.h" @@ -89,6 +90,9 @@ struct _EShellPrivate { /* Settings Dialog */ GtkWidget *settings_dialog; + + /* The handler for the ::Activity interface. */ + EActivityHandler *activity_handler; /* <aggregate> */ /* Whether the shell is succesfully initialized. This is needed during the start-up sequence, to avoid CORBA calls to do make wrong things @@ -135,6 +139,18 @@ get_config_start_offline (void) return value; } +/* Set up the ::Activity interface. */ +static void +setup_activity_interface (EShell *shell) +{ + EActivityHandler *activity_handler; + + activity_handler = e_activity_handler_new (); + + bonobo_object_add_interface (BONOBO_OBJECT (shell), BONOBO_OBJECT (activity_handler)); + shell->priv->activity_handler = activity_handler; +} + /* Interactivity handling. */ @@ -333,6 +349,8 @@ create_window (EShell *shell, g_signal_connect (window, "delete_event", G_CALLBACK (window_delete_event_cb), shell); g_object_weak_ref (G_OBJECT (window), window_weak_notify, shell); + e_activity_handler_attach_task_bar (priv->activity_handler, E_TASK_BAR (e_shell_window_peek_task_bar (window))); + shell->priv->windows = g_list_prepend (shell->priv->windows, window); g_signal_emit (shell, signals[NEW_WINDOW_CREATED], 0, window); @@ -389,6 +407,9 @@ impl_dispose (GObject *object) priv->settings_dialog = NULL; } + /* No unreffing for this as it is aggregate. */ + /* bonobo_object_unref (BONOBO_OBJECT (priv->activity_handler)); */ + (* G_OBJECT_CLASS (parent_class)->dispose) (object); } @@ -473,6 +494,8 @@ e_shell_init (EShell *shell) priv->user_creatable_items_handler = e_user_creatable_items_handler_new (priv->component_registry); shell->priv = priv; + + setup_activity_interface (shell); } |