1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-10 06:37:36 +00:00

LibGUI: Add GWidget::doubleclick_event().

Now double-clicking an item in a GTableView or GItemView will activate it.
This commit is contained in:
Andreas Kling 2019-03-25 01:42:15 +01:00
parent 43f9027968
commit 20f7d7ec67
11 changed files with 100 additions and 7 deletions

View file

@ -71,7 +71,7 @@ void GWidget::event(GEvent& event)
set_focus(true);
return mousedown_event(static_cast<GMouseEvent&>(event));
case GEvent::MouseUp:
return mouseup_event(static_cast<GMouseEvent&>(event));
return handle_mouseup_event(static_cast<GMouseEvent&>(event));
case GEvent::Enter:
return enter_event(event);
case GEvent::Leave:
@ -144,6 +144,30 @@ void GWidget::handle_resize_event(GResizeEvent& event)
return resize_event(event);
}
void GWidget::handle_mouseup_event(GMouseEvent& event)
{
mouseup_event(event);
if (!rect().contains(event.position()))
return;
// It's a click.. but is it a doubleclick?
// FIXME: This needs improvement.
int elapsed_since_last_click = m_click_clock.elapsed();
if (elapsed_since_last_click < 250) {
doubleclick_event(event);
} else {
m_click_clock.start();
}
}
void GWidget::click_event(GMouseEvent&)
{
}
void GWidget::doubleclick_event(GMouseEvent&)
{
}
void GWidget::resize_event(GResizeEvent&)
{
}