X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-dimming-rule.c;h=45951645973b6750ed96a0fabf5ce04248bae5bc;hp=7e5595acc6eedd806ac64671e85e21f91dc493de;hb=12a672c559d983c4e49a7e4054ee14c0177ecb1c;hpb=3203a47d3fe365f9653a66bbe2d1d97bcad1188b diff --git a/src/modest-dimming-rule.c b/src/modest-dimming-rule.c index 7e5595a..4595164 100644 --- a/src/modest-dimming-rule.c +++ b/src/modest-dimming-rule.c @@ -28,10 +28,12 @@ */ #include "modest-dimming-rule.h" +#include "modest-ui-dimming-manager.h" static void modest_dimming_rule_class_init (ModestDimmingRuleClass *klass); static void modest_dimming_rule_init (ModestDimmingRule *obj); static void modest_dimming_rule_finalize (GObject *obj); +static void modest_dimming_rule_dispose (GObject *obj); typedef struct _ModestDimmingRulePrivate ModestDimmingRulePrivate; struct _ModestDimmingRulePrivate { @@ -82,6 +84,7 @@ modest_dimming_rule_class_init (ModestDimmingRuleClass *klass) parent_class = g_type_class_peek_parent (klass); gobject_class->finalize = modest_dimming_rule_finalize; + gobject_class->dispose = modest_dimming_rule_dispose; g_type_class_add_private (gobject_class, sizeof(ModestDimmingRulePrivate)); } @@ -117,6 +120,21 @@ modest_dimming_rule_finalize (GObject *obj) G_OBJECT_CLASS(parent_class)->finalize (obj); } +static void +modest_dimming_rule_dispose (GObject *obj) +{ + ModestDimmingRulePrivate *priv; + + priv = MODEST_DIMMING_RULE_GET_PRIVATE(obj); + + if (priv->group != NULL) { + g_object_unref (priv->group); + priv->group = NULL; + } + + G_OBJECT_CLASS(parent_class)->dispose (obj); +} + ModestDimmingRule* modest_dimming_rule_new(ModestWindow *win, @@ -187,22 +205,22 @@ modest_dimming_rule_process (ModestDimmingRule *self) else g_printerr ("modest: action path '%s' has not associatd action\n", priv->action_path); } else if (priv->widget != NULL) { -#ifdef MODEST_TOOLKIT_HILDON2 - if (GTK_IS_TOOL_ITEM (priv->widget)) { + ModestUIDimmingMode mode; + + mode = modest_ui_dimming_manager_get_widget_dimming_mode (priv->widget); + switch (mode) { + case MODEST_UI_DIMMING_MODE_HIDE: + if (dimmed) { + gtk_widget_hide (GTK_WIDGET (priv->widget)); + } else { + gtk_widget_show (GTK_WIDGET (priv->widget)); + } + break; + case MODEST_UI_DIMMING_MODE_DIM: + default: gtk_widget_set_sensitive (priv->widget, !dimmed); - } else { -/* if (gtk_widget_get_ancestor (priv->widget, HILDON_TYPE_APP_MENU)) { */ -/* if (dimmed) */ -/* gtk_widget_hide (priv->widget); */ -/* else */ -/* gtk_widget_show (priv->widget); */ -/* } else { */ - gtk_widget_set_sensitive (priv->widget, !dimmed); -/* } */ + break; } -#else - gtk_widget_set_sensitive (priv->widget, !dimmed); -#endif } }