From d09b1030b814124a0ffb23e7901bb754eec8e5e6 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Thu, 21 Jan 2016 11:28:31 -0500 Subject: [PATCH] check siginfo si_code to verify that SIGUSR2 comes from user When VT switching away and back, the kernel uses SIGUSR1 and SIGUSR2 to notify us of a vt switch event. That same signal was being trapped here to toggle display of the 'fps' window. If we check the signal's si_code, we can tell if this signal came from the kernel (as in vt switch) or from the user (as is sent in 'kill'). This fixes the issue of VT-switching back and forth under DRM would cause the compositor 'fps' display to appear. Signed-off-by: Chris Michael --- src/bin/e_comp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 9facdd057..4bce85d22 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -817,6 +817,12 @@ _e_comp_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Key * static Eina_Bool _e_comp_signal_user(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Signal_User *ev) { + siginfo_t sig; + + sig = ev->data; + /* anything sent via 'kill' will set this code to SI_USER */ + if (sig.si_code != SI_USER) return ECORE_CALLBACK_PASS_ON; + if (ev->number == 1) { // e uses this to pop up config panel