only track mouse movement when zones > 1, fix login box show/hide for multizone+current
SVN revision: 73937
This commit is contained in:
parent
b098439495
commit
09be22e12f
|
@ -30,6 +30,7 @@ struct _E_Desklock_Data
|
||||||
Eina_List *elock_wnd_list;
|
Eina_List *elock_wnd_list;
|
||||||
Ecore_X_Window elock_wnd;
|
Ecore_X_Window elock_wnd;
|
||||||
Eina_List *handlers;
|
Eina_List *handlers;
|
||||||
|
Ecore_Event_Handler *move_handler;
|
||||||
Ecore_X_Window elock_grab_break_wnd;
|
Ecore_X_Window elock_grab_break_wnd;
|
||||||
char passwd[PASSWD_LEN];
|
char passwd[PASSWD_LEN];
|
||||||
int state;
|
int state;
|
||||||
|
@ -296,13 +297,7 @@ works:
|
||||||
_e_desklock_cb_zone_move_resize, NULL));
|
_e_desklock_cb_zone_move_resize, NULL));
|
||||||
|
|
||||||
if ((total_zone_num > 1) && (e_config->desklock_login_box_zone == -2))
|
if ((total_zone_num > 1) && (e_config->desklock_login_box_zone == -2))
|
||||||
{
|
edd->move_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, _e_desklock_cb_mouse_move, NULL);
|
||||||
edd->handlers =
|
|
||||||
eina_list_append(edd->handlers,
|
|
||||||
ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
|
|
||||||
_e_desklock_cb_mouse_move,
|
|
||||||
NULL));
|
|
||||||
}
|
|
||||||
|
|
||||||
_e_desklock_passwd_update();
|
_e_desklock_passwd_update();
|
||||||
|
|
||||||
|
@ -342,6 +337,7 @@ e_desklock_hide(void)
|
||||||
_e_desklock_popup_free(edp);
|
_e_desklock_popup_free(edp);
|
||||||
|
|
||||||
E_FREE_LIST(edd->handlers, ecore_event_handler_del);
|
E_FREE_LIST(edd->handlers, ecore_event_handler_del);
|
||||||
|
if (edd->move_handler) ecore_event_handler_del(edd->move_handler);
|
||||||
|
|
||||||
e_grabinput_release(edd->elock_wnd, edd->elock_wnd);
|
e_grabinput_release(edd->elock_wnd, edd->elock_wnd);
|
||||||
ecore_x_window_free(edd->elock_wnd);
|
ecore_x_window_free(edd->elock_wnd);
|
||||||
|
@ -568,6 +564,8 @@ _e_desklock_cb_zone_add(void *data __UNUSED__,
|
||||||
{
|
{
|
||||||
E_Event_Zone_Add *ev = event;
|
E_Event_Zone_Add *ev = event;
|
||||||
if (!edd) return ECORE_CALLBACK_PASS_ON;
|
if (!edd) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
if ((!edd->move_handler) && (e_config->desklock_login_box_zone == -2))
|
||||||
|
edd->move_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, _e_desklock_cb_mouse_move, NULL);
|
||||||
if (!_e_desklock_popup_find(ev->zone)) _e_desklock_popup_add(ev->zone);
|
if (!_e_desklock_popup_find(ev->zone)) _e_desklock_popup_add(ev->zone);
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
@ -580,6 +578,9 @@ _e_desklock_cb_zone_del(void *data __UNUSED__,
|
||||||
E_Event_Zone_Del *ev = event;
|
E_Event_Zone_Del *ev = event;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
if (!edd) return ECORE_CALLBACK_PASS_ON;
|
if (!edd) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
if ((eina_list_count(e_container_current_get(e_manager_current_get())->zones) == 1) && (e_config->desklock_login_box_zone == -2))
|
||||||
|
edd->move_handler = ecore_event_handler_del(edd->move_handler);
|
||||||
|
|
||||||
l = _e_desklock_popup_find(ev->zone);
|
l = _e_desklock_popup_find(ev->zone);
|
||||||
if (l)
|
if (l)
|
||||||
{
|
{
|
||||||
|
@ -662,16 +663,17 @@ _e_desklock_cb_mouse_move(void *data __UNUSED__, int type __UNUSED__, void *even
|
||||||
{
|
{
|
||||||
if (!edp) continue;
|
if (!edp) continue;
|
||||||
|
|
||||||
if (edp->popup_wnd->zone == last_active_zone)
|
if (edp->popup_wnd->zone != current_zone)
|
||||||
if (edp->login_box) evas_object_hide(edp->login_box);
|
|
||||||
else if (edp->popup_wnd->zone == current_zone)
|
|
||||||
{
|
{
|
||||||
if (edp->login_box)
|
if (edp->login_box) evas_object_hide(edp->login_box);
|
||||||
evas_object_show(edp->login_box);
|
continue;
|
||||||
else
|
|
||||||
_e_desklock_login_box_add(current_zone);
|
|
||||||
}
|
}
|
||||||
|
if (edp->login_box)
|
||||||
|
evas_object_show(edp->login_box);
|
||||||
|
else
|
||||||
|
_e_desklock_login_box_add(edp);
|
||||||
}
|
}
|
||||||
|
_e_desklock_passwd_update();
|
||||||
last_active_zone = current_zone;
|
last_active_zone = current_zone;
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
@ -692,7 +694,7 @@ _e_desklock_passwd_update(void)
|
||||||
*pp = 0;
|
*pp = 0;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(edd->elock_wnd_list, l, edp)
|
EINA_LIST_FOREACH(edd->elock_wnd_list, l, edp)
|
||||||
edje_object_part_text_set(edp->login_box, "e.text.password",
|
if (edp->login_box) edje_object_part_text_set(edp->login_box, "e.text.password",
|
||||||
passwd_hidden);
|
passwd_hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue