1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 17:52:10 +02:00

[SiteIcon] Don't set :pressed state when popup is not shown

Popup will not be shown eg. on qupzilla: sites
This commit is contained in:
nowrep 2014-03-25 16:53:41 +01:00
parent fcfe2999f7
commit a284a7c864
2 changed files with 12 additions and 6 deletions

View File

@ -97,11 +97,15 @@ void SiteIcon::mouseReleaseEvent(QMouseEvent* e)
// Mouse release event is restoring Down state
// So we pause updates to prevent flicker
bool activated = e->button() == Qt::LeftButton && rect().contains(e->pos());
bool activated = false;
if (e->button() == Qt::LeftButton && rect().contains(e->pos())) {
// Popup may not be always shown, eg. on qupzilla: pages
activated = showPopup();
}
if (activated) {
setUpdatesEnabled(false);
showPopup();
}
ToolButton::mouseReleaseEvent(e);
@ -147,16 +151,16 @@ void SiteIcon::mouseMoveEvent(QMouseEvent* e)
setDown(false);
}
void SiteIcon::showPopup()
bool SiteIcon::showPopup()
{
if (!m_view || !m_window) {
return;
return false;
}
QUrl url = m_view->url();
if (url.isEmpty() || url.scheme() == QLatin1String("qupzilla")) {
return;
return false;
}
setDown(true);
@ -165,4 +169,6 @@ void SiteIcon::showPopup()
info->showAt(parentWidget());
connect(info, SIGNAL(destroyed()), this, SLOT(popupClosed()));
return true;
}

View File

@ -47,7 +47,7 @@ private:
void mouseReleaseEvent(QMouseEvent* e);
void mouseMoveEvent(QMouseEvent* e);
void showPopup();
bool showPopup();
BrowserWindow* m_window;
LocationBar* m_locationBar;