diff options
Diffstat (limited to 'src/events/Monitors.cpp')
-rw-r--r-- | src/events/Monitors.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 4414187a..116a6f32 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -168,6 +168,10 @@ void Events::listener_monitorFrame(void* owner, void* data) { } } + // check if we have a solitary client. If so, reject any draws not queued by our client (passed in data) + if (PMONITOR->solitaryClient && data != PMONITOR->solitaryClient && PMONITOR->solitaryClient->shouldImmediate()) + return; + timespec now; clock_gettime(CLOCK_MONOTONIC, &now); @@ -188,6 +192,12 @@ void Events::listener_monitorFrame(void* owner, void* data) { return; } + if (PMONITOR->solitaryClient) { + // force damage + hasChanged = true; + pixman_region32_union_rect(&damage, &damage, 0, 0, (int)PMONITOR->vecTransformedSize.x * 10, (int)PMONITOR->vecTransformedSize.y * 10); + } + // we need to cleanup fading out when rendering the appropriate context g_pCompositor->cleanupFadingOut(PMONITOR->ID); |