Fix treeview code's inconsistant application of the plot origin. (Fixes various redraw glitches.)
This commit is contained in:
parent
8a87058dc2
commit
c3ca5ab979
|
@ -450,21 +450,21 @@ void ro_treeview_redraw_loop(wimp_draw *redraw, ro_treeview *tv, osbool more)
|
||||||
};
|
};
|
||||||
|
|
||||||
while (more) {
|
while (more) {
|
||||||
ro_plot_origin_x = redraw->box.x0 - redraw->xscroll;
|
ro_plot_origin_x = redraw->box.x0 + tv->origin.x -
|
||||||
ro_plot_origin_y = redraw->box.y1 - redraw->yscroll;
|
redraw->xscroll;
|
||||||
|
ro_plot_origin_y = redraw->box.y1 + tv->origin.y -
|
||||||
|
redraw->yscroll;
|
||||||
|
|
||||||
if (tv != NULL && tv->tree != NULL) {
|
if (tv != NULL && tv->tree != NULL) {
|
||||||
struct rect clip;
|
struct rect clip;
|
||||||
|
|
||||||
clip.x0 = (redraw->clip.x0 -
|
clip.x0 = (redraw->clip.x0 - ro_plot_origin_x) / 2;
|
||||||
(ro_plot_origin_x + tv->origin.x)) / 2;
|
clip.y0 = (ro_plot_origin_y - redraw->clip.y1) / 2;
|
||||||
clip.y0 = ((ro_plot_origin_y + tv->origin.y) -
|
|
||||||
redraw->clip.y1) / 2;
|
|
||||||
|
|
||||||
/* Treeview text alwyas has flat background colour,
|
/* Treeview text alwyas has flat background colour,
|
||||||
* so disable unnecessary background blending */
|
* so disable unnecessary background blending */
|
||||||
no_font_blending = true;
|
no_font_blending = true;
|
||||||
tree_draw(tv->tree, tv->origin.x/2, -(tv->origin.y/2),
|
tree_draw(tv->tree, 0, 0,
|
||||||
clip.x0, clip.y0,
|
clip.x0, clip.y0,
|
||||||
(redraw->clip.x1 - redraw->clip.x0)/2,
|
(redraw->clip.x1 - redraw->clip.x0)/2,
|
||||||
(redraw->clip.y1 - redraw->clip.y0)/2,
|
(redraw->clip.y1 - redraw->clip.y0)/2,
|
||||||
|
|
Loading…
Reference in New Issue