#include "window_mgr.h"
#include "util.h"
-#include "lock_pwd_util.h"
#define STR_ATOM_PANEL_SCROLLABLE_STATE "_E_MOVE_PANEL_SCROLLABLE_STATE"
-static void _pwd_transient_set(Ecore_X_Window win, Ecore_X_Window for_win)
-{
- _W("%p is transient for %p", win, for_win);
-
- ecore_x_icccm_transient_for_set(win, for_win);
-}
-
-
-
-static void _pwd_transient_unset(Ecore_X_Window xwin)
-{
- ret_if(!xwin);
-
- _W("%p is not transient", xwin);
- ecore_x_icccm_transient_for_unset(xwin);
-}
-
-
-
-Eina_Bool window_mgr_pwd_transient_set(void *data)
-{
- Evas_Object *pwd_win = NULL;
- Ecore_X_Window pwd_x_win;
- lockw_data *lockw = (lockw_data *) data;
- retv_if(!lockw, EINA_FALSE);
-
- pwd_win = lock_pwd_util_win_get();
- retv_if(!pwd_win, EINA_FALSE);
-
- pwd_x_win = elm_win_xwindow_get(pwd_win);
- retv_if(!pwd_x_win, EINA_FALSE);
-
- retv_if(!lockw->lock_x_window, EINA_FALSE);
-
- /* unset transient */
- _pwd_transient_unset(lockw->lock_x_window);
-
- /* set transient */
- _pwd_transient_set(lockw->lock_x_window, pwd_x_win);
-
- return EINA_TRUE;
-}
-
-
-
Eina_Bool window_mgr_set_prop(lockw_data * data, int lock_app_pid, void *event)
{
Ecore_X_Event_Window_Create *e = event;
ecore_x_netwm_window_type_set(user_window, ECORE_X_WINDOW_TYPE_NOTIFICATION);
utilx_set_system_notification_level(ecore_x_display_get(), user_window, UTILX_NOTIFICATION_LEVEL_NORMAL);
utilx_set_window_opaque_state(ecore_x_display_get(), user_window, UTILX_OPAQUE_STATE_ON);
-
- /* set transient */
- if (!window_mgr_pwd_transient_set(lockw)) {
- _E("Failed to set transient");
- }
-
return EINA_TRUE;
}
}
{
Ecore_X_Window root_window;
- /* unset transient */
- _pwd_transient_unset(lockw->lock_x_window);
-
/* delete getting window x event */
root_window = ecore_x_window_root_first_get();
ecore_x_window_client_sniff(root_window);
free(lockw);
}
#endif
-
-Evas_Object *window_mgr_pwd_lock_win_create(void)
-{
- Evas_Object *win = elm_win_add(NULL, "LOCKSCREEN_PWD", ELM_WIN_NOTIFICATION);
- retv_if(!win, NULL);
-
- elm_win_alpha_set(win, EINA_TRUE);
- elm_win_borderless_set(win, EINA_TRUE);
- elm_win_autodel_set(win, EINA_TRUE);
- elm_win_role_set(win, "no-dim");
-
-#ifdef HAVE_X11
- Ecore_X_Window xwin = elm_win_xwindow_get(win);
- if (xwin) {
- ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION);
- utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_NORMAL);
- utilx_set_window_opaque_state(ecore_x_display_get(), xwin, UTILX_OPAQUE_STATE_ON);
-
- Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = ecore_x_atom_get(STR_ATOM_PANEL_SCROLLABLE_STATE);
- unsigned int val[3] = { 0, };
-
- ecore_x_window_prop_card32_set(xwin, ATOM_PANEL_SCROLLABLE_STATE, val, 3);
- }
-#endif
-
-
- return win;
-}