diff options
author | networkException <git@nwex.de> | 2022-06-05 13:08:09 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-06-05 13:46:52 +0100 |
commit | 52ee5026ea3f0099497273a327c17b7d7568a9e9 (patch) | |
tree | 1b0da5d2b8ed4770f7cd18be89143742b5066101 /Userland | |
parent | 971d6ce16f7ee87c1fdaf8a8cdeee286b4567aa1 (diff) | |
download | serenity-52ee5026ea3f0099497273a327c17b7d7568a9e9.zip |
LibGUI+Browser: Fix crash when activating a "Tab n" action
Previously we would try setting the tab index regardless if that tab
actually existed, resulting in Browser crashing by either pressing
Control + N or using the CommandPalette.
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Applications/Browser/BrowserWindow.cpp | 4 | ||||
-rw-r--r-- | Userland/Libraries/LibGUI/TabWidget.h | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/Userland/Applications/Browser/BrowserWindow.cpp b/Userland/Applications/Browser/BrowserWindow.cpp index f07ab53d1b..52a74eb20c 100644 --- a/Userland/Applications/Browser/BrowserWindow.cpp +++ b/Userland/Applications/Browser/BrowserWindow.cpp @@ -111,8 +111,10 @@ BrowserWindow::BrowserWindow(CookieJar& cookie_jar, URL url) m_tab_widget->activate_previous_tab(); }; - for (int i = 0; i <= 7; ++i) { + for (size_t i = 0; i <= 7; ++i) { m_window_actions.on_tabs.append([this, i] { + if (i >= m_tab_widget->tab_count()) + return; m_tab_widget->set_tab_index(i); }); } diff --git a/Userland/Libraries/LibGUI/TabWidget.h b/Userland/Libraries/LibGUI/TabWidget.h index 0352ac9c9c..e98961eaae 100644 --- a/Userland/Libraries/LibGUI/TabWidget.h +++ b/Userland/Libraries/LibGUI/TabWidget.h @@ -29,6 +29,7 @@ public: bool has_vertical_tabs() const { return m_tab_position == TabPosition::Left || m_tab_position == TabPosition::Right; } Optional<size_t> active_tab_index() const; + size_t tab_count() { return m_tabs.size(); } Widget* active_widget() { return m_active_widget.ptr(); } Widget const* active_widget() const { return m_active_widget.ptr(); } |