Ticket #54: fix of dialog mouse handling.

Skip widgets that matches coords but does not have an action (usually
groupboxes), continuing search of widget with defined action.
Thanks to sfionov.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2009-10-03 14:49:08 +04:00
parent 520e141844
commit 57f9d0e042

View File

@ -752,22 +752,20 @@ dlg_mouse_event (Dlg_head * h, Gpm_Event * event)
item = starting_widget;
do {
Widget *widget = item;
Widget *widget;
widget = item;
item = item->next;
if (!((x > widget->x) && (x <= widget->x + widget->cols)
&& (y > widget->y) && (y <= widget->y + widget->lines)))
continue;
if ((x > widget->x) && (x <= widget->x + widget->cols)
&& (y > widget->y) && (y <= widget->y + widget->lines)) {
new_event = *event;
new_event.x -= widget->x;
new_event.y -= widget->y;
new_event = *event;
new_event.x -= widget->x;
new_event.y -= widget->y;
if (!widget->mouse)
return MOU_NORMAL;
return (*widget->mouse) (&new_event, widget);
if (widget->mouse != NULL)
return widget->mouse (&new_event, widget);
}
} while (item != starting_widget);
return MOU_NORMAL;