Last active
December 14, 2015 18:19
-
-
Save Blei/5128541 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 995bc862ee398257ffd97d48d6d62fcd9107db2c Mon Sep 17 00:00:00 2001 | |
From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= <blei42@gmail.com> | |
Date: Sun, 10 Mar 2013 14:12:49 +0100 | |
Subject: [PATCH 1/2] compositor: remove unused field option_idle_time | |
--- | |
src/compositor.c | 1 - | |
src/compositor.h | 3 +-- | |
2 files changed, 1 insertion(+), 3 deletions(-) | |
diff --git a/src/compositor.c b/src/compositor.c | |
index a2860fd..7df9658 100644 | |
--- a/src/compositor.c | |
+++ b/src/compositor.c | |
@@ -3497,7 +3497,6 @@ int main(int argc, char *argv[]) | |
sigaction(SIGSEGV, &segv_action, NULL); | |
segv_compositor = ec; | |
- ec->option_idle_time = idle_time; | |
ec->idle_time = idle_time; | |
setenv("WAYLAND_DISPLAY", socket_name, 1); | |
diff --git a/src/compositor.h b/src/compositor.h | |
index 4a0c1e3..5d939ab 100644 | |
--- a/src/compositor.h | |
+++ b/src/compositor.h | |
@@ -322,8 +322,7 @@ struct weston_compositor { | |
uint32_t state; | |
struct wl_event_source *idle_source; | |
uint32_t idle_inhibit; | |
- int option_idle_time; /* default timeout, s */ | |
- int idle_time; /* effective timeout, s */ | |
+ int idle_time; /* timeout, s */ | |
/* Repaint state. */ | |
struct wl_array vertices; | |
-- | |
1.8.1.5 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From df30808a98ea83f6095fde68b89c4cd5a6da32de Mon Sep 17 00:00:00 2001 | |
From: =?UTF-8?q?Philipp=20Br=C3=BCschweiler?= <blei42@gmail.com> | |
Date: Sun, 10 Mar 2013 14:55:31 +0100 | |
Subject: [PATCH 2/2] compositor: turn off the idle timer when sleeping | |
Also updates the drm, fbdev and rpi backend to use | |
weston_compositor_set_sleeping() and not set the state manually. | |
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=61910 (rpi backend | |
untested). | |
v2: don't set DPMS state when switching VT. | |
--- | |
src/compositor-drm.c | 2 +- | |
src/compositor-fbdev.c | 2 +- | |
src/compositor-rpi.c | 4 ++-- | |
src/compositor.c | 12 +++++++++++- | |
src/compositor.h | 2 ++ | |
5 files changed, 17 insertions(+), 5 deletions(-) | |
diff --git a/src/compositor-drm.c b/src/compositor-drm.c | |
index d933c92..59d5694 100644 | |
--- a/src/compositor-drm.c | |
+++ b/src/compositor-drm.c | |
@@ -2027,7 +2027,7 @@ vt_func(struct weston_compositor *compositor, int event) | |
compositor->focus = 0; | |
ec->prev_state = compositor->state; | |
- compositor->state = WESTON_COMPOSITOR_SLEEPING; | |
+ weston_compositor_set_sleeping(compositor); | |
/* If we have a repaint scheduled (either from a | |
* pending pageflip or the idle handler), make sure we | |
diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c | |
index 070d187..2a01078 100644 | |
--- a/src/compositor-fbdev.c | |
+++ b/src/compositor-fbdev.c | |
@@ -791,7 +791,7 @@ vt_func(struct weston_compositor *base, int event) | |
compositor->base.focus = 0; | |
compositor->prev_state = compositor->base.state; | |
- compositor->base.state = WESTON_COMPOSITOR_SLEEPING; | |
+ weston_compositor_set_sleeping(&compositor->base); | |
/* If we have a repaint scheduled (from the idle handler), make | |
* sure we cancel that so we don't try to pageflip when we're | |
diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c | |
index d3767b9..8163d85 100644 | |
--- a/src/compositor-rpi.c | |
+++ b/src/compositor-rpi.c | |
@@ -577,7 +577,7 @@ rpi_element_dmx_move(struct rpi_element *element, | |
&dst_rect, | |
&src_rect, | |
DISPMANX_NO_HANDLE, | |
- DISPMANX_NO_ROTATE); | |
+ VC_IMAGE_ROT0); | |
DBG("element %p move\n", element); | |
} | |
@@ -1381,7 +1381,7 @@ vt_func(struct weston_compositor *base, int event) | |
compositor->base.focus = 0; | |
compositor->prev_state = compositor->base.state; | |
- compositor->base.state = WESTON_COMPOSITOR_SLEEPING; | |
+ weston_compositor_set_sleeping(&compositor->base); | |
/* If we have a repaint scheduled (either from a | |
* pending pageflip or the idle handler), make sure we | |
diff --git a/src/compositor.c b/src/compositor.c | |
index 7df9658..5041f19 100644 | |
--- a/src/compositor.c | |
+++ b/src/compositor.c | |
@@ -1619,12 +1619,22 @@ weston_compositor_wake(struct weston_compositor *compositor) | |
} | |
WL_EXPORT void | |
-weston_compositor_sleep(struct weston_compositor *compositor) | |
+weston_compositor_set_sleeping(struct weston_compositor *compositor) | |
{ | |
if (compositor->state == WESTON_COMPOSITOR_SLEEPING) | |
return; | |
+ wl_event_source_timer_update(compositor->idle_source, 0); | |
compositor->state = WESTON_COMPOSITOR_SLEEPING; | |
+} | |
+ | |
+WL_EXPORT void | |
+weston_compositor_sleep(struct weston_compositor *compositor) | |
+{ | |
+ if (compositor->state == WESTON_COMPOSITOR_SLEEPING) | |
+ return; | |
+ | |
+ weston_compositor_set_sleeping(compositor); | |
weston_compositor_dpms(compositor, WESTON_DPMS_OFF); | |
} | |
diff --git a/src/compositor.h b/src/compositor.h | |
index 5d939ab..0a9eb81 100644 | |
--- a/src/compositor.h | |
+++ b/src/compositor.h | |
@@ -592,6 +592,8 @@ weston_compositor_unlock(struct weston_compositor *compositor); | |
void | |
weston_compositor_wake(struct weston_compositor *compositor); | |
void | |
+weston_compositor_set_sleeping(struct weston_compositor *compositor); | |
+void | |
weston_compositor_sleep(struct weston_compositor *compositor); | |
void | |
weston_compositor_update_drag_surfaces(struct weston_compositor *compositor); | |
-- | |
1.8.1.5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment