summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cpmichael@osg.samsung.com>2016-01-21 11:28:31 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-02-02 13:35:28 -0500
commit18d59156cc9dd4d8b469190e0162e533bdfb44c5 (patch)
treebdbefde4ef09af3d67a22eddde393871f9922ceb
parent7ae3d943083536725dd0081a929140a2902875c6 (diff)
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 <cpmichael@osg.samsung.com>
-rw-r--r--src/bin/e_comp.c6
1 files changed, 6 insertions, 0 deletions
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 *
817static Eina_Bool 817static Eina_Bool
818_e_comp_signal_user(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Signal_User *ev) 818_e_comp_signal_user(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Signal_User *ev)
819{ 819{
820 siginfo_t sig;
821
822 sig = ev->data;
823 /* anything sent via 'kill' will set this code to SI_USER */
824 if (sig.si_code != SI_USER) return ECORE_CALLBACK_PASS_ON;
825
820 if (ev->number == 1) 826 if (ev->number == 1)
821 { 827 {
822 // e uses this to pop up config panel 828 // e uses this to pop up config panel