raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=afb6ea1b2256a19c3c1482b4ec8106b9f99a8f44

commit afb6ea1b2256a19c3c1482b4ec8106b9f99a8f44
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Oct 9 12:25:26 2020 +0100

    desklock - remove custom desklock command. solves comment in bug report
    
    fixes T5978
    @fix
    
    now you can't make things weird by having an external lock command -
    solves that unsolvable race... :) the other iseu i think is not relaed
    to e and smellslike old garbage fb content either
    xorg/kms/driver/kernel or something - i have seen junk onresume
    sometimes but its a fb from like hours ago even so i smell it might be
    that. this solves the other issue brought up by not making it possible
---
 src/bin/e_config.c                               |  6 ---
 src/bin/e_config.h                               |  2 -
 src/bin/e_desklock.c                             | 49 +-----------------------
 src/bin/e_desklock.h                             |  7 ----
 src/modules/conf_display/e_int_config_desklock.c | 36 +----------------
 src/modules/lokker/lokker.c                      |  1 -
 6 files changed, 3 insertions(+), 98 deletions(-)

diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index cb3fa3922..51391c931 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -796,8 +796,6 @@ _e_config_edd_init(Eina_Bool old)
    E_CONFIG_VAL(D, T, desklock_on_suspend, INT);
    E_CONFIG_VAL(D, T, desklock_autolock_screensaver, INT);
    E_CONFIG_VAL(D, T, desklock_post_screensaver_time, DOUBLE);
-   E_CONFIG_VAL(D, T, desklock_use_custom_desklock, INT);
-   E_CONFIG_VAL(D, T, desklock_custom_desklock_cmd, STR);
    E_CONFIG_VAL(D, T, desklock_ask_presentation, UCHAR);
    E_CONFIG_VAL(D, T, desklock_ask_presentation_timeout, DOUBLE);
 
@@ -1551,8 +1549,6 @@ e_config_load(void)
              Eina_Bool found = EINA_FALSE;
 
              CONFIG_VERSION_UPDATE_INFO(15);
-             if (e_config->desklock_use_custom_desklock)
-               e_config->desklock_auth_method = 
E_DESKLOCK_AUTH_METHOD_EXTERNAL;
 
              EINA_LIST_FOREACH(e_config->modules, l, em)
                if (!strcmp(em->name, "lokker"))
@@ -1872,7 +1868,6 @@ e_config_load(void)
    E_CONFIG_LIMIT(e_config->desklock_login_box_zone, -2, 1000);
    E_CONFIG_LIMIT(e_config->desklock_autolock_screensaver, 0, 1);
    E_CONFIG_LIMIT(e_config->desklock_post_screensaver_time, 0.0, 300.0);
-   E_CONFIG_LIMIT(e_config->desklock_use_custom_desklock, 0, 1);
    E_CONFIG_LIMIT(e_config->desklock_ask_presentation, 0, 1);
    E_CONFIG_LIMIT(e_config->desklock_ask_presentation_timeout, 1.0, 300.0);
    E_CONFIG_LIMIT(e_config->border_raise_on_mouse_action, 0, 1);
@@ -2635,7 +2630,6 @@ _e_config_free(E_Config *ecf)
    if (ecf->wallpaper_import_last_dev) 
eina_stringshare_del(ecf->wallpaper_import_last_dev);
    if (ecf->wallpaper_import_last_path) 
eina_stringshare_del(ecf->wallpaper_import_last_path);
    if (ecf->theme_default_border_style) 
eina_stringshare_del(ecf->theme_default_border_style);
-   if (ecf->desklock_custom_desklock_cmd) 
eina_stringshare_del(ecf->desklock_custom_desklock_cmd);
    EINA_LIST_FREE(ecf->syscon.actions, sca)
      {
         if (sca->action) eina_stringshare_del(sca->action);
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 3578da6fd..ffdae1eb0 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -206,8 +206,6 @@ struct _E_Config
    int                       desklock_on_suspend; // GUI
    int                       desklock_autolock_screensaver; // GUI
    double                    desklock_post_screensaver_time; // GUI
-   int                       desklock_use_custom_desklock; // GUI
-   const char               *desklock_custom_desklock_cmd; // GUI
    unsigned char             desklock_ask_presentation; // GUI
    double                    desklock_ask_presentation_timeout; // GUI
 
diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c
index 73fb590a2..15a242aef 100644
--- a/src/bin/e_desklock.c
+++ b/src/bin/e_desklock.c
@@ -11,9 +11,6 @@ struct _E_Desklock_Run
    int      position;
 };
 
-static Ecore_Exe *_e_custom_desklock_exe = NULL;
-static Ecore_Event_Handler *_e_custom_desklock_exe_handler = NULL;
-
 static Ecore_Event_Handler *_e_desklock_run_handler = NULL;
 static Ecore_Event_Handler *_e_desklock_randr_handler = NULL;
 static Ecore_Job *job = NULL;
@@ -34,7 +31,6 @@ static int _e_desklock_block = 0;
 static Eina_Bool desklock_manual = EINA_FALSE;
 
 /***********************************************************************/
-static Eina_Bool _e_desklock_cb_custom_desklock_exit(void *data EINA_UNUSED, 
int type EINA_UNUSED, void *event);
 static Eina_Bool _e_desklock_cb_run(void *data, int type, void *event);
 static Eina_Bool _e_desklock_cb_randr(void *data, int type, void *event);
 
@@ -211,7 +207,6 @@ e_desklock_demo(void)
    E_Desklock_Interface *iface;
    Eina_List *l;
 
-   if (e_desklock_is_external()) return EINA_FALSE;
    EINA_LIST_REVERSE_FOREACH(desklock_ifaces, l, iface)
      {
         if (iface->show())
@@ -245,25 +240,6 @@ _desklock_show_internal(Eina_Bool suspend)
 #endif
    if (_e_desklock_state) return EINA_TRUE;
 
-   if (e_desklock_is_external() && e_config->desklock_custom_desklock_cmd && 
e_config->desklock_custom_desklock_cmd[0])
-     {
-        e_menu_hide_all();
-        _e_custom_desklock_exe_handler =
-          ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
-                                  _e_desklock_cb_custom_desklock_exit, NULL);
-        if (e_config->desklock_language)
-          e_intl_language_set(e_config->desklock_language);
-
-        if (e_config->xkb.lock_layout)
-          e_xkb_layout_set(e_config->xkb.lock_layout);
-        _e_custom_desklock_exe =
-          e_util_exe_safe_run(e_config->desklock_custom_desklock_cmd, NULL);
-        _e_desklock_state = EINA_TRUE;
-        e_bindings_disabled_set(1);
-        /* TODO: ensure layer is correct on external desklocks? */
-        return 1;
-     }
-
    if (e_desklock_is_personal())
      {
         if (!e_config->desklock_passwd)
@@ -386,7 +362,7 @@ _desklock_hide_internal(void)
      }
    demo = EINA_FALSE;
 
-   if ((!_e_desklock_state) && (!_e_custom_desklock_exe)) return;
+   if (!_e_desklock_state) return;
 
    e_comp_override_del();
    e_comp_shape_queue();
@@ -419,12 +395,6 @@ _desklock_hide_internal(void)
    e_screensaver_update();
    e_dpms_force_update();
 
-   if (e_desklock_is_external())
-     {
-        _e_custom_desklock_exe = NULL;
-        return;
-     }
-
    EINA_LIST_FOREACH(hide_hooks, l, hide_cb)
      hide_cb();
 
@@ -493,23 +463,6 @@ e_desklock_unblock(void)
      }
 }
 
-static Eina_Bool
-_e_desklock_cb_custom_desklock_exit(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event)
-{
-   Ecore_Exe_Event_Del *ev = event;
-
-   if (ev->exe != _e_custom_desklock_exe) return ECORE_CALLBACK_PASS_ON;
-
-   if (ev->exit_code != 0)
-     {
-        /* do something profound here... like notify someone */
-     }
-
-   e_desklock_hide();
-
-   return ECORE_CALLBACK_DONE;
-}
-
 static Eina_Bool
 _e_desklock_run(E_Desklock_Run *task)
 {
diff --git a/src/bin/e_desklock.h b/src/bin/e_desklock.h
index 48c03ce58..fead91410 100644
--- a/src/bin/e_desklock.h
+++ b/src/bin/e_desklock.h
@@ -15,7 +15,6 @@ typedef enum
 {
    E_DESKLOCK_AUTH_METHOD_SYSTEM = 0,
    E_DESKLOCK_AUTH_METHOD_PERSONAL = 1,
-   E_DESKLOCK_AUTH_METHOD_EXTERNAL = 2,
    E_DESKLOCK_AUTH_METHOD_PIN = 3,
 } E_Desklock_Auth_Method;
 
@@ -70,12 +69,6 @@ E_API void e_desklock_zone_block_set(const E_Zone *zone, 
Eina_Bool block);
 
 extern E_API int E_EVENT_DESKLOCK;
 
-static inline Eina_Bool
-e_desklock_is_external(void)
-{
-   return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_EXTERNAL;
-}
-
 static inline Eina_Bool
 e_desklock_is_personal(void)
 {
diff --git a/src/modules/conf_display/e_int_config_desklock.c 
b/src/modules/conf_display/e_int_config_desklock.c
index 603757b14..4c78f7dbd 100644
--- a/src/modules/conf_display/e_int_config_desklock.c
+++ b/src/modules/conf_display/e_int_config_desklock.c
@@ -17,7 +17,7 @@ static void         _cb_bg_mouse_down(void *data, Evas *evas, 
Evas_Object *obj,
 
 struct _E_Config_Dialog_Data
 {
-   Evas_Object *lock_cmd_entry, *passwd_entry, *pin_entry;
+   Evas_Object *passwd_entry, *pin_entry;
    E_Config_Dialog *cfd, *bg_fsel;
 
    /* Common vars */
@@ -32,7 +32,6 @@ struct _E_Config_Dialog_Data
    int              zone;
    char            *desklock_personal_passwd;
    char            *pin_str;
-   char            *custom_lock_cmd;
 
    /* Layout */
    const char     *desklock_layout;
@@ -143,7 +142,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
    else if (!e_util_strcmp(bg->file, "user_background"))
      cfdata->bg_method = E_DESKLOCK_BACKGROUND_METHOD_WALLPAPER;
    else
-     cfdata->bg_method = E_DESKLOCK_BACKGROUND_METHOD_CUSTOM;
+     cfdata->bg_method = E_DESKLOCK_BACKGROUND_METHOD_THEME_DESKLOCK;
 
    cfdata->bg_method_prev = cfdata->bg_method;
 #ifndef HAVE_WAYLAND_ONLY
@@ -154,9 +153,6 @@ _fill_data(E_Config_Dialog_Data *cfdata)
      cfdata->use_xscreensaver = 1;
 
    cfdata->desklock_auth_method = e_config->desklock_auth_method;
-   if (e_config->desklock_custom_desklock_cmd)
-     cfdata->custom_lock_cmd = strdup(e_config->desklock_custom_desklock_cmd);
-
    cfdata->desklock_layout = e_config->xkb.desklock_layout;
    cfdata->start_locked = e_config->desklock_start_locked;
    cfdata->lock_on_suspend = e_config->desklock_on_suspend;
@@ -191,7 +187,6 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
    E_Config_Desklock_Background *bg;
    if (cfdata->bg_fsel)
      e_object_del(E_OBJECT(cfdata->bg_fsel));
-   E_FREE(cfdata->custom_lock_cmd);
    E_FREE(cfdata->desklock_personal_passwd);
    E_FREE(cfdata->pin_str);
    EINA_LIST_FREE(cfdata->bgs, bg)
@@ -237,9 +232,6 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata)
    ow = e_widget_radio_add(evas, _("Use PIN (insecure)"), 
E_DESKLOCK_AUTH_METHOD_PIN, rg);
    evas_object_smart_callback_add(ow, "changed", _login_method_change, cfdata);
    e_widget_list_object_append(ol, ow, 1, 1, 0.5);
-   ow = e_widget_radio_add(evas, _("Use External Screenlock Command"), 
E_DESKLOCK_AUTH_METHOD_EXTERNAL, rg);
-   evas_object_smart_callback_add(ow, "changed", _login_method_change, cfdata);
-   e_widget_list_object_append(ol, ow, 1, 1, 0.5);
 
    of = e_widget_framelist_add(evas, _("Personal Screenlock Password 
(insecure)"), 0);
    cfdata->passwd_entry = ow = e_widget_entry_add(cfd->dia->win, 
&(cfdata->desklock_personal_passwd), NULL, NULL, NULL);
@@ -253,16 +245,10 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata)
    e_widget_framelist_object_append(of, ow);
    e_widget_list_object_append(ol, of, 1, 1, 0.5);
 
-   of = e_widget_framelist_add(evas, _("External Screenlock Command"), 0);
-   cfdata->lock_cmd_entry = ow = e_widget_entry_add(cfd->dia->win, 
&(cfdata->custom_lock_cmd), NULL, NULL, NULL);
-   e_widget_framelist_object_append(of, ow);
-
    e_widget_disabled_set(cfdata->passwd_entry,
      (cfdata->desklock_auth_method != E_DESKLOCK_AUTH_METHOD_PERSONAL));
    e_widget_disabled_set(cfdata->pin_entry,
      (cfdata->desklock_auth_method != E_DESKLOCK_AUTH_METHOD_PIN));
-   e_widget_disabled_set(cfdata->lock_cmd_entry,
-     (cfdata->desklock_auth_method != E_DESKLOCK_AUTH_METHOD_EXTERNAL));
 
    e_widget_toolbook_page_append(otb, NULL, _("Locking"), ol,
                                  1, 1, 1, 0, 0.0, 0.0);
@@ -468,10 +454,6 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
    else
      e_config->desklock_login_box_zone = cfdata->zone;
 
-   if (cfdata->custom_lock_cmd)
-     eina_stringshare_replace(&e_config->desklock_custom_desklock_cmd,
-                              cfdata->custom_lock_cmd);
-
    cfdata->bg_method_prev = cfdata->bg_method;
    e_config_save_queue();
    return 1;
@@ -541,13 +523,6 @@ _basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfd
           return 1;
      }
 
-   if (e_config->desklock_custom_desklock_cmd && cfdata->custom_lock_cmd)
-     {
-        if (strcmp(e_config->desklock_custom_desklock_cmd, 
cfdata->custom_lock_cmd) != 0)
-          return 1;
-     }
-   else if (e_config->desklock_custom_desklock_cmd != cfdata->custom_lock_cmd)
-     return 1;
    return 0;
 }
 
@@ -697,13 +672,6 @@ _login_method_change(void *data, Evas_Object *obj 
EINA_UNUSED, void *event_info
         e_widget_entry_select_all(cfdata->pin_entry);
         e_widget_focus_set(cfdata->pin_entry, 1);
      }
-   e_widget_disabled_set(cfdata->lock_cmd_entry,
-     (cfdata->desklock_auth_method != E_DESKLOCK_AUTH_METHOD_EXTERNAL));
-   if (!e_widget_disabled_get(cfdata->lock_cmd_entry))
-     {
-        e_widget_entry_select_all(cfdata->lock_cmd_entry);
-        e_widget_focus_set(cfdata->lock_cmd_entry, 1);
-     }
 }
 
 static void
diff --git a/src/modules/lokker/lokker.c b/src/modules/lokker/lokker.c
index c4a0c7e8c..36dc77597 100644
--- a/src/modules/lokker/lokker.c
+++ b/src/modules/lokker/lokker.c
@@ -473,7 +473,6 @@ _lokker_popup_add(E_Zone *zone)
              E_LIST_HANDLER_APPEND(edd->handlers, 
ECORE_EVENT_MOUSE_BUTTON_DOWN, _pin_mouse_button_down, lp);
              E_LIST_HANDLER_APPEND(edd->handlers, ECORE_EVENT_MOUSE_BUTTON_UP, 
_pin_mouse_button_up, lp);
              break;
-           case E_DESKLOCK_AUTH_METHOD_EXTERNAL: //handled by e_desklock
            default: break;
           }
         if (cbg)

-- 


Reply via email to