commit b40f2c2eb2611b5018eb1f5f61fa6a9a3217a118
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Wed Jul 20 22:51:28 2011 +0100

    Cover art display fixes for colors and updating
    
    * cover_display_preferences.c
     * display_coverart has transitioned to GdkRGBA while the preference dialog
       has not, producing some odd colours for the foreground text colour.
    
    * display_coverart.c
     * coverart_display_update never actually redrawing the cover display so
       a call to redraw is required.
     * no need to include a separate one in the sort function as a consequence
     * typo in coverart_get_foreground_display_color

 plugins/cover_display/cover_display_preferences.c |   40 +++++++++------------
 plugins/cover_display/display_coverart.c          |    9 ++++-
 2 files changed, 24 insertions(+), 25 deletions(-)
---
diff --git a/plugins/cover_display/cover_display_preferences.c 
b/plugins/cover_display/cover_display_preferences.c
index c9a0bdb..bd48df0 100644
--- a/plugins/cover_display/cover_display_preferences.c
+++ b/plugins/cover_display/cover_display_preferences.c
@@ -38,15 +38,12 @@
 */
 G_MODULE_EXPORT void on_coverart_dialog_bg_color_set (GtkColorButton *widget, 
gpointer user_data)
 {
-    GdkColor color;
-    gtk_color_button_get_color (widget, &color);
-    gchar *hexstring = g_strdup_printf("#%02X%02X%02X",
-                                       color.red >> 8,
-                                       color.green >> 8,
-                                       color.blue >> 8);
-
-    prefs_set_string ("coverart_display_bg_color", hexstring);
-    g_free (hexstring);
+    GdkRGBA color;
+    gtk_color_button_get_rgba (widget, &color);
+    gchar *color_string = gdk_rgba_to_string(&color);
+
+    prefs_set_string ("coverart_display_bg_color", color_string);
+    g_free (color_string);
     coverart_display_update (FALSE);
 }
 
@@ -55,15 +52,12 @@ G_MODULE_EXPORT void on_coverart_dialog_bg_color_set 
(GtkColorButton *widget, gp
 */
 G_MODULE_EXPORT void on_coverart_dialog_fg_color_set (GtkColorButton *widget, 
gpointer user_data)
 {
-    GdkColor color;
-    gtk_color_button_get_color (widget, &color);
-    gchar *hexstring = g_strdup_printf("#%02X%02X%02X",
-                                       color.red >> 8,
-                                       color.green >> 8,
-                                       color.blue >> 8);
-
-    prefs_set_string ("coverart_display_fg_color", hexstring);
-    g_free (hexstring);
+    GdkRGBA color;
+    gtk_color_button_get_rgba (widget, &color);
+    gchar *color_string = gdk_rgba_to_string(&color);
+
+    prefs_set_string ("coverart_display_fg_color", color_string);
+    g_free (color_string);
     coverart_display_update (FALSE);
 }
 
@@ -94,7 +88,7 @@ GtkWidget *init_cover_preferences(gchar *gladepath) {
     GtkWidget *coverart_bgcolorselect_button;
     GtkWidget *coverart_fgcolorselect_button;
     GtkWidget *w, *win;
-    GdkColor *color;
+    GdkRGBA *color;
 
     pref_xml = gtkpod_builder_xml_new(gladepath);
     win = gtkpod_builder_xml_get_widget(pref_xml, "preference_window");
@@ -105,12 +99,12 @@ GtkWidget *init_cover_preferences(gchar *gladepath) {
     gtk_container_remove(GTK_CONTAINER (win), notebook);
 
     color = coverart_get_background_display_color();
-    gtk_color_button_set_color 
(GTK_COLOR_BUTTON(coverart_bgcolorselect_button), color);
-    g_free (color);
+    gtk_color_button_set_rgba 
(GTK_COLOR_BUTTON(coverart_bgcolorselect_button), color);
+    gdk_rgba_free(color);
 
     color = coverart_get_foreground_display_color();
-    gtk_color_button_set_color 
(GTK_COLOR_BUTTON(coverart_fgcolorselect_button), color);
-    g_free (color);
+    gtk_color_button_set_rgba 
(GTK_COLOR_BUTTON(coverart_fgcolorselect_button), color);
+    gdk_rgba_free(color);
 
     switch (prefs_get_int("cad_sort")) {
     case SORT_ASCENDING:
diff --git a/plugins/cover_display/display_coverart.c 
b/plugins/cover_display/display_coverart.c
index 019839b..ffde61c 100644
--- a/plugins/cover_display/display_coverart.c
+++ b/plugins/cover_display/display_coverart.c
@@ -590,6 +590,12 @@ void coverart_display_update(gboolean clear_track_list) {
         set_slider_range(0);
     else
         set_slider_range(cdwidget->first_imgindex);
+
+    /*
+     * The slider range is blocked from initiating a redraw so
+     * do it manually here
+     */
+    redraw(clear_track_list);
 }
 
 /**
@@ -600,7 +606,6 @@ void coverart_display_update(gboolean clear_track_list) {
 void coverart_display_sort(gint order) {
     prefs_set_int("cad_sort", order);
     coverart_display_update(TRUE);
-    redraw(FALSE);
     gtkpod_broadcast_preference_change("cad_sort", order);
 }
 
@@ -1699,7 +1704,7 @@ GdkRGBA *coverart_get_foreground_display_color() {
 
     if (album_key_list == NULL)
         hex_string = "#000000";
-    else if (!prefs_get_string_value("coverart_display_bg_color", NULL))
+    else if (!prefs_get_string_value("coverart_display_fg_color", NULL))
         hex_string = "#FFFFFF";
     else
         prefs_get_string_value("coverart_display_fg_color", &hex_string);

------------------------------------------------------------------------------
10 Tips for Better Web Security
Learn 10 ways to better secure your business today. Topics covered include:
Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
security Microsoft Exchange, secure Instant Messaging, and much more.
http://www.accelacomm.com/jaw/sfnl/114/51426210/
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to