From ab0798e703c27e58e2674db9cd77ec8c82e40f7e Mon Sep 17 00:00:00 2001 From: Lars Uebernickel 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 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