Skip to content

Commit 76187dc

Browse files
committed
fix(browser): use button release for forward/back navigation
Also check if mouse pointer is within the webview Fixes #1564.
1 parent b8066c5 commit 76187dc

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/libs/browser/webview.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,16 +206,23 @@ void WebView::contextMenuEvent(QContextMenuEvent *event)
206206
m_contextMenu->popup(event->globalPos());
207207
}
208208

209-
bool WebView::handleMousePressEvent(QMouseEvent *event)
209+
bool WebView::handleMouseReleaseEvent(QMouseEvent *event)
210210
{
211211
switch (event->button()) {
212212
case Qt::BackButton:
213-
back();
213+
// Check if cursor is still inside webview.
214+
if (rect().contains(event->pos())) {
215+
back();
216+
}
217+
214218
event->accept();
215219
return true;
216220

217221
case Qt::ForwardButton:
218-
forward();
222+
if (rect().contains(event->pos())) {
223+
forward();
224+
}
225+
219226
event->accept();
220227
return true;
221228

@@ -251,8 +258,8 @@ bool WebView::eventFilter(QObject *watched, QEvent *event)
251258
{
252259
if (watched->parent() == this) {
253260
switch (event->type()) {
254-
case QEvent::MouseButtonPress:
255-
if (handleMousePressEvent(static_cast<QMouseEvent *>(event))) {
261+
case QEvent::MouseButtonRelease:
262+
if (handleMouseReleaseEvent(static_cast<QMouseEvent *>(event))) {
256263
return true;
257264
}
258265

src/libs/browser/webview.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public slots:
5757
void contextMenuEvent(QContextMenuEvent *event) override;
5858

5959
private:
60-
bool handleMousePressEvent(QMouseEvent *event);
60+
bool handleMouseReleaseEvent(QMouseEvent *event);
6161
bool handleWheelEvent(QWheelEvent *event);
6262

6363
QMenu *m_contextMenu = nullptr;

0 commit comments

Comments
 (0)