aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/events/Monitors.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/Monitors.cpp')
-rw-r--r--src/events/Monitors.cpp10
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);