summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
authornetworkException <git@nwex.de>2022-06-05 13:08:09 +0200
committerLinus Groh <mail@linusgroh.de>2022-06-05 13:46:52 +0100
commit52ee5026ea3f0099497273a327c17b7d7568a9e9 (patch)
tree1b0da5d2b8ed4770f7cd18be89143742b5066101 /Userland
parent971d6ce16f7ee87c1fdaf8a8cdeee286b4567aa1 (diff)
downloadserenity-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.cpp4
-rw-r--r--Userland/Libraries/LibGUI/TabWidget.h1
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(); }