mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 03:55:24 +00:00
Browser: Add right-click context menu to tabs
Right clicking on a position in the PageView of a tab will open a context menu with common actions like back, forward, reload, view source and inspect DOM. :^)
This commit is contained in:
parent
cc675cbe24
commit
3a4e121904
Notes:
sideshowbarker
2024-07-19 05:20:57 +09:00
Author: https://github.com/ADKaster Commit: https://github.com/SerenityOS/serenity/commit/3a4e121904e Pull-request: https://github.com/SerenityOS/serenity/pull/2651
2 changed files with 21 additions and 5 deletions
|
@ -268,8 +268,7 @@ Tab::Tab()
|
|||
},
|
||||
this));
|
||||
|
||||
auto& inspect_menu = m_menubar->add_menu("Inspect");
|
||||
inspect_menu.add_action(GUI::Action::create(
|
||||
auto view_source_action = GUI::Action::create(
|
||||
"View source", { Mod_Ctrl, Key_U }, [this](auto&) {
|
||||
ASSERT(m_page_view->document());
|
||||
auto url = m_page_view->document()->url().to_string();
|
||||
|
@ -284,8 +283,9 @@ Tab::Tab()
|
|||
window->show();
|
||||
(void)window.leak_ref();
|
||||
},
|
||||
this));
|
||||
inspect_menu.add_action(GUI::Action::create(
|
||||
this);
|
||||
|
||||
auto inspect_dom_tree_action = GUI::Action::create(
|
||||
"Inspect DOM tree", { Mod_None, Key_F12 }, [this](auto&) {
|
||||
if (!m_dom_inspector_window) {
|
||||
m_dom_inspector_window = GUI::Window::construct();
|
||||
|
@ -298,7 +298,11 @@ Tab::Tab()
|
|||
m_dom_inspector_window->show();
|
||||
m_dom_inspector_window->move_to_front();
|
||||
},
|
||||
this));
|
||||
this);
|
||||
|
||||
auto& inspect_menu = m_menubar->add_menu("Inspect");
|
||||
inspect_menu.add_action(*view_source_action);
|
||||
inspect_menu.add_action(*inspect_dom_tree_action);
|
||||
|
||||
inspect_menu.add_action(GUI::Action::create(
|
||||
"Open JS Console", { Mod_Ctrl, Key_I }, [this](auto&) {
|
||||
|
@ -356,6 +360,17 @@ Tab::Tab()
|
|||
m_tab_context_menu->add_action(GUI::Action::create("Close Tab", [this](auto&) {
|
||||
on_tab_close_request(*this);
|
||||
}));
|
||||
|
||||
m_page_context_menu = GUI::Menu::construct();
|
||||
m_page_context_menu->add_action(*m_go_back_action);
|
||||
m_page_context_menu->add_action(*m_go_forward_action);
|
||||
m_page_context_menu->add_action(*m_reload_action);
|
||||
m_page_context_menu->add_separator();
|
||||
m_page_context_menu->add_action(*view_source_action);
|
||||
m_page_context_menu->add_action(*inspect_dom_tree_action);
|
||||
m_page_view->on_context_menu_request = [&](auto& screen_position) {
|
||||
m_page_context_menu->popup(screen_position);
|
||||
};
|
||||
}
|
||||
|
||||
Tab::~Tab()
|
||||
|
|
|
@ -76,6 +76,7 @@ private:
|
|||
String m_link_context_menu_href;
|
||||
|
||||
RefPtr<GUI::Menu> m_tab_context_menu;
|
||||
RefPtr<GUI::Menu> m_page_context_menu;
|
||||
|
||||
String m_title;
|
||||
RefPtr<const Gfx::Bitmap> m_icon;
|
||||
|
|
Loading…
Add table
Reference in a new issue