From c13f47db221d1dc427d1c64e0785d02010daf243 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 19 Apr 2012 13:57:19 +0000 Subject: [PATCH] fix infinite self-feeding loop with desklock... tnx yoz! :-P :) SVN revision: 70334 --- src/bin/e_desklock.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c index 882863b05..036fe65ca 100644 --- a/src/bin/e_desklock.c +++ b/src/bin/e_desklock.c @@ -462,7 +462,7 @@ _e_desklock_cb_window_stack(void *data __UNUSED__, int type, void *event) { - Ecore_X_Window win; + Ecore_X_Window win, win2 = 0; E_Desklock_Popup_Data *edp; Eina_List *l; Eina_Bool raise_win = EINA_TRUE; @@ -470,7 +470,10 @@ _e_desklock_cb_window_stack(void *data __UNUSED__, if (type == ECORE_X_EVENT_WINDOW_STACK) win = ((Ecore_X_Event_Window_Stack*) event)->event_win; else if (type == ECORE_X_EVENT_WINDOW_CONFIGURE) - win = ((Ecore_X_Event_Window_Configure*) event)->event_win; + { + win = ((Ecore_X_Event_Window_Configure*) event)->event_win; + win2 = ((Ecore_X_Event_Window_Configure*) event)->win; + } else if (type == ECORE_X_EVENT_WINDOW_CREATE) win = ((Ecore_X_Event_Window_Create*) event)->win; else @@ -478,7 +481,8 @@ _e_desklock_cb_window_stack(void *data __UNUSED__, EINA_LIST_FOREACH(edd->elock_wnd_list, l, edp) { - if (win == edp->popup_wnd->evas_win) + if ((win == edp->popup_wnd->evas_win) || + ((win2) && (win2 == edp->popup_wnd->evas_win))) { raise_win = EINA_FALSE; break;