diff options
Diffstat (limited to 'src/transport-widget.c')
-rw-r--r-- | src/transport-widget.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/transport-widget.c b/src/transport-widget.c index ad044da..26b7a98 100644 --- a/src/transport-widget.c +++ b/src/transport-widget.c @@ -105,7 +105,7 @@ static void transport_widget_property_update ( DbusmenuMenuitem* item, gpointer userdata ); static void transport_widget_menu_hidden ( GtkWidget *menu, TransportWidget *transport); -static void transport_widget_notify ( TransportWidget *item, +static void transport_widget_notify ( GObject *item, GParamSpec *pspec, gpointer user_data ); static TransportWidgetEvent transport_widget_determine_button_event ( TransportWidget* button, @@ -174,7 +174,7 @@ transport_widget_init (TransportWidget *self) gtk_widget_set_size_request(GTK_WIDGET(self), 200, 43); g_signal_connect (G_OBJECT(self), - "notify::parent", + "notify", G_CALLBACK (transport_widget_notify), NULL); } @@ -203,7 +203,7 @@ transport_widget_expose (GtkWidget *button, GdkEventExpose *event) event->area.width, event->area.height); cairo_clip(cr); - draw (button, cr); + draw (button, cr); cairo_destroy (cr); return FALSE; @@ -220,16 +220,16 @@ transport_widget_toggle_play_pause(TransportWidget* button, } static void -transport_widget_notify (TransportWidget *item, - GParamSpec *pspec, - gpointer user_data) +transport_widget_notify ( GObject *item, + GParamSpec *pspec, + gpointer user_data ) { if (g_strcmp0 (pspec->name, "parent")){ GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (item)); if (parent){ g_signal_connect ( parent, "hide", G_CALLBACK (transport_widget_menu_hidden), - item); + item ); } } } @@ -238,7 +238,6 @@ static void transport_widget_menu_hidden ( GtkWidget *menu, TransportWidget *transport) { - //g_debug("Transport Widget's menu hidden method called"); g_return_if_fail(IS_TRANSPORT_WIDGET(transport)); transport_widget_react_to_button_release(transport, TRANSPORT_NADA); } @@ -1262,6 +1261,11 @@ transport_widget_set_twin_item(TransportWidget* self, priv->twin_item = twin_item; g_signal_connect(G_OBJECT(priv->twin_item), "property-changed", G_CALLBACK(transport_widget_property_update), self); + gint initial_state = dbusmenu_menuitem_property_get_int( twin_item, + DBUSMENU_TRANSPORT_MENUITEM_PLAY_STATE ); + //g_debug("TRANSPORT WIDGET - INITIAL UPDATE = %i", initial_state); + transport_widget_toggle_play_pause( self, + (TransportWidgetState)initial_state); } /** @@ -1280,8 +1284,7 @@ transport_widget_property_update(DbusmenuMenuitem* item, gchar* property, { int update_value = g_value_get_int(value); //g_debug("transport_widget_update_state - with value %i", update_value); - transport_widget_toggle_play_pause(bar, - (TransportWidgetState)update_value); + transport_widget_toggle_play_pause(bar, (TransportWidgetState)update_value); } } |