aboutsummaryrefslogtreecommitdiff
path: root/src/play-button.c
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2010-09-07 10:53:56 +0100
committerConor Curran <conor.curran@canonical.com>2010-09-07 10:53:56 +0100
commitf17b3140b1ac0efd8c89ed15d2b2f1549595462d (patch)
tree11e286833028996212f6f1461d241cbe3404aada /src/play-button.c
parent1a664a07c80b0af9cd49d58335dda39df0d7785e (diff)
parent6f82956f269c047fe0b94a188c18ceed50bc74ea (diff)
downloadayatana-indicator-sound-f17b3140b1ac0efd8c89ed15d2b2f1549595462d.tar.gz
ayatana-indicator-sound-f17b3140b1ac0efd8c89ed15d2b2f1549595462d.tar.bz2
ayatana-indicator-sound-f17b3140b1ac0efd8c89ed15d2b2f1549595462d.zip
button press fixes merged
Diffstat (limited to 'src/play-button.c')
-rw-r--r--src/play-button.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/play-button.c b/src/play-button.c
index a2eaf2e..ccc23cb 100644
--- a/src/play-button.c
+++ b/src/play-button.c
@@ -409,11 +409,12 @@ play_button_react_to_button_press(GtkWidget* button, PlayButtonEvent command)
g_return_if_fail(IS_PLAY_BUTTON(button));
PlayButtonPrivate* priv = PLAY_BUTTON_GET_PRIVATE(button);
priv->current_command = command;
-
+
cairo_t *cr;
cr = gdk_cairo_create (button->window);
- GList* list = g_hash_table_lookup(priv->command_coordinates, GINT_TO_POINTER(command));
+ GList* list = g_hash_table_lookup(priv->command_coordinates,
+ GINT_TO_POINTER(priv->current_command));
cairo_rectangle(cr,
GPOINTER_TO_INT(g_list_nth_data(list, 0)),
GPOINTER_TO_INT(g_list_nth_data(list, 1)),
@@ -426,10 +427,19 @@ play_button_react_to_button_press(GtkWidget* button, PlayButtonEvent command)
void
-play_button_react_to_button_release(GtkWidget* button)
+play_button_react_to_button_release(GtkWidget* button, PlayButtonEvent command)
{
g_return_if_fail(IS_PLAY_BUTTON(button));
PlayButtonPrivate* priv = PLAY_BUTTON_GET_PRIVATE(button);
+ if(priv->current_command == TRANSPORT_NADA){
+ g_debug("returning from the playbutton release because my previous command was nada");
+ return;
+ }
+ else if(priv->current_command != TRANSPORT_NADA &&
+ command != TRANSPORT_NADA){
+ priv->current_command = command;
+ }
+
cairo_t *cr;
cr = gdk_cairo_create (button->window);
@@ -437,7 +447,7 @@ play_button_react_to_button_release(GtkWidget* button)
GINT_TO_POINTER(priv->current_command));
priv->current_command = TRANSPORT_NADA;
-
+
cairo_rectangle(cr,
GPOINTER_TO_INT(g_list_nth_data(list, 0)),
GPOINTER_TO_INT(g_list_nth_data(list, 1)),
@@ -456,6 +466,7 @@ play_button_toggle_play_pause(GtkWidget* button, PlayButtonState update)
PlayButtonPrivate* priv = PLAY_BUTTON_GET_PRIVATE(button);
priv->current_state = update;
g_debug("PlayButton::toggle play state : %i", priv->current_state);
+ gtk_widget_queue_draw (GTK_WIDGET(button));
}
@@ -955,7 +966,6 @@ draw (GtkWidget* button, cairo_t *cr)
}
-
/**
* play_button_new:
* @returns: a new #PlayButton.