implement eraser detection on windows

This commit is contained in:
2018-10-09 02:12:09 +02:00
parent dba5eef824
commit a6d0914bf8
11 changed files with 95 additions and 35 deletions

View File

@@ -151,7 +151,7 @@ void App::display_file(std::string path)
#endif
}
bool App::mouse_down(int button, float x, float y, float pressure, kEventSource source)
bool App::mouse_down(int button, float x, float y, float pressure, kEventSource source, bool eraser)
{
redraw = true;
MouseEvent e;
@@ -159,11 +159,12 @@ bool App::mouse_down(int button, float x, float y, float pressure, kEventSource
e.m_pos = { x / zoom, y / zoom };
e.m_pressure = pressure;
e.m_source = source;
e.m_eraser = eraser;
auto ret = layout[main_id]->on_event(&e);
layout[main_id]->update();
return ret == kEventResult::Consumed;
}
bool App::mouse_move(float x, float y, float pressure, kEventSource source)
bool App::mouse_move(float x, float y, float pressure, kEventSource source, bool eraser)
{
redraw = true;
MouseEvent e;
@@ -171,18 +172,20 @@ bool App::mouse_move(float x, float y, float pressure, kEventSource source)
e.m_pos = { x / zoom, y / zoom };
e.m_pressure = pressure;
e.m_source = source;
e.m_eraser = eraser;
kEventResult ret = kEventResult::Available;
if (auto* main = layout[main_id])
ret = main->on_event(&e);
return ret == kEventResult::Consumed;
}
bool App::mouse_up(int button, float x, float y, kEventSource source)
bool App::mouse_up(int button, float x, float y, kEventSource source, bool eraser)
{
redraw = true;
MouseEvent e;
e.m_type = button ? kEventType::MouseUpR : kEventType::MouseUpL;
e.m_pos = { x / zoom, y / zoom };
e.m_source = source;
e.m_eraser = eraser;
auto ret = layout[main_id]->on_event(&e);
layout[main_id]->update();
return ret == kEventResult::Consumed;