aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/drm/drm.c10
-rw-r--r--rootston/output.c2
-rw-r--r--types/wlr_output.c5
3 files changed, 10 insertions, 7 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index c3ff0d55..b9aae948 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -192,6 +192,9 @@ static bool wlr_drm_connector_make_current(struct wlr_output *output,
static bool wlr_drm_connector_swap_buffers(struct wlr_output *output) {
struct wlr_drm_connector *conn = (struct wlr_drm_connector *)output;
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
+ if (!drm->session->active) {
+ return false;
+ }
struct wlr_drm_crtc *crtc = conn->crtc;
if (!crtc) {
@@ -516,6 +519,10 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output,
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
struct wlr_drm_renderer *renderer = &drm->renderer;
+ if (!drm->session->active) {
+ return false;
+ }
+
struct wlr_drm_crtc *crtc = conn->crtc;
if (!crtc) {
return false;
@@ -644,6 +651,9 @@ static bool wlr_drm_connector_move_cursor(struct wlr_output *output,
int x, int y) {
struct wlr_drm_connector *conn = (struct wlr_drm_connector *)output;
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
+ if (!drm->session->active) {
+ return false;
+ }
if (!conn->crtc) {
return false;
}
diff --git a/rootston/output.c b/rootston/output.c
index d4cd1efd..a31462be 100644
--- a/rootston/output.c
+++ b/rootston/output.c
@@ -419,8 +419,6 @@ static void render_output(struct roots_output *output) {
goto renderer_end;
}
- wlr_renderer_clear(output->desktop->server->renderer, 1, 1, 1, 1);
-
int nrects;
pixman_box32_t *rects = pixman_region32_rectangles(&damage, &nrects);
for (int i = 0; i < nrects; ++i) {
diff --git a/types/wlr_output.c b/types/wlr_output.c
index 5676b0a8..1f48f86d 100644
--- a/types/wlr_output.c
+++ b/types/wlr_output.c
@@ -184,11 +184,6 @@ void wlr_output_update_mode(struct wlr_output *output,
void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width,
int32_t height, int32_t refresh) {
- if (output->width == width && output->height == height &&
- output->refresh == refresh) {
- return;
- }
-
output->width = width;
output->height = height;
wlr_output_update_matrix(output);