forked from enlightenment/enlightenment
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>
This commit is contained in:
parent
7ae3d94308
commit
18d59156cc
|
@ -817,6 +817,12 @@ _e_comp_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Key *
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_e_comp_signal_user(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Signal_User *ev)
|
_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)
|
if (ev->number == 1)
|
||||||
{
|
{
|
||||||
// e uses this to pop up config panel
|
// e uses this to pop up config panel
|
||||||
|
|
Loading…
Reference in New Issue