Implement Simple password lockscreen on RSA.
[apps/home/lockscreen.git] / src / util.c
index cff67ca..22fa679 100755 (executable)
@@ -485,9 +485,9 @@ static Eina_Bool _init_widget_cb(void *data)
                noti_process(ad);
        }
 
-       evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb_s, ad);
-       evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb_s, ad);
-       evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb_s, ad);
+       //evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb_s, ad);
+       //evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb_s, ad);
+       //evas_object_event_callback_add(ad->event_bg, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb_s, ad);
        evas_object_event_callback_add(ad->slider, EVAS_CALLBACK_MOUSE_DOWN, _slider_down_cb, ad);
        evas_object_event_callback_add(ad->slider, EVAS_CALLBACK_MOUSE_UP, _slider_up_cb, ad);
        evas_object_event_callback_add(ad->slider, EVAS_CALLBACK_MOUSE_MOVE, _slider_move_cb, ad);
@@ -572,6 +572,15 @@ int _app_create(struct appdata *ad)
        return 0;
 }
 
+#define _MAKE_ATOM(a, s)                              \
+   do {                                               \
+        a = ecore_x_atom_get(s);                      \
+        if (!a)                                       \
+                       LOCK_SCREEN_TRACE_ERR("%s creation failed.", s); \
+   } while(0)
+
+#define STR_ATOM_PANEL_SCROLLABLE_STATE         "_E_MOVE_PANEL_SCROLLABLE_STATE"
+
 int _app_reset(struct appdata *ad)
 {
        if (ad == NULL)
@@ -583,9 +592,32 @@ int _app_reset(struct appdata *ad)
        }
 
        static int initted = 0;
-       if(initted == 0) {
-               ecore_idler_add(_init_widget_cb, ad);
-               initted = 1;
+       if(ad->lock_type == 1) {
+               if(initted == 0) {
+                       ecore_idler_add(_init_widget_cb, ad);
+                       initted = 1;
+               }
+       } else if (ad->lock_type == 4) {
+               if(initted == 0) {
+                       Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = 0;
+                       unsigned int val[3];
+
+                       // init atoms
+                       _MAKE_ATOM(ATOM_PANEL_SCROLLABLE_STATE, STR_ATOM_PANEL_SCROLLABLE_STATE );
+
+                       val[0] = 0; // always enable F
+                       val[1] = 0; // quickpanel enable F
+                       val[2] = 0; // apptray enable F
+
+                       LOCK_SCREEN_TRACE_DBG("Set quickpanel disable");
+                       ecore_x_window_prop_card32_set(elm_win_xwindow_get(ad->win),
+                                       ATOM_PANEL_SCROLLABLE_STATE,
+                                       val,
+                                       3);
+
+                       simple_password_layout_create(ad);
+                       initted = 1;
+               }
        }
 
        return 0;