improvements for containsMouse code style

pull/3/head
Michail Vourlakos 6 years ago
parent b2abb99f2c
commit 05c85dcd6d

@ -214,7 +214,9 @@ void ScreenEdgeGhostWindow::setupWaylandIntegration()
bool ScreenEdgeGhostWindow::event(QEvent *e)
{
if (e->type() == QEvent::Enter || e->type() == QEvent::DragEnter) {
emit edgeTriggered();
emit containsMouseChanged(true);
} else if (e->type() == QEvent::Leave || e->type() == QEvent::DragLeave) {
emit containsMouseChanged(false);
}
return QQuickView::event(e);

@ -71,7 +71,7 @@ public:
KWayland::Client::PlasmaShellSurface *surface();
signals:
void edgeTriggered();
void containsMouseChanged(bool contains);
protected:
bool event(QEvent *ev) override;

@ -352,8 +352,9 @@ inline void VisibilityManagerPrivate::raiseDock(bool raise)
if (hideNow) {
hideNow = false;
emit q->mustBeHide(VisibilityManager::QPrivateSignal{});
} else if (!timerHide.isActive())
} else if (!timerHide.isActive()) {
timerHide.start();
}
}
}
@ -624,28 +625,31 @@ inline void VisibilityManagerPrivate::restoreConfig()
});
}
void VisibilityManagerPrivate::viewEventManager(QEvent *ev)
void VisibilityManagerPrivate::setContainsMouse(bool contains)
{
switch (ev->type()) {
case QEvent::Enter:
if (containsMouse)
break;
if (containsMouse == contains) {
return;
}
containsMouse = true;
emit q->containsMouseChanged();
containsMouse = contains;
emit q->containsMouseChanged();
if (mode != Dock::AlwaysVisible)
raiseDock(true);
if (contains && mode != Dock::AlwaysVisible) {
raiseDock(true);
}
}
void VisibilityManagerPrivate::viewEventManager(QEvent *ev)
{
switch (ev->type()) {
case QEvent::Enter:
setContainsMouse(true);
break;
case QEvent::Leave:
if (!containsMouse)
break;
containsMouse = false;
emit q->containsMouseChanged();
setContainsMouse(false);
updateHiddenState();
break;
case QEvent::DragEnter:
@ -1003,8 +1007,10 @@ void VisibilityManagerPrivate::createEdgeGhostWindow()
wm->setDockExtraFlags(*edgeGhostWindow);
connect(edgeGhostWindow, &ScreenEdgeGhostWindow::edgeTriggered, this, [this]() {
emit this->q->mustBeShown(VisibilityManager::QPrivateSignal{});
connect(edgeGhostWindow, &ScreenEdgeGhostWindow::containsMouseChanged, this, [ = ](bool contains) {
if (contains) {
emit this->q->mustBeShown(VisibilityManager::QPrivateSignal{});
}
});
connectionsKWinEdges[0] = connect(wm, &WindowSystem::currentActivityChanged,

@ -39,6 +39,7 @@ public:
void setRaiseOnDesktop(bool enable);
void setRaiseOnActivity(bool enable);
void setContainsMouse(bool contains);
void setIsHidden(bool isHidden);
void setBlockHiding(bool blockHiding);
void setTimerShow(int msec);

Loading…
Cancel
Save