mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-23 08:00:20 +00:00
Browser: Add "Close tab" action (Ctrl+W) :^)
Note that this is a little bit unreliable with the keyboard shortcut since LibGUI can get confused about which Action it's supposed to use as each Browser::Tab has its own "close tab" action. This will need to be fixed in LibGUI.
This commit is contained in:
parent
476a4475e5
commit
312501f309
Notes:
sideshowbarker
2024-07-19 07:21:13 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/312501f3091
3 changed files with 12 additions and 0 deletions
|
@ -178,6 +178,9 @@ Tab::Tab()
|
|||
|
||||
auto& app_menu = m_menubar->add_menu("Browser");
|
||||
app_menu.add_action(WindowActions::the().create_new_tab_action());
|
||||
app_menu.add_action(GUI::Action::create("Close tab", { Mod_Ctrl, Key_W }, [this](auto&) {
|
||||
on_tab_close_request(*this);
|
||||
}));
|
||||
|
||||
app_menu.add_action(GUI::Action::create("Reload", { Mod_None, Key_F5 }, Gfx::Bitmap::load_from_file("/res/icons/16x16/reload.png"), [this](auto&) {
|
||||
TemporaryChange<bool> change(m_should_push_loads_to_history, false);
|
||||
|
|
|
@ -44,6 +44,7 @@ public:
|
|||
void did_become_active();
|
||||
|
||||
Function<void(String)> on_title_change;
|
||||
Function<void(Tab&)> on_tab_close_request;
|
||||
|
||||
const String& title() const { return m_title; }
|
||||
|
||||
|
|
|
@ -100,6 +100,14 @@ int main(int argc, char** argv)
|
|||
window->set_title(String::format("%s - Browser", title.characters()));
|
||||
};
|
||||
|
||||
new_tab.on_tab_close_request = [&](auto& tab) {
|
||||
tab_widget.deferred_invoke([&](auto&) {
|
||||
tab_widget.remove_tab(tab);
|
||||
if (tab_widget.children().is_empty())
|
||||
app.quit();
|
||||
});
|
||||
};
|
||||
|
||||
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/filetype-html.png"));
|
||||
|
||||
window->set_title("Browser");
|
||||
|
|
Loading…
Reference in a new issue