X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fgtk%2Fmodest-shell-window.c;h=8c693582f96369c09e4987e3a653d7dd5f3988ba;hb=b91b667690a0ba256baf4c68965f4f8a86e7ee80;hp=3148611ffa2d84790f18755153a8463393cbead2;hpb=ef28b90b936551c3c8428ba8a574677d635345c7;p=modest diff --git a/src/gtk/modest-shell-window.c b/src/gtk/modest-shell-window.c index 3148611..8c69358 100644 --- a/src/gtk/modest-shell-window.c +++ b/src/gtk/modest-shell-window.c @@ -41,12 +41,11 @@ static void modest_shell_window_class_init (gpointer klass, gpointer class_data); static void modest_shell_window_instance_init (GTypeInstance *instance, gpointer g_class); static void modest_shell_window_dispose (GObject *obj); +static void modest_shell_window_finalize (GObject *obj); static gboolean on_zoom_minus_plus_not_implemented (ModestWindow *window); static void modest_shell_window_show_progress (ModestWindow *window, gboolean show); -static void setup_menu (ModestShellWindow *self); - static void modest_shell_window_show_toolbar (ModestWindow *self, gboolean show_toolbar); static void modest_shell_window_add_toolbar (ModestWindow *self, @@ -70,6 +69,7 @@ struct _ModestShellWindowPrivate { GtkAccelGroup *accel_group; GtkWidget *menu; + gchar *title; }; #define MODEST_SHELL_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \ @@ -80,7 +80,7 @@ struct _ModestShellWindowPrivate { static GtkWindowClass *parent_class = NULL; /* uncomment the following if you have defined any signals */ -static guint signals[LAST_SIGNAL] = {0}; +/* static guint signals[LAST_SIGNAL] = {0}; */ /************************************************************************/ @@ -114,10 +114,10 @@ modest_shell_window_class_init (gpointer klass, gpointer class_data) GObjectClass *gobject_class; gobject_class = (GObjectClass*) klass; ModestWindowClass *modest_window_class = (ModestWindowClass *) klass; - HildonWindowClass *hildon_window_class = (HildonWindowClass *) klass; parent_class = g_type_class_peek_parent (klass); gobject_class->dispose = modest_shell_window_dispose; + gobject_class->finalize = modest_shell_window_finalize; g_type_class_add_private (gobject_class, sizeof(ModestShellWindowPrivate)); @@ -153,6 +153,19 @@ modest_shell_window_dispose (GObject *obj) } static void +modest_shell_window_finalize (GObject *obj) +{ + ModestShellWindowPrivate *priv; + + priv = MODEST_SHELL_WINDOW_GET_PRIVATE(obj); + + if (priv->title) + g_free (priv->title); + + G_OBJECT_CLASS(parent_class)->finalize (obj); +} + +static void modest_shell_window_instance_init (GTypeInstance *instance, gpointer g_class) { ModestShellWindow *self = NULL; @@ -163,6 +176,8 @@ modest_shell_window_instance_init (GTypeInstance *instance, gpointer g_class) parent_priv = MODEST_WINDOW_GET_PRIVATE (self); priv = MODEST_SHELL_WINDOW_GET_PRIVATE (self); + priv->title = NULL; + priv->accel_group = gtk_accel_group_new (); priv->app_menu_dimming_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_MENU, FALSE); @@ -194,7 +209,6 @@ modest_shell_window_add_item_to_menu (ModestWindow *self, ModestDimmingCallback dimming_callback) { ModestShellWindowPrivate *priv; - GtkWidget *menu; g_return_if_fail (MODEST_IS_SHELL_WINDOW(self)); g_return_if_fail (GTK_IS_BUTTON (button)); @@ -226,7 +240,6 @@ modest_shell_window_add_to_menu (ModestWindow *self, { ModestShellWindowPrivate *priv = NULL; GtkWidget *menu_item; - GtkWidget *menu; g_return_if_fail (MODEST_IS_SHELL_WINDOW(self)); g_return_if_fail (label && label[0] != '\0'); @@ -235,7 +248,7 @@ modest_shell_window_add_to_menu (ModestWindow *self, priv = MODEST_SHELL_WINDOW_GET_PRIVATE (self); menu_item = gtk_menu_item_new_with_label (label); - g_signal_connect_after (G_OBJECT (button), "activate-item", + g_signal_connect_after (G_OBJECT (menu_item), "activate-item", G_CALLBACK (callback), (gpointer) self); if (accelerator != NULL) { @@ -248,7 +261,7 @@ modest_shell_window_add_to_menu (ModestWindow *self, } if (priv->menu) { - gtk_menu_shell_append (GTK_MENU (priv->menu), menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu), menu_item); } else { gtk_widget_destroy (menu_item); } @@ -264,9 +277,9 @@ modest_shell_window_show_toolbar (ModestWindow *self, static void modest_shell_window_add_toolbar (ModestWindow *self, - GtkToolbar *toolbar) + GtkToolbar *toolbar) { - gtk_box_pack_end (GTK_BOX (self), toolbar, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (self), GTK_WIDGET (toolbar), FALSE, FALSE, 0); } static void @@ -276,15 +289,23 @@ modest_shell_window_set_title (ModestWindow *self, ModestShellWindowPrivate *priv = NULL; priv = MODEST_SHELL_WINDOW_GET_PRIVATE (self); - modest_shell_set_title (MODEST_SHELL (priv->shell), - MODEST_WINDOW (self), - title); + if (priv->title) + g_free (priv->title); + priv->title = g_strdup (title); + if (priv->shell) { + modest_shell_set_title (MODEST_SHELL (priv->shell), + MODEST_WINDOW (self), + title); + } } static void modest_shell_window_show_progress (ModestWindow *self, gboolean show) { + ModestShellWindowPrivate *priv = NULL; + + priv = MODEST_SHELL_WINDOW_GET_PRIVATE (self); modest_shell_show_progress (MODEST_SHELL (priv->shell), self, show); @@ -304,6 +325,9 @@ modest_shell_window_set_shell (ModestShellWindow *self, } priv->shell = g_object_ref (shell); + modest_shell_set_title (MODEST_SHELL (priv->shell), + MODEST_WINDOW (self), + priv->title); } GtkWidget *