mirror of
https://github.com/zealdocs/zeal.git
synced 2024-11-22 21:53:03 +03:00
fix(browser): use button release for forward/back navigation
Also check if mouse pointer is within the webview Fixes #1564.
This commit is contained in:
parent
b8066c5540
commit
76187dc7d2
@ -206,16 +206,23 @@ void WebView::contextMenuEvent(QContextMenuEvent *event)
|
||||
m_contextMenu->popup(event->globalPos());
|
||||
}
|
||||
|
||||
bool WebView::handleMousePressEvent(QMouseEvent *event)
|
||||
bool WebView::handleMouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
switch (event->button()) {
|
||||
case Qt::BackButton:
|
||||
// Check if cursor is still inside webview.
|
||||
if (rect().contains(event->pos())) {
|
||||
back();
|
||||
}
|
||||
|
||||
event->accept();
|
||||
return true;
|
||||
|
||||
case Qt::ForwardButton:
|
||||
if (rect().contains(event->pos())) {
|
||||
forward();
|
||||
}
|
||||
|
||||
event->accept();
|
||||
return true;
|
||||
|
||||
@ -251,8 +258,8 @@ bool WebView::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
if (watched->parent() == this) {
|
||||
switch (event->type()) {
|
||||
case QEvent::MouseButtonPress:
|
||||
if (handleMousePressEvent(static_cast<QMouseEvent *>(event))) {
|
||||
case QEvent::MouseButtonRelease:
|
||||
if (handleMouseReleaseEvent(static_cast<QMouseEvent *>(event))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ protected:
|
||||
void contextMenuEvent(QContextMenuEvent *event) override;
|
||||
|
||||
private:
|
||||
bool handleMousePressEvent(QMouseEvent *event);
|
||||
bool handleMouseReleaseEvent(QMouseEvent *event);
|
||||
bool handleWheelEvent(QWheelEvent *event);
|
||||
|
||||
QMenu *m_contextMenu = nullptr;
|
||||
|
Loading…
Reference in New Issue
Block a user