diff options
-rw-r--r-- | Libraries/LibGUI/IconView.cpp | 16 | ||||
-rw-r--r-- | Libraries/LibGUI/IconView.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/Libraries/LibGUI/IconView.cpp b/Libraries/LibGUI/IconView.cpp index 9b26ee78b1..42a7498d43 100644 --- a/Libraries/LibGUI/IconView.cpp +++ b/Libraries/LibGUI/IconView.cpp @@ -388,6 +388,14 @@ void IconView::update_item_rects(int item_index, ItemData& item_data) const item_data.text_rect.set_top(item_rect.y() + item_data.text_offset_y); } +Gfx::IntRect IconView::content_rect(const ModelIndex& index) const +{ + if (!index.is_valid()) + return {}; + auto& item_data = get_item_data(index.row()); + return item_data.text_rect; +} + void IconView::get_item_rects(int item_index, ItemData& item_data, const Gfx::Font& font) const { auto item_rect = this->item_rect(item_index); @@ -602,6 +610,14 @@ void IconView::keydown_event(KeyEvent& event) if (!m_visual_row_count || !m_visual_column_count) return; + if (event.key() == KeyCode::Key_F2) { + if (is_editable() && edit_triggers() & EditTrigger::EditKeyPressed) { + begin_editing(cursor_index()); + event.accept(); + return; + } + } + if (event.key() == KeyCode::Key_Return) { activate_selected(); return; diff --git a/Libraries/LibGUI/IconView.h b/Libraries/LibGUI/IconView.h index c4ae146e86..24f0326ca8 100644 --- a/Libraries/LibGUI/IconView.h +++ b/Libraries/LibGUI/IconView.h @@ -49,6 +49,7 @@ public: void set_model_column(int column) { m_model_column = column; } virtual ModelIndex index_at_event_position(const Gfx::IntPoint&) const override; + virtual Gfx::IntRect content_rect(const ModelIndex&) const override; virtual void select_all() override; |