Cleanup "keep display on" funcs
authorFaheem Pervez <trippin1@gmail.com>
Mon, 22 Mar 2010 16:52:37 +0000 (16:52 +0000)
committerFaheem Pervez <trippin1@gmail.com>
Mon, 22 Mar 2010 16:52:37 +0000 (16:52 +0000)
src/simple-brightness-applet.c

index 8dba3ee..b32268d 100644 (file)
@@ -58,7 +58,7 @@ struct _SimpleBrightnessAppletPrivate
        guint gconfnotify_id;
        guint display_keepalive_timeout;
 
        guint gconfnotify_id;
        guint display_keepalive_timeout;
 
-       gboolean dispchkbtn_active;
+       gboolean keepdispon_active;
 
        osso_context_t *osso_context;
 };
 
        osso_context_t *osso_context;
 };
@@ -66,12 +66,25 @@ struct _SimpleBrightnessAppletPrivate
 static void simple_brightness_applet_finalize (GObject *object);
 
 /* Callbacks: */
 static void simple_brightness_applet_finalize (GObject *object);
 
 /* Callbacks: */
-static gboolean simple_brightness_applet_keep_backlight_alive (SimpleBrightnessApplet *plugin)
+static inline void simple_brightness_applet_show_fail_msg (void)
 {
 {
-       g_return_val_if_fail (plugin->priv->osso_context, FALSE);
+       hildon_banner_show_information (NULL, NULL, "Failed to keep backlight on");
+}
 
 
+static gboolean simple_brightness_applet_keep_backlight_alive (SimpleBrightnessApplet *plugin)
+{
        osso_display_state_on (plugin->priv->osso_context);
        osso_display_state_on (plugin->priv->osso_context);
-       return (osso_display_blanking_pause (plugin->priv->osso_context) == OSSO_OK);
+       if (osso_display_blanking_pause (plugin->priv->osso_context) != OSSO_OK)
+       {
+               simple_brightness_applet_show_fail_msg ();
+               plugin->priv->display_keepalive_timeout = 0;
+               g_signal_handler_block (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
+               plugin->priv->keepdispon_active = FALSE;
+               hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), FALSE);
+               g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
+               return FALSE;
+       }
+       return TRUE;
 }
 
 static void simple_brightness_applet_on_gconf_value_changed (GConfClient *gconf_client G_GNUC_UNUSED, guint cnxn_id G_GNUC_UNUSED, GConfEntry *entry G_GNUC_UNUSED, SimpleBrightnessApplet *plugin)
 }
 
 static void simple_brightness_applet_on_gconf_value_changed (GConfClient *gconf_client G_GNUC_UNUSED, guint cnxn_id G_GNUC_UNUSED, GConfEntry *entry G_GNUC_UNUSED, SimpleBrightnessApplet *plugin)
@@ -98,51 +111,48 @@ static void simple_brightness_applet_on_settings_button_clicked (GtkWidget *butt
 
 static void simple_brightness_applet_on_dispchkbtn_toggled (GtkWidget *button G_GNUC_UNUSED, SimpleBrightnessApplet *plugin)
 {
 
 static void simple_brightness_applet_on_dispchkbtn_toggled (GtkWidget *button G_GNUC_UNUSED, SimpleBrightnessApplet *plugin)
 {
-       GdkPixbuf *pixbuf = NULL;
-
-       plugin->priv->dispchkbtn_active = hildon_check_button_get_active (HILDON_CHECK_BUTTON(plugin->priv->dispchkbtn));
+       GdkPixbuf *pixbuf;
 
 
+       plugin->priv->keepdispon_active = hildon_check_button_get_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn));
        g_signal_handler_block (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
        g_signal_handler_block (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
-       
        gtk_widget_hide(plugin->priv->settings_dialog);
 
        gtk_widget_hide(plugin->priv->settings_dialog);
 
-       if (plugin->priv->dispchkbtn_active)
-       {
-       simple_brightness_applet_keep_backlight_alive(plugin);
-       plugin->priv->display_keepalive_timeout = g_timeout_add_seconds(50, (GSourceFunc) simple_brightness_applet_keep_backlight_alive, plugin);
-       if (plugin->priv->display_keepalive_timeout == 0)
+       if (plugin->priv->keepdispon_active)
        {
        {
-               hildon_banner_show_information(NULL, NULL, "Failed to keep backlight on");
-               plugin->priv->dispchkbtn_active = FALSE;
-               hildon_check_button_set_active(HILDON_CHECK_BUTTON(plugin->priv->dispchkbtn), plugin->priv->dispchkbtn_active);
-               g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
-               return;
-       }
+               simple_brightness_applet_keep_backlight_alive (plugin);
+               plugin->priv->display_keepalive_timeout = g_timeout_add_seconds (50, (GSourceFunc) simple_brightness_applet_keep_backlight_alive, plugin);
+               if (plugin->priv->display_keepalive_timeout == 0)
+               {
+                       plugin->priv->keepdispon_active = FALSE;
+                       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), FALSE);
+                       simple_brightness_applet_show_fail_msg ();
+                       goto finish;
+               }
 
 
-               gtk_widget_set_name(plugin->priv->applet_button, "hildon-reject-button-finger");
-               pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default(), "general_brightness", 18, 0, NULL);
+               gtk_widget_set_name (plugin->priv->applet_button, "hildon-reject-button-finger");
+               pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), "general_brightness", 18, 0, NULL);
                if (pixbuf)
                {
                if (pixbuf)
                {
-               hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), pixbuf);
+                       hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), pixbuf);
                        g_object_unref (pixbuf);
                        g_object_unref (pixbuf);
-               pixbuf = NULL;
                }
        }
        else
        {
                }
        }
        else
        {
-       if(g_source_remove(plugin->priv->display_keepalive_timeout))
-       {
-               gtk_widget_set_name(plugin->priv->applet_button, "GtkButton-finger");
-               hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), NULL);
-               plugin->priv->display_keepalive_timeout = 0;
-       }
-       else
-       {
-               plugin->priv->dispchkbtn_active = TRUE;
-               hildon_check_button_set_active(HILDON_CHECK_BUTTON(plugin->priv->dispchkbtn), plugin->priv->dispchkbtn_active);
-       }               
+               if (g_source_remove (plugin->priv->display_keepalive_timeout))
+               {
+                       gtk_widget_set_name (plugin->priv->applet_button, "GtkButton-finger");
+                       hd_status_plugin_item_set_status_area_icon (HD_STATUS_PLUGIN_ITEM (plugin), NULL);
+                       plugin->priv->display_keepalive_timeout = 0;
+               }
+               else
+               {
+                       plugin->priv->keepdispon_active = TRUE;
+                       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), plugin->priv->keepdispon_active);
+               }
        }
 
        }
 
+finish:
        g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
        gtk_widget_destroy(plugin->priv->settings_dialog);
 }
        g_signal_handler_unblock (plugin->priv->dispchkbtn, plugin->priv->dispchkbtn_toggled_id);
        gtk_widget_destroy(plugin->priv->settings_dialog);
 }
@@ -167,7 +177,7 @@ static void simple_brightness_applet_on_button_clicked (GtkWidget *button, Simpl
        plugin->priv->dispchkbtn = hildon_check_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
        gtk_button_set_label (GTK_BUTTON (plugin->priv->dispchkbtn), "Keep display on");
        gtk_button_set_alignment (GTK_BUTTON (plugin->priv->dispchkbtn), 0.5f, 0.5f);
        plugin->priv->dispchkbtn = hildon_check_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
        gtk_button_set_label (GTK_BUTTON (plugin->priv->dispchkbtn), "Keep display on");
        gtk_button_set_alignment (GTK_BUTTON (plugin->priv->dispchkbtn), 0.5f, 0.5f);
-       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), plugin->priv->dispchkbtn_active);
+       hildon_check_button_set_active (HILDON_CHECK_BUTTON (plugin->priv->dispchkbtn), plugin->priv->keepdispon_active);
        gtk_box_pack_start (GTK_BOX (GTK_DIALOG (plugin->priv->settings_dialog)->vbox), plugin->priv->dispchkbtn, TRUE, TRUE, 0);
        plugin->priv->dispchkbtn_toggled_id = g_signal_connect (plugin->priv->dispchkbtn, "toggled", G_CALLBACK (simple_brightness_applet_on_dispchkbtn_toggled), plugin); 
 
        gtk_box_pack_start (GTK_BOX (GTK_DIALOG (plugin->priv->settings_dialog)->vbox), plugin->priv->dispchkbtn, TRUE, TRUE, 0);
        plugin->priv->dispchkbtn_toggled_id = g_signal_connect (plugin->priv->dispchkbtn, "toggled", G_CALLBACK (simple_brightness_applet_on_dispchkbtn_toggled), plugin); 
 
@@ -204,9 +214,7 @@ static void simple_brightness_applet_class_init (SimpleBrightnessAppletClass *kl
        g_type_class_add_private (klass, sizeof (SimpleBrightnessAppletPrivate));
 }
 
        g_type_class_add_private (klass, sizeof (SimpleBrightnessAppletPrivate));
 }
 
-static void simple_brightness_applet_class_finalize (SimpleBrightnessAppletClass *klass G_GNUC_UNUSED)
-{
-}
+static void simple_brightness_applet_class_finalize (SimpleBrightnessAppletClass *klass G_GNUC_UNUSED) {}
 
 static void simple_brightness_applet_init (SimpleBrightnessApplet *plugin)
 {
 
 static void simple_brightness_applet_init (SimpleBrightnessApplet *plugin)
 {
@@ -215,7 +223,7 @@ static void simple_brightness_applet_init (SimpleBrightnessApplet *plugin)
                return;
        memset (plugin->priv, 0, sizeof (SimpleBrightnessAppletPrivate));
 
                return;
        memset (plugin->priv, 0, sizeof (SimpleBrightnessAppletPrivate));
 
-       plugin->priv->dispchkbtn_active = FALSE;
+       plugin->priv->keepdispon_active = FALSE;
 
        plugin->priv->osso_context = osso_initialize (PACKAGE, PACKAGE_VERSION, TRUE, NULL);
        if (G_UNLIKELY (!plugin->priv->osso_context))
 
        plugin->priv->osso_context = osso_initialize (PACKAGE, PACKAGE_VERSION, TRUE, NULL);
        if (G_UNLIKELY (!plugin->priv->osso_context))
@@ -238,7 +246,7 @@ static void simple_brightness_applet_finalize (GObject *object)
                g_signal_handler_disconnect (plugin->priv->brightness_ctrlbar, plugin->priv->brightness_ctrlbar_valchanged_id);
 
        if (plugin->priv->display_keepalive_timeout != 0)
                g_signal_handler_disconnect (plugin->priv->brightness_ctrlbar, plugin->priv->brightness_ctrlbar_valchanged_id);
 
        if (plugin->priv->display_keepalive_timeout != 0)
-               g_source_remove(plugin->priv->display_keepalive_timeout);
+               g_source_remove (plugin->priv->display_keepalive_timeout);
 
        if (plugin->priv->gconfnotify_id != 0)
        {
 
        if (plugin->priv->gconfnotify_id != 0)
        {
@@ -253,7 +261,7 @@ static void simple_brightness_applet_finalize (GObject *object)
        }
 
        if (plugin->priv->osso_context)
        }
 
        if (plugin->priv->osso_context)
-               osso_deinitialize(plugin->priv->osso_context);
+               osso_deinitialize (plugin->priv->osso_context);
 
        G_OBJECT_CLASS (simple_brightness_applet_parent_class)->finalize (object);
 }
 
        G_OBJECT_CLASS (simple_brightness_applet_parent_class)->finalize (object);
 }