diff options
author | 2013-11-03 20:17:59 +0100 | |
---|---|---|
committer | 2013-11-03 20:17:59 +0100 | |
commit | ac2532d356f8fcbafc612e380627e0b8d9d43b94 (patch) | |
tree | c97e8e4a0382e47fcaf454e869c08df6772d820c | |
parent | da77bb42a2d08ae1bf418648a9530b74e12db1ff (diff) |
gtkui: fixed race condition in artwork callback; fixed splitter init regression
-rw-r--r-- | plugins/gtkui/plcommon.c | 2 | ||||
-rw-r--r-- | plugins/gtkui/widgets.c | 4 |
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); } |