summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-05-09 16:11:48 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-05-09 16:34:59 +0200
commit110bc8baca380d9a880e675afb5b808259b85d14 (patch)
tree4c952a48f1f76d90d649d89915cb9bb24d4cd009 /plugins
parent1dcac4597e1c6548966ffd13f59af5c0af866d90 (diff)
fixed redraw when setting cursor onto already selected item
huge speedup of playlist redraw after selection/scrolling claim-fix of screen corruption bug on gnome/ubuntu
Diffstat (limited to 'plugins')
-rw-r--r--plugins/gtkui/ddblistview.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c
index 50877666..aa1f7a57 100644
--- a/plugins/gtkui/ddblistview.c
+++ b/plugins/gtkui/ddblistview.c
@@ -1158,6 +1158,14 @@ ddb_listview_list_render_row (DdbListview *listview, int row, DdbListviewIter it
return;
}
+ if (y + h <= 0) {
+ return;
+ }
+
+ if (y > GTK_WIDGET (listview)->allocation.height) {
+ return;
+ }
+
draw_begin ((uintptr_t)listview->backbuf);
ddb_listview_list_render_row_background (listview, it, even, cursor, x, y, w, h);
if (it) {
@@ -1267,6 +1275,9 @@ ddb_listview_select_single (DdbListview *ps, int sel) {
ddb_listview_draw_row (ps, idx, it);
ps->binding->selection_changed (it, idx);
}
+ else if (ps->binding->cursor () == idx) {
+ ddb_listview_draw_row (ps, idx, it);
+ }
}
else if (ps->binding->is_selected (it)) {
ps->binding->select (it, 0);