forked from townforge/townforge
game: redraw HTML widget when mouse action needs it
This commit is contained in:
parent
494d339105
commit
6612aa6079
@ -584,24 +584,30 @@ PreferredSize UITBHTMLView::OnCalculatePreferredContentSize(const SizeConstraint
|
||||
|
||||
bool UITBHTMLView::OnEvent(const TBWidgetEvent &ev)
|
||||
{
|
||||
bool invalidate = false;
|
||||
litehtml::position::vector redraw_boxes;
|
||||
switch (ev.type)
|
||||
{
|
||||
case EVENT_TYPE_POINTER_DOWN:
|
||||
if (document)
|
||||
document->on_lbutton_down(ev.target_x, ev.target_y, ev.target_x, ev.target_y, redraw_boxes);
|
||||
invalidate = document->on_lbutton_down(ev.target_x, ev.target_y, ev.target_x, ev.target_y, redraw_boxes);
|
||||
break;
|
||||
case EVENT_TYPE_POINTER_UP:
|
||||
if (document)
|
||||
document->on_lbutton_up(ev.target_x, ev.target_y, ev.target_x, ev.target_y, redraw_boxes);
|
||||
invalidate = document->on_lbutton_up(ev.target_x, ev.target_y, ev.target_x, ev.target_y, redraw_boxes);
|
||||
break;
|
||||
case EVENT_TYPE_POINTER_MOVE:
|
||||
if (document)
|
||||
document->on_mouse_over(ev.target_x, ev.target_y, ev.target_x, ev.target_y, redraw_boxes);
|
||||
invalidate = document->on_mouse_over(ev.target_x, ev.target_y, ev.target_x, ev.target_y, redraw_boxes);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (invalidate)
|
||||
{
|
||||
render_width = -1;
|
||||
InvalidateLayout(TBWidget::INVALIDATE_LAYOUT_RECURSIVE);
|
||||
}
|
||||
return TBWidget::OnEvent(ev);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user