summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2022-01-18 21:17:54 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2022-01-18 21:17:54 +0000
commit264b59c42fdb2a926a28eb054591bdb8f81a68ce (patch)
tree199ca92fc685b89a4dc4053cf37141b1f2609840
parent29e1a12da323a25a7421ca50823b6c0953ee2411 (diff)
downloadenlightenment-264b59c42fdb2a926a28eb054591bdb8f81a68ce.tar.gz
gesture - add an option to turn it all on or off
so - some people have issues if we open devices. why... i don't know, but add an option to toggle this and be conservative and have it off by default @fix
-rw-r--r--data/config/default/e.src1
-rw-r--r--data/config/standard/e.src1
-rw-r--r--data/config/tiling/e.src1
-rw-r--r--src/bin/e_config.c4
-rw-r--r--src/bin/e_config.h2
-rw-r--r--src/bin/e_gesture.c24
-rw-r--r--src/bin/e_main.c11
-rw-r--r--src/modules/conf_bindings/e_int_config_swipebindings.c16
8 files changed, 50 insertions, 10 deletions
diff --git a/data/config/default/e.src b/data/config/default/e.src
index 73a362c77a..5f91c8a359 100644
--- a/data/config/default/e.src
+++ b/data/config/default/e.src
@@ -164,6 +164,7 @@ group "E_Config" struct {
value "theme_default_border_style" string: "default";
value "desk_auto_switch" int: 0;
value "thumb_nice" int: 0;
+ value "gesture_open_input_devices" int: 0;
value "screen_limits" int: 0;
value "menu_favorites_show" int: 1;
value "menu_apps_show" int: 1;
diff --git a/data/config/standard/e.src b/data/config/standard/e.src
index ec8e7865eb..d83c804d69 100644
--- a/data/config/standard/e.src
+++ b/data/config/standard/e.src
@@ -164,6 +164,7 @@ group "E_Config" struct {
value "theme_default_border_style" string: "default";
value "desk_auto_switch" int: 0;
value "thumb_nice" int: 0;
+ value "gesture_open_input_devices" int: 0;
value "screen_limits" int: 0;
value "menu_favorites_show" int: 1;
value "menu_apps_show" int: 1;
diff --git a/data/config/tiling/e.src b/data/config/tiling/e.src
index 87bf6c3470..75f59a81de 100644
--- a/data/config/tiling/e.src
+++ b/data/config/tiling/e.src
@@ -164,6 +164,7 @@ group "E_Config" struct {
value "theme_default_border_style" string: "default";
value "desk_auto_switch" int: 0;
value "thumb_nice" int: 0;
+ value "gesture_open_input_devices" int: 0;
value "screen_limits" int: 0;
value "menu_favorites_show" int: 1;
value "menu_apps_show" int: 1;
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 8c15101f32..e7f091453f 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -879,6 +879,8 @@ _e_config_edd_init(Eina_Bool old)
E_CONFIG_VAL(D, T, thumb_nice, INT);
+ E_CONFIG_VAL(D, T, gesture_open_input_devices, UCHAR);
+
E_CONFIG_VAL(D, T, menu_icons_hide, UCHAR);
E_CONFIG_VAL(D, T, menu_favorites_show, INT);
E_CONFIG_VAL(D, T, menu_apps_show, INT);
@@ -1919,6 +1921,8 @@ e_config_load(void)
E_CONFIG_LIMIT(e_config->desk_auto_switch, 0, 1);
E_CONFIG_LIMIT(e_config->screen_limits, 0, 2);
+ E_CONFIG_LIMIT(e_config->thumb_nice, -20, 20);
+ E_CONFIG_LIMIT(e_config->gesture_open_input_devices, 0, 1);
E_CONFIG_LIMIT(e_config->dpms_enable, 0, 1);
E_CONFIG_LIMIT(e_config->dpms_standby_enable, 0, 1);
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 1d287de1aa..bfef8486aa 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -291,6 +291,8 @@ struct _E_Config
int thumb_nice;
+ unsigned char gesture_open_input_devices; // GUI
+
int ping_clients_interval; // GUI
int thumbscroll_enable; // GUI
diff --git a/src/bin/e_gesture.c b/src/bin/e_gesture.c
index 9d2d48e247..07dbe11e35 100644
--- a/src/bin/e_gesture.c
+++ b/src/bin/e_gesture.c
@@ -22,6 +22,7 @@ typedef struct {
static int gesture_capable_devices = 0;
static E_Bindings_Swipe_Live_Update live_update;
static void* live_update_data;
+static Eina_List *handlers = NULL;
static Swipe_Stats*
_find_swipe_gesture_recognizition(Elput_Device *dev)
@@ -250,10 +251,10 @@ e_gesture_init(void)
active_gestures = eina_hash_pointer_new(_stats_free);
- ecore_event_handler_add(ELPUT_EVENT_SWIPE_BEGIN, _swipe_cb, NULL);
- ecore_event_handler_add(ELPUT_EVENT_SWIPE_UPDATE, _swipe_cb, NULL);
- ecore_event_handler_add(ELPUT_EVENT_SWIPE_END, _swipe_cb, NULL);
- ecore_event_handler_add(ELPUT_EVENT_SEAT_CAPS, _debug, NULL);
+ E_LIST_HANDLER_APPEND(handlers, ELPUT_EVENT_SWIPE_BEGIN, _swipe_cb, NULL);
+ E_LIST_HANDLER_APPEND(handlers, ELPUT_EVENT_SWIPE_UPDATE, _swipe_cb, NULL);
+ E_LIST_HANDLER_APPEND(handlers, ELPUT_EVENT_SWIPE_END, _swipe_cb, NULL);
+ E_LIST_HANDLER_APPEND(handlers, ELPUT_EVENT_SEAT_CAPS, _debug, NULL);
return 1;
}
@@ -261,7 +262,20 @@ e_gesture_init(void)
E_API int
e_gesture_shutdown(void)
{
-// if (_detect_vm()) return 1;
+ Ecore_Event_Handler *hand;
+
+ if (_detect_vm()) return 1;
+
+ if (active_gestures)
+ {
+ eina_hash_free(active_gestures);
+ active_gestures = NULL;
+ }
+
+ EINA_LIST_FREE(handlers, hand)
+ {
+ ecore_event_handler_del(hand);
+ }
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
{
diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index 926c68a83a..8ffe39c951 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -1059,10 +1059,13 @@ main(int argc, char **argv)
e_comp_canvas_keys_grab();
TS("E_Comp_Canvas Keys Grab Done");
#ifdef HAVE_ELPUT
- TS("E_Gesture Init");
- e_gesture_init();
- TS("E_Gesture Init Done");
- _e_main_shutdown_push(e_gesture_shutdown);
+ if (e_config->gesture_open_input_devices)
+ {
+ TS("E_Gesture Init");
+ e_gesture_init();
+ TS("E_Gesture Init Done");
+ _e_main_shutdown_push(e_gesture_shutdown);
+ }
#endif
TS("Run Startup Apps");
diff --git a/src/modules/conf_bindings/e_int_config_swipebindings.c b/src/modules/conf_bindings/e_int_config_swipebindings.c
index 085d5dec99..b5de2b79b5 100644
--- a/src/modules/conf_bindings/e_int_config_swipebindings.c
+++ b/src/modules/conf_bindings/e_int_config_swipebindings.c
@@ -24,6 +24,7 @@ struct _E_Config_Dialog_Data
double error;
double length;
unsigned int fingers;
+ int gesture_open_input_devices;
} locals;
struct
{
@@ -75,6 +76,15 @@ _auto_apply_changes(E_Config_Dialog_Data *cfdata)
E_Action_Group *actg;
E_Action_Description *actd;
+ if (cfdata->locals.gesture_open_input_devices != e_config->gesture_open_input_devices)
+ {
+ E_Action *act;
+
+ e_config->gesture_open_input_devices = cfdata->locals.gesture_open_input_devices;
+ act = e_action_find("restart");
+ if ((act) && (act->func.go)) act->func.go(NULL, NULL);
+ }
+
if ((!cfdata->locals.cur) || (!cfdata->locals.cur[0]) ||
(!cfdata->locals.action) || (!cfdata->locals.action[0])) return;
@@ -133,6 +143,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->locals.source = eina_stringshare_add("");
cfdata->locals.cur = NULL;
cfdata->locals.dia = NULL;
+ cfdata->locals.gesture_open_input_devices = e_config->gesture_open_input_devices;
cfdata->binding.swipe = NULL;
EINA_LIST_FOREACH(e_bindings->swipe_bindings, l, bi)
@@ -912,7 +923,7 @@ _help_swipe_bindings_cb(void *data EINA_UNUSED, void *data2 EINA_UNUSED)
static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
- Evas_Object *o, *ol, *ot, *of, *ob;
+ Evas_Object *o, *ol, *ot, *of, *ob, *oc;
cfdata->evas = evas;
o = e_widget_list_add(evas, 0, 0);
@@ -963,6 +974,9 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_list_object_append(o, ol, 1, 1, 0.5);
+ oc = e_widget_check_add(evas, _("Open input devices"), &(cfdata->locals.gesture_open_input_devices));
+ e_widget_list_object_append(o, oc, 1, 1, 0.5);
+
_update_swipe_binding_list(cfdata);
_fill_actions_list(cfdata);