mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 04:13:11 +00:00
Browser: Go back/forward when pressing back/forward mouse buttons
This currently doesn't work when running Serenity through QEMU, as it doesn't pass the side button events over to Serenity due to some bug or missing feature.
This commit is contained in:
parent
2f3ebce7c8
commit
af1c26f05b
|
@ -445,6 +445,16 @@ Tab::Tab(BrowserWindow& window)
|
|||
load(url);
|
||||
};
|
||||
|
||||
view().on_back_button = [this] {
|
||||
if (m_history.can_go_back())
|
||||
go_back();
|
||||
};
|
||||
|
||||
view().on_forward_button = [this] {
|
||||
if (m_history.can_go_forward())
|
||||
go_forward();
|
||||
};
|
||||
|
||||
m_tab_context_menu = GUI::Menu::construct();
|
||||
m_tab_context_menu->add_action(GUI::CommonActions::make_reload_action([this](auto&) {
|
||||
reload();
|
||||
|
|
|
@ -174,6 +174,12 @@ void OutOfProcessWebView::mousedown_event(GUI::MouseEvent& event)
|
|||
void OutOfProcessWebView::mouseup_event(GUI::MouseEvent& event)
|
||||
{
|
||||
enqueue_input_event(event);
|
||||
|
||||
if (event.button() == GUI::MouseButton::Backward && on_back_button) {
|
||||
on_back_button();
|
||||
} else if (event.button() == GUI::MouseButton::Forward && on_forward_button) {
|
||||
on_forward_button();
|
||||
}
|
||||
}
|
||||
|
||||
void OutOfProcessWebView::mousemove_event(GUI::MouseEvent& event)
|
||||
|
|
|
@ -111,6 +111,8 @@ public:
|
|||
Function<Gfx::IntRect()> on_maximize_window;
|
||||
Function<Gfx::IntRect()> on_minimize_window;
|
||||
Function<Gfx::IntRect()> on_fullscreen_window;
|
||||
Function<void()> on_back_button;
|
||||
Function<void()> on_forward_button;
|
||||
|
||||
private:
|
||||
OutOfProcessWebView();
|
||||
|
|
Loading…
Reference in a new issue