aboutsummaryrefslogtreecommitdiffstats
path: root/community/mce/0006-Ambient-Mode-Exit-ambient-mode-when-touch-is-detecte.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/mce/0006-Ambient-Mode-Exit-ambient-mode-when-touch-is-detecte.patch')
-rw-r--r--community/mce/0006-Ambient-Mode-Exit-ambient-mode-when-touch-is-detecte.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/community/mce/0006-Ambient-Mode-Exit-ambient-mode-when-touch-is-detecte.patch b/community/mce/0006-Ambient-Mode-Exit-ambient-mode-when-touch-is-detecte.patch
new file mode 100644
index 00000000000..f20e661ce86
--- /dev/null
+++ b/community/mce/0006-Ambient-Mode-Exit-ambient-mode-when-touch-is-detecte.patch
@@ -0,0 +1,61 @@
+From 1ee2bd9009608370d02ab35510109e88efcf003d Mon Sep 17 00:00:00 2001
+From: MagneFire <IDaNLContact@gmail.com>
+Date: Sun, 7 Mar 2021 23:07:09 +0100
+Subject: [PATCH] Ambient Mode: Exit ambient mode when touch is detected.
+
+---
+ modules/display.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/modules/display.c b/modules/display.c
+index 85d0df3..3c50973 100644
+--- a/modules/display.c
++++ b/modules/display.c
+@@ -413,6 +413,7 @@ static bool mdy_shutdown_in_progress(void);
+ * ------------------------------------------------------------------------- */
+
+ static void mdy_datapipe_ambient_light_level_cb(gconstpointer data);;
++static void mdy_datapipe_touch_detected_cb(gconstpointer data);
+ static void mdy_datapipe_packagekit_locked_cb(gconstpointer data);;
+ static void mdy_datapipe_system_state_cb(gconstpointer data);
+ static void mdy_datapipe_submode_cb(gconstpointer data);
+@@ -1767,6 +1768,28 @@ EXIT:
+ return;
+ }
+
++/**
++ * Handle touchscreen detections.
++ *
++ * @param data The touch pressed/unpressed in a pointer
++ */
++static void mdy_datapipe_touch_detected_cb(gconstpointer data)
++{
++ gboolean touch_detected = GPOINTER_TO_INT(data);
++
++ /* Log by default as it might help analyzing lpm problems */
++ mce_log(LL_DEBUG, "touch_detected = %d", touch_detected);
++
++ switch( display_state_curr ) {
++ case MCE_DISPLAY_LPM_ON:
++ /* Screen is in LPM mode, exit LPM mode when touch is detected. */
++ mce_datapipe_request_display_state(MCE_DISPLAY_ON);
++ break;
++ default:
++ break;
++ }
++}
++
+ /** Keypad slide input state; assume closed */
+ static cover_state_t keyboard_slide_input_state = COVER_CLOSED;
+
+@@ -2276,6 +2299,10 @@ static datapipe_handler_t mdy_datapipe_handlers[] =
+ .datapipe = &light_sensor_filtered_pipe,
+ .output_cb = mdy_datapipe_ambient_light_level_cb,
+ },
++ {
++ .datapipe = &touch_detected_pipe,
++ .output_cb = mdy_datapipe_touch_detected_cb,
++ },
+ {
+ .datapipe = &packagekit_locked_pipe,
+ .output_cb = mdy_datapipe_packagekit_locked_cb,