mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-25 09:04:53 +00:00
HackStudio: Allow moving the selected widgets using the arrow keys
This is a nice complement to moving widgets with the mouse. :^)
This commit is contained in:
@@ -81,3 +81,32 @@ void CursorTool::on_mousemove(GMouseEvent& event)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CursorTool::on_keydown(GKeyEvent& event)
|
||||
{
|
||||
dbg() << "CursorTool::on_keydown";
|
||||
|
||||
auto move_selected_widgets_by = [this](int x, int y) {
|
||||
m_editor.selection().for_each([&](auto& widget) {
|
||||
widget.move_by(x, y);
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
};
|
||||
|
||||
if (event.modifiers() == 0) {
|
||||
switch (event.key()) {
|
||||
case Key_Down:
|
||||
move_selected_widgets_by(0, m_editor.form_widget().grid_size());
|
||||
break;
|
||||
case Key_Up:
|
||||
move_selected_widgets_by(0, -m_editor.form_widget().grid_size());
|
||||
break;
|
||||
case Key_Left:
|
||||
move_selected_widgets_by(-m_editor.form_widget().grid_size(), 0);
|
||||
break;
|
||||
case Key_Right:
|
||||
move_selected_widgets_by(m_editor.form_widget().grid_size(), 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user