Commit 4e32ea20 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii
Browse files

Disable screen edge approach area if the edge is blocked

Currently, if the screen edge is blocked and the cursor is inside its
approach geometry, kwin is going to paint screen edge glow.

It doesn't look good and it can have some performance penalties with
fullscreen video games because the direct scanout path will be blocked.

BUG: 454503
parent 29946be2
Pipeline #190363 passed with stage
in 25 minutes and 52 seconds
......@@ -583,6 +583,9 @@ void Edge::checkBlocking()
}
const bool wasTouch = activatesForTouchGesture();
m_blocked = newValue;
if (m_blocked && m_approaching) {
stopApproaching();
}
if (wasTouch != activatesForTouchGesture()) {
Q_EMIT activatesForTouchGestureChanged();
}
......@@ -1430,7 +1433,7 @@ void ScreenEdges::check(const QPoint &pos, const QDateTime &now, bool forceNoPus
{
bool activatedForClient = false;
for (auto it = m_edges.begin(); it != m_edges.end(); ++it) {
if (!(*it)->isReserved()) {
if (!(*it)->isReserved() || (*it)->isBlocked()) {
continue;
}
if (!(*it)->activatesForPointer()) {
......@@ -1460,7 +1463,7 @@ bool ScreenEdges::isEntered(QMouseEvent *event)
bool activatedForClient = false;
for (auto it = m_edges.begin(); it != m_edges.end(); ++it) {
Edge *edge = *it;
if (!edge->isReserved()) {
if (!edge->isReserved() || edge->isBlocked()) {
continue;
}
if (!edge->activatesForPointer()) {
......@@ -1504,7 +1507,7 @@ bool ScreenEdges::handleEnterNotifiy(xcb_window_t window, const QPoint &point, c
if (!edge || edge->window() == XCB_WINDOW_NONE) {
continue;
}
if (!edge->isReserved()) {
if (!edge->isReserved() || edge->isBlocked()) {
continue;
}
if (!edge->activatesForPointer()) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment