diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2013-09-13 20:43:28 +0200 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2013-09-13 20:43:28 +0200 |
commit | 94b5dfbdb2663c3cf6cdc263be7c0ee17a8b7296 (patch) | |
tree | cafb3e4842b456e65b00afdf13d5a8a651007442 | |
parent | 169a5f70d81b165f87a9a34f77fe771c5c06a9e5 (diff) |
gtkui: fixed 1st time drawing of playlist
-rw-r--r-- | plugins/gtkui/ddblistview.c | 32 | ||||
-rw-r--r-- | plugins/gtkui/gtkui.c | 13 | ||||
-rwxr-xr-x | scripts/quickinstall.sh | 2 |
3 files changed, 27 insertions, 20 deletions
diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c index d49fe79d..5b5d7f7a 100644 --- a/plugins/gtkui/ddblistview.c +++ b/plugins/gtkui/ddblistview.c @@ -572,6 +572,19 @@ ddb_listview_list_configure_event (GtkWidget *widget, ddb_listview_build_groups (ps); } + GtkAllocation a; + gtk_widget_get_allocation (ps->list, &a); + int w = a.width; + int size = 0; + DdbListviewColumn *c; + for (c = ps->columns; c; c = c->next) { + size += c->width; + } + ps->totalwidth = size; + if (ps->totalwidth < a.width) { + ps->totalwidth = a.width; + } + g_idle_add (ddb_listview_reconf_scrolling, ps); return FALSE; @@ -1136,24 +1149,17 @@ ddb_listview_list_setup_hscroll (DdbListview *ps) { for (c = ps->columns; c; c = c->next) { size += c->width; } - ps->totalwidth = size; - if (ps->totalwidth < a.width) { - ps->totalwidth = a.width; - } - if (w >= size) { - size = 0; - } GtkWidget *scroll = ps->hscrollbar; - if (ps->hscrollpos >= size-w) { - int n = size-w-1; - ps->hscrollpos = max (0, n); - gtk_range_set_value (GTK_RANGE (scroll), ps->hscrollpos); - } - if (size == 0) { + if (w >= size) { gtk_widget_hide (scroll); gtk_widget_queue_draw (ps->list); } else { + if (ps->hscrollpos >= size-w) { + int n = size-w-1; + ps->hscrollpos = max (0, n); + gtk_range_set_value (GTK_RANGE (scroll), ps->hscrollpos); + } GtkAdjustment *adj = (GtkAdjustment*)gtk_adjustment_new (gtk_range_get_value (GTK_RANGE (scroll)), 0, size, 1, w, w); gtk_range_set_adjustment (GTK_RANGE (scroll), adj); gtk_widget_show (scroll); diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c index 808f50c4..a1304eff 100644 --- a/plugins/gtkui/gtkui.c +++ b/plugins/gtkui/gtkui.c @@ -920,6 +920,8 @@ init_widget_layout (void) { } } +static DB_plugin_t *supereq_plugin; + void gtkui_thread (void *ctx) { #ifdef __linux__ @@ -1113,6 +1115,11 @@ gtkui_thread (void *ctx) { gtkui_original_plt_load = deadbeef->plt_load; deadbeef->plt_load = gtkui_plt_load; + supereq_plugin = deadbeef->plug_get_for_id ("supereq"); + // need to do it in gtk thread + gtkui_connect_cb (NULL); + + gtk_main (); w_free (); @@ -1284,8 +1291,6 @@ gtkui_start (void) { return 0; } -static DB_plugin_t *supereq_plugin; - gboolean gtkui_connect_cb (void *none) { // equalizer @@ -1322,10 +1327,6 @@ gtkui_connect_cb (void *none) { static int gtkui_connect (void) { - supereq_plugin = deadbeef->plug_get_for_id ("supereq"); - // need to do it in gtk thread - g_idle_add (gtkui_connect_cb, NULL); - return 0; } diff --git a/scripts/quickinstall.sh b/scripts/quickinstall.sh index bdf072c1..f440a281 100755 --- a/scripts/quickinstall.sh +++ b/scripts/quickinstall.sh @@ -1,6 +1,6 @@ #!/bin/bash . .install -rm $PREFIX/lib/deadbeef/*.so +rm -f $PREFIX/lib/deadbeef/*.so cp ./deadbeef $PREFIX/bin/ cp ./plugins/nullout/.libs/nullout.so $PREFIX/lib/deadbeef/ cp ./plugins/cdda/.libs/cdda.so $PREFIX/lib/deadbeef/ |