Destroy the tooltips instead of unreffing them.

* 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.

svn path=/trunk/; revision=23439
This commit is contained in:
Ettore Perazzoli
2003-11-19 09:43:17 +00:00
parent 8ca3936a98
commit 1003ebf619
5 changed files with 51 additions and 1 deletions

View File

@ -1,3 +1,19 @@
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

View File

@ -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 \

View File

@ -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)
{

View File

@ -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);

View File

@ -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);
}