mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
PaintBrush: Most tools still care about mousemoves outside layer
This allows you to do things like start a line outside the layer, or spray a little outside but still partly hitting the layer. :^)
This commit is contained in:
parent
96d03546ef
commit
24f9406784
Notes:
sideshowbarker
2024-07-19 06:40:48 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/24f9406784b
6 changed files with 9 additions and 27 deletions
|
@ -79,14 +79,11 @@ void EllipseTool::on_mouseup(Layer& layer, GUI::MouseEvent& event, GUI::MouseEve
|
|||
}
|
||||
}
|
||||
|
||||
void EllipseTool::on_mousemove(Layer& layer, GUI::MouseEvent& event, GUI::MouseEvent&)
|
||||
void EllipseTool::on_mousemove(Layer&, GUI::MouseEvent& event, GUI::MouseEvent&)
|
||||
{
|
||||
if (m_drawing_button == GUI::MouseButton::None)
|
||||
return;
|
||||
|
||||
if (!layer.rect().contains(event.position()))
|
||||
return;
|
||||
|
||||
m_ellipse_end_position = event.position();
|
||||
m_editor->update();
|
||||
}
|
||||
|
|
|
@ -64,9 +64,6 @@ void EraseTool::on_mousedown(Layer& layer, GUI::MouseEvent& event, GUI::MouseEve
|
|||
|
||||
void EraseTool::on_mousemove(Layer& layer, GUI::MouseEvent& event, GUI::MouseEvent&)
|
||||
{
|
||||
if (!m_editor->rect().contains(event.position()))
|
||||
return;
|
||||
|
||||
if (event.buttons() & GUI::MouseButton::Left || event.buttons() & GUI::MouseButton::Right) {
|
||||
Gfx::Rect r = build_rect(event.position(), layer.rect());
|
||||
GUI::Painter painter(layer.bitmap());
|
||||
|
|
|
@ -84,9 +84,6 @@ void LineTool::on_mousemove(Layer&, GUI::MouseEvent& event, GUI::MouseEvent&)
|
|||
if (m_drawing_button == GUI::MouseButton::None)
|
||||
return;
|
||||
|
||||
if (!m_editor->rect().contains(event.position()))
|
||||
return;
|
||||
|
||||
if (!m_constrain_angle) {
|
||||
m_line_end_position = event.position();
|
||||
} else {
|
||||
|
|
|
@ -60,20 +60,17 @@ void PenTool::on_mouseup(Layer&, GUI::MouseEvent& event, GUI::MouseEvent&)
|
|||
|
||||
void PenTool::on_mousemove(Layer& layer, GUI::MouseEvent& event, GUI::MouseEvent&)
|
||||
{
|
||||
if (!layer.rect().contains(event.position()))
|
||||
if (!(event.buttons() & GUI::MouseButton::Left || event.buttons() & GUI::MouseButton::Right))
|
||||
return;
|
||||
GUI::Painter painter(layer.bitmap());
|
||||
|
||||
if (event.buttons() & GUI::MouseButton::Left || event.buttons() & GUI::MouseButton::Right) {
|
||||
GUI::Painter painter(layer.bitmap());
|
||||
if (m_last_drawing_event_position != Gfx::Point(-1, -1))
|
||||
painter.draw_line(m_last_drawing_event_position, event.position(), m_editor->color_for(event), m_thickness);
|
||||
else
|
||||
painter.draw_line(event.position(), event.position(), m_editor->color_for(event), m_thickness);
|
||||
m_editor->update();
|
||||
|
||||
if (m_last_drawing_event_position != Gfx::Point(-1, -1))
|
||||
painter.draw_line(m_last_drawing_event_position, event.position(), m_editor->color_for(event), m_thickness);
|
||||
else
|
||||
painter.draw_line(event.position(), event.position(), m_editor->color_for(event), m_thickness);
|
||||
m_editor->update();
|
||||
|
||||
m_last_drawing_event_position = event.position();
|
||||
}
|
||||
m_last_drawing_event_position = event.position();
|
||||
}
|
||||
|
||||
void PenTool::on_contextmenu(GUI::ContextMenuEvent& event)
|
||||
|
|
|
@ -90,9 +90,6 @@ void RectangleTool::on_mousemove(Layer&, GUI::MouseEvent& event, GUI::MouseEvent
|
|||
if (m_drawing_button == GUI::MouseButton::None)
|
||||
return;
|
||||
|
||||
if (!m_editor->rect().contains(event.position()))
|
||||
return;
|
||||
|
||||
m_rectangle_end_position = event.position();
|
||||
m_editor->update();
|
||||
}
|
||||
|
|
|
@ -83,9 +83,6 @@ void SprayTool::paint_it()
|
|||
|
||||
void SprayTool::on_mousedown(Layer&, GUI::MouseEvent& event, GUI::MouseEvent&)
|
||||
{
|
||||
if (!m_editor->rect().contains(event.position()))
|
||||
return;
|
||||
|
||||
m_color = m_editor->color_for(event);
|
||||
m_last_pos = event.position();
|
||||
m_timer->start();
|
||||
|
|
Loading…
Reference in a new issue