Changeset View
Changeset View
Standalone View
Standalone View
pointer_input.cpp
Show First 20 Lines • Show All 308 Lines • ▼ Show 20 Line(s) | 308 | if (!internalClients.isEmpty() && change) { | |||
---|---|---|---|---|---|
309 | auto it = internalClients.end(); | 309 | auto it = internalClients.end(); | ||
310 | do { | 310 | do { | ||
311 | it--; | 311 | it--; | ||
312 | if (QWindow *w = (*it)->internalWindow()) { | 312 | if (QWindow *w = (*it)->internalWindow()) { | ||
313 | if (!w->isVisible()) { | 313 | if (!w->isVisible()) { | ||
314 | continue; | 314 | continue; | ||
315 | } | 315 | } | ||
316 | if (w->geometry().contains(m_pos.toPoint())) { | 316 | if (w->geometry().contains(m_pos.toPoint())) { | ||
317 | // check input mask | ||||
318 | const QRegion mask = w->mask().translated(w->geometry().topLeft()); | ||||
319 | if (!mask.isEmpty() && !mask.contains(m_pos.toPoint())) { | ||||
320 | continue; | ||||
321 | } | ||||
317 | m_internalWindow = QPointer<QWindow>(w); | 322 | m_internalWindow = QPointer<QWindow>(w); | ||
318 | found = true; | 323 | found = true; | ||
319 | break; | 324 | break; | ||
320 | } | 325 | } | ||
321 | } | 326 | } | ||
322 | } while (it != internalClients.begin()); | 327 | } while (it != internalClients.begin()); | ||
323 | if (!found) { | 328 | if (!found) { | ||
324 | needsReset = true; | 329 | needsReset = true; | ||
▲ Show 20 Lines • Show All 582 Lines • Show Last 20 Lines |