Commit fd6c1558 authored by Piers Wombwell's avatar Piers Wombwell
Browse files

Fixed dragging of scrollbar - occasionally caused a div. by zero error

parent 63c0178c
......@@ -476,15 +476,27 @@ static _kernel_oserror *_do_drag_scroll(WimpOpenWindowRequestEvent *event)
if (sdata->state & Scrollbar_Horizontal)
{
sdata->value = (event->xscroll * (sdata->max - sdata->min) *
sdata->visible / ((sdata->box.xmax - sdata->box.xmin) *
(sdata->max - sdata->min + sdata->visible))) + sdata->min;
int extent = (sdata->box.xmax - sdata->box.xmin) *
(sdata->max - sdata->min + sdata->visible);
if (extent == 0)
sdata->value = sdata->max;
else
sdata->value = (event->xscroll *
(sdata->max - sdata->min) *
sdata->visible / extent) + sdata->min;
}
else
{
sdata->value = (-event->yscroll * (sdata->max - sdata->min) *
sdata->visible / ((sdata->box.ymax - sdata->box.ymin) *
(sdata->max - sdata->min + sdata->visible))) + sdata->min;
int extent = (sdata->box.ymax - sdata->box.ymin) *
(sdata->max - sdata->min + sdata->visible);
if (extent == 0)
sdata->value = sdata->max;
else
sdata->value = (-event->yscroll *
(sdata->max - sdata->min) *
sdata->visible / extent) + sdata->min;
}
if (old_position != sdata->value)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment