mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:37:35 +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
3 changed files with 12 additions and 0 deletions
|
@ -178,6 +178,9 @@ Tab::Tab()
|
||||||
|
|
||||||
auto& app_menu = m_menubar->add_menu("Browser");
|
auto& app_menu = m_menubar->add_menu("Browser");
|
||||||
app_menu.add_action(WindowActions::the().create_new_tab_action());
|
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&) {
|
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);
|
TemporaryChange<bool> change(m_should_push_loads_to_history, false);
|
||||||
|
|
|
@ -44,6 +44,7 @@ public:
|
||||||
void did_become_active();
|
void did_become_active();
|
||||||
|
|
||||||
Function<void(String)> on_title_change;
|
Function<void(String)> on_title_change;
|
||||||
|
Function<void(Tab&)> on_tab_close_request;
|
||||||
|
|
||||||
const String& title() const { return m_title; }
|
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()));
|
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_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/filetype-html.png"));
|
||||||
|
|
||||||
window->set_title("Browser");
|
window->set_title("Browser");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue