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
This commit is contained in:
parent
29946be29f
commit
4e32ea20d6
1 changed files with 6 additions and 3 deletions
|
@ -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()) {
|
||||
|
|
Loading…
Reference in a new issue