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:
@ -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
|
||||
|
@ -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 \
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user