summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2013-11-03 20:17:59 +0100
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2013-11-03 20:17:59 +0100
commitac2532d356f8fcbafc612e380627e0b8d9d43b94 (patch)
treec97e8e4a0382e47fcaf454e869c08df6772d820c
parentda77bb42a2d08ae1bf418648a9530b74e12db1ff (diff)
gtkui: fixed race condition in artwork callback; fixed splitter init regression
-rw-r--r--plugins/gtkui/plcommon.c2
-rw-r--r--plugins/gtkui/widgets.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/plugins/gtkui/plcommon.c b/plugins/gtkui/plcommon.c
index 299384d0..b2d75035 100644
--- a/plugins/gtkui/plcommon.c
+++ b/plugins/gtkui/plcommon.c
@@ -88,11 +88,13 @@ redraw_playlist (void *user_data) {
static gboolean
redraw_playlist_single_cb (gpointer user_data) {
gtk_widget_queue_draw (GTK_WIDGET(user_data));
+ g_object_unref (GTK_WIDGET (user_data));
return FALSE;
}
static void
redraw_playlist_single (void *user_data) {
+ g_object_ref (GTK_WIDGET (user_data));
g_idle_add (redraw_playlist_single_cb, user_data);
}
diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c
index 6be42541..7bf3a11e 100644
--- a/plugins/gtkui/widgets.c
+++ b/plugins/gtkui/widgets.c
@@ -1181,11 +1181,11 @@ void
w_hsplitter_init (ddb_gtkui_widget_t *base) {
w_splitter_t *w = (w_splitter_t *)base;
int pos = ((w_splitter_t *)w)->position; // prevent lock/unlock from overwriting position
- if (w->locked && !w->box) {
+ if (w->locked && !GTK_IS_BOX(w->box)) {
w->locked = 0;
w_splitter_lock (w);
}
- else if (!w->locked && w->box) {
+ else if (!w->locked && GTK_IS_BOX(w->box)) {
w->locked = 1;
w_splitter_unlock (w);
}