From ab0798e703c27e58e2674db9cd77ec8c82e40f7e Mon Sep 17 00:00:00 2001
From: Lars Uebernickel <lars.uebernickel@canonical.com>
Date: Mon, 24 Mar 2014 16:08:30 +0100
Subject: idoplaybackmenuitem: don't add .menu css class on the menu item

It's a menu item, not a menu.
---
 src/idoplaybackmenuitem.c | 2 --
 1 file changed, 2 deletions(-)

(limited to 'src')

diff --git a/src/idoplaybackmenuitem.c b/src/idoplaybackmenuitem.c
index 662ceaf..fd234e3 100644
--- a/src/idoplaybackmenuitem.c
+++ b/src/idoplaybackmenuitem.c
@@ -1151,8 +1151,6 @@ ido_playback_menu_item_draw (GtkWidget* button, cairo_t *cr)
 
   GtkStyle *style;
 
-  gtk_style_context_add_class (gtk_widget_get_style_context (button),
-                               GTK_STYLE_CLASS_MENU);
   CairoColorRGB bg_color, fg_color, bg_selected, bg_prelight;
   CairoColorRGB color_middle[2], color_middle_prelight[2], color_outer[2], color_outer_prelight[2],
                 color_play_outer[2], color_play_outer_prelight[2],
-- 
cgit v1.2.3


From 5a777027b99d31c7a56237631dcaacab43c65089 Mon Sep 17 00:00:00 2001
From: Lars Uebernickel <lars.uebernickel@canonical.com>
Date: Mon, 24 Mar 2014 16:09:02 +0100
Subject: idoplaybackmenuitem: set active flag when player is launching

The active flag is used to signal the theme that the spinner should animate.
Using that flag is a bit weird, but it's consistent with GtkSpinner and thus
doesn't require special handling in the theme.
---
 src/idoplaybackmenuitem.c | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

(limited to 'src')

diff --git a/src/idoplaybackmenuitem.c b/src/idoplaybackmenuitem.c
index fd234e3..0e6460f 100644
--- a/src/idoplaybackmenuitem.c
+++ b/src/idoplaybackmenuitem.c
@@ -329,6 +329,20 @@ ido_playback_menu_item_init (IdoPlaybackMenuItem *self)
   gtk_widget_set_size_request (GTK_WIDGET (self), 200, 43);
 }
 
+static void
+ido_playback_menu_item_set_state (IdoPlaybackMenuItem *self,
+                                  State                state)
+{
+  self->current_state = state;
+
+  if (self->current_state == STATE_LAUNCHING)
+    gtk_widget_set_state_flags (GTK_WIDGET (self), GTK_STATE_FLAG_ACTIVE, FALSE);
+  else
+    gtk_widget_unset_state_flags (GTK_WIDGET (self), GTK_STATE_FLAG_ACTIVE);
+
+  gtk_widget_queue_draw (GTK_WIDGET (self));
+}
+
 static void
 ido_playback_menu_item_set_state_from_string (IdoPlaybackMenuItem *self,
                                               const gchar         *state)
@@ -336,13 +350,11 @@ ido_playback_menu_item_set_state_from_string (IdoPlaybackMenuItem *self,
   g_return_if_fail (state != NULL);
 
   if (g_str_equal (state, "Playing"))
-    self->current_state = STATE_PLAYING;
+    ido_playback_menu_item_set_state (self, STATE_PLAYING);
   else if (g_str_equal (state, "Launching"))
-    self->current_state = STATE_LAUNCHING;
+    ido_playback_menu_item_set_state (self, STATE_LAUNCHING);
   else /* "Paused" and fallback */
-    self->current_state = STATE_PAUSED;
-
-  gtk_widget_queue_draw (GTK_WIDGET (self));
+    ido_playback_menu_item_set_state (self, STATE_PAUSED);
 }
 
 static void
@@ -372,10 +384,7 @@ ido_playback_menu_item_action_removed (GActionGroup *action_group,
   IdoPlaybackMenuItem *self = user_data;
 
   if (self->play_action && g_str_equal (action_name, self->play_action))
-    {
-      self->current_state = STATE_PAUSED;
-      gtk_widget_queue_draw (GTK_WIDGET (self));
-    }
+    ido_playback_menu_item_set_state (self, STATE_PAUSED);
 }
 
 static void
-- 
cgit v1.2.3