summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2013-09-13 20:43:28 +0200
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2013-09-13 20:43:28 +0200
commit94b5dfbdb2663c3cf6cdc263be7c0ee17a8b7296 (patch)
treecafb3e4842b456e65b00afdf13d5a8a651007442
parent169a5f70d81b165f87a9a34f77fe771c5c06a9e5 (diff)
gtkui: fixed 1st time drawing of playlist
-rw-r--r--plugins/gtkui/ddblistview.c32
-rw-r--r--plugins/gtkui/gtkui.c13
-rwxr-xr-xscripts/quickinstall.sh2
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/