raster pushed a commit to branch master.

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

commit 3793619dae9785ea18f2a2d67f914397a8a78d55
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sun Nov 15 23:54:21 2020 +0000

    x - input - separate touchpad and mouse settings
    
    you can have different accel for mouse vs touchpad and different
    natrual scrolling settings etc. this splits that up.
---
 data/config/default/e.src                         |   7 +-
 data/config/standard/e.src                        |   7 +-
 data/config/tiling/e.src                          |   7 +-
 src/bin/e_comp_x_devices.c                        | 159 ++++++++++++++------
 src/bin/e_config.c                                |  15 +-
 src/bin/e_config.h                                |   7 +-
 src/modules/conf_interaction/e_int_config_mouse.c | 172 ++++++++++++++--------
 7 files changed, 250 insertions(+), 124 deletions(-)

diff --git a/data/config/default/e.src b/data/config/default/e.src
index 80a3aff95..a049d2715 100644
--- a/data/config/default/e.src
+++ b/data/config/default/e.src
@@ -139,12 +139,15 @@ group "E_Config" struct {
   value "mouse_hand" int: 1;
   value "mouse_accel" double: 0.0;
   value "mouse_accel_threshold" int: 4;
-  value "touch_tap_to_click" uchar: 0;
   value "mouse_natural_scroll" uchar: 0;
   value "mouse_emulate_middle_button" uchar: 1;
+  value "touch_accel" double: 0.0;
+  value "touch_natural_scroll" uchar: 0;
+  value "touch_emulate_middle_button" uchar: 1;
+  value "touch_tap_to_click" uchar: 0;
   value "touch_clickpad" uchar: 1;
   value "touch_scrolling_2finger" uchar: 1;
-  value "touch_scrolling_edge" uchar: 1;
+  value "touch_scrolling_edge" uchar: 0;
   value "touch_scrolling_circular" uchar: 0;
   value "touch_scrolling_horiz" uchar: 1;
   value "touch_palm_detect" uchar: 1;
diff --git a/data/config/standard/e.src b/data/config/standard/e.src
index 3b35e6196..fbd7ef59b 100644
--- a/data/config/standard/e.src
+++ b/data/config/standard/e.src
@@ -137,12 +137,15 @@ group "E_Config" struct {
     value "mouse_hand" int: 1;
     value "mouse_accel" double: 0.0;
     value "mouse_accel_threshold" int: 4;
-    value "touch_tap_to_click" uchar: 0;
     value "mouse_natural_scroll" uchar: 0;
     value "mouse_emulate_middle_button" uchar: 1;
+    value "touch_accel" double: 0.0;
+    value "touch_natural_scroll" uchar: 0;
+    value "touch_emulate_middle_button" uchar: 1;
+    value "touch_tap_to_click" uchar: 0;
     value "touch_clickpad" uchar: 1;
     value "touch_scrolling_2finger" uchar: 1;
-    value "touch_scrolling_edge" uchar: 1;
+    value "touch_scrolling_edge" uchar: 0;
     value "touch_scrolling_circular" uchar: 0;
     value "touch_scrolling_horiz" uchar: 1;
     value "touch_palm_detect" uchar: 1;
diff --git a/data/config/tiling/e.src b/data/config/tiling/e.src
index 7b1e4d949..ab420ac70 100644
--- a/data/config/tiling/e.src
+++ b/data/config/tiling/e.src
@@ -137,12 +137,15 @@ group "E_Config" struct {
     value "mouse_hand" int: 1;
     value "mouse_accel" double: 0.0;
     value "mouse_accel_threshold" int: 4;
-    value "touch_tap_to_click" uchar: 0;
     value "mouse_natural_scroll" uchar: 0;
     value "mouse_emulate_middle_button" uchar: 1;
+    value "touch_accel" double: 0.0;
+    value "touch_natural_scroll" uchar: 0;
+    value "touch_emulate_middle_button" uchar: 1;
+    value "touch_tap_to_click" uchar: 0;
     value "touch_clickpad" uchar: 1;
     value "touch_scrolling_2finger" uchar: 1;
-    value "touch_scrolling_edge" uchar: 1;
+    value "touch_scrolling_edge" uchar: 0;
     value "touch_scrolling_circular" uchar: 0;
     value "touch_scrolling_horiz" uchar: 1;
     value "touch_palm_detect" uchar: 1;
diff --git a/src/bin/e_comp_x_devices.c b/src/bin/e_comp_x_devices.c
index 1c93ecc81..d273fc419 100644
--- a/src/bin/e_comp_x_devices.c
+++ b/src/bin/e_comp_x_devices.c
@@ -2,8 +2,14 @@
 #define E_COMP_X
 #include "e.h"
 
+typedef enum
+{
+   DEVICE_FLAG_NONE,
+   DEVICE_FLAG_TOUCHPAD
+} Device_Flags;
+
 static void
-_handle_dev_prop(int dev_slot, const char *dev, const char *prop)
+_handle_dev_prop(int dev_slot, const char *dev, const char *prop, Device_Flags 
dev_flags)
 {
    int num, size;
    Ecore_X_Atom fmt;
@@ -12,12 +18,16 @@ _handle_dev_prop(int dev_slot, const char *dev, const char 
*prop)
    // libinput devices
    if (!strcmp(prop, "libinput Middle Emulation Enabled"))
      {
+        unsigned char cfval = 0;
         unsigned char *val = ecore_x_input_device_property_get
           (dev_slot, prop, &num, &fmt, &size);
-        if ((val) && (size == 8) && (num == 1) &&
-            (e_config->mouse_emulate_middle_button) != (val[0]))
+        if (dev_flags == DEVICE_FLAG_TOUCHPAD)
+          cfval = e_config->touch_emulate_middle_button;
+        else
+          cfval = e_config->mouse_emulate_middle_button;
+        if ((val) && (size == 8) && (num == 1) && (cfval != val[0]))
           {
-             val[0] = e_config->mouse_emulate_middle_button;
+             val[0] = cfval;
              printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
              ecore_x_input_device_property_set
                (dev_slot, prop, val, num, fmt, size);
@@ -26,12 +36,16 @@ _handle_dev_prop(int dev_slot, const char *dev, const char 
*prop)
      }
    else if (!strcmp(prop, "libinput Accel Speed"))
      {
+        float cfval = 0.0;
         float *val = ecore_x_input_device_property_get
           (dev_slot, prop, &num, &fmt, &size);
-        if ((val) && (size == 32) && (num == 1) &&
-            (fabs(e_config->mouse_accel - val[0]) >= 0.01))
+        if (dev_flags == DEVICE_FLAG_TOUCHPAD)
+          cfval = e_config->touch_accel;
+        else
+          cfval = e_config->mouse_accel;
+        if ((val) && (size == 32) && (num == 1) && (fabs(cfval - val[0]) >= 
0.01))
           {
-             val[0] = e_config->mouse_accel;
+             val[0] = cfval;
              printf("DEV: change [%s] [%s] -> %1.3f\n", dev, prop, val[0]);
              ecore_x_input_device_property_set
                (dev_slot, prop, val, num, fmt, size);
@@ -40,61 +54,88 @@ _handle_dev_prop(int dev_slot, const char *dev, const char 
*prop)
      }
    else if (!strcmp(prop, "libinput Tapping Enabled"))
      {
-        unsigned char *val = ecore_x_input_device_property_get
-          (dev_slot, prop, &num, &fmt, &size);
-        if ((val) && (size == 8) && (num == 1) &&
-            (e_config->touch_tap_to_click) != (val[0]))
+        if (dev_flags == DEVICE_FLAG_TOUCHPAD)
           {
-             val[0] = e_config->touch_tap_to_click;
-             printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
-             ecore_x_input_device_property_set
-               (dev_slot, prop, val, num, fmt, size);
+             unsigned char *val = ecore_x_input_device_property_get
+               (dev_slot, prop, &num, &fmt, &size);
+             if ((val) && (size == 8) && (num == 1) &&
+                 (e_config->touch_tap_to_click != val[0]))
+               {
+                  val[0] = e_config->touch_tap_to_click;
+                  printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
+                  ecore_x_input_device_property_set
+                    (dev_slot, prop, val, num, fmt, size);
+               }
+             free(val);
           }
-        free(val);
      }
 //   else if (!strcmp(prop, "libinput Tapping Button Mapping Enabled"))
 //     {
 //        // 1 bool, 0 = LRM, 1 = LMR
 //     }
-   else if (!strcmp(prop, "libinput Horizontal Scrolling Enabled"))
+   else if ((!strcmp(prop, "libinput Horizontal Scrolling Enabled")) ||
+            (!strcmp(prop, "libinput Horizontal Scroll Enabled")))
      {
-        unsigned char *val = ecore_x_input_device_property_get
-          (dev_slot, prop, &num, &fmt, &size);
-        if ((val) && (size == 8) && (num == 1) &&
-            (e_config->touch_scrolling_horiz) != (val[0]))
+        if (dev_flags == DEVICE_FLAG_TOUCHPAD)
           {
-             val[0] = e_config->touch_scrolling_horiz;
-             printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
-             ecore_x_input_device_property_set
-               (dev_slot, prop, val, num, fmt, size);
+             unsigned char *val = ecore_x_input_device_property_get
+               (dev_slot, prop, &num, &fmt, &size);
+             if ((val) && (size == 8) && (num == 1) &&
+                 (e_config->touch_scrolling_horiz != val[0]))
+               {
+                  val[0] = e_config->touch_scrolling_horiz;
+                  printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
+                  ecore_x_input_device_property_set
+                    (dev_slot, prop, val, num, fmt, size);
+               }
+             free(val);
           }
-        free(val);
      }
    else if (!strcmp(prop, "libinput Scroll Method Enabled"))
      {
-        // 3 bool, 2 finger, edge, button
-        unsigned char *val = ecore_x_input_device_property_get
-          (dev_slot, prop, &num, &fmt, &size);
-        if ((val) && (size == 8) && (num >= 3) &&
-            ((e_config->touch_scrolling_2finger != val[0]) ||
-             (e_config->touch_scrolling_edge != val[1])))
+        if (dev_flags == DEVICE_FLAG_TOUCHPAD)
           {
-             val[0] = e_config->touch_scrolling_2finger;
-             val[1] = e_config->touch_scrolling_edge;
-             printf("DEV: change [%s] [%s] -> %i %i %i\n", dev, prop, val[0], 
val[1], val[2]);
-             ecore_x_input_device_property_set
-               (dev_slot, prop, val, num, fmt, size);
+             // 3 bool, 2 finger, edge, button
+             unsigned char *val0 = ecore_x_input_device_property_get
+               (dev_slot, "libinput Scroll Methods Available", &num, &fmt, 
&size);
+             if ((val0) && (size == 8) && (num >= 3))
+               {
+                  unsigned char *val = ecore_x_input_device_property_get
+                    (dev_slot, prop, &num, &fmt, &size);
+                  if ((val) && (size == 8) && (num >= 3))
+                    {
+                       unsigned char cf_2finger = 0, cf_edge = 0;
+
+                       if (val0[0]) cf_2finger = 
e_config->touch_scrolling_2finger;
+                       else cf_2finger = val[0];
+                       if (val0[1]) cf_edge = e_config->touch_scrolling_edge;
+                       else cf_edge = val[1];
+                       if ((cf_2finger != val[0]) || (cf_edge != val[1]))
+                         {
+                            val[0] = cf_2finger;
+                            val[1] = cf_edge;
+                            printf("DEV: change [%s] [%s] -> %i %i %i\n", dev, 
prop, val[0], val[1], val[2]);
+                            ecore_x_input_device_property_set
+                              (dev_slot, prop, val, num, fmt, size);
+                         }
+                    }
+                  free(val);
+               }
+             free(val0);
           }
-        free(val);
      }
    else if (!strcmp(prop, "libinput Natural Scrolling Enabled"))
      {
+        unsigned char cfval = 0;
         unsigned char *val = ecore_x_input_device_property_get
           (dev_slot, prop, &num, &fmt, &size);
-        if ((val) && (size == 8) && (num == 1) &&
-            (e_config->mouse_natural_scroll) != (val[0]))
+        if (dev_flags == DEVICE_FLAG_TOUCHPAD)
+          cfval = e_config->touch_natural_scroll;
+        else
+          cfval = e_config->mouse_natural_scroll;
+        if ((val) && (size == 8) && (num == 1) && (cfval != val[0]))
           {
-             val[0] = e_config->mouse_natural_scroll;
+             val[0] = cfval;
              printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
              ecore_x_input_device_property_set
                (dev_slot, prop, val, num, fmt, size);
@@ -120,7 +161,7 @@ _handle_dev_prop(int dev_slot, const char *dev, const char 
*prop)
         unsigned int *val = ecore_x_input_device_property_get
           (dev_slot, prop, &num, &fmt, &size);
         if ((val) && (size == 32) && (num == 1) &&
-            (e_config->mouse_emulate_middle_button && (val[0] != 50)))
+            (e_config->touch_emulate_middle_button && (val[0] != 50)))
           {
              val[0] = 50;
              printf("DEV: change [%s] [%s] -> %i\n", dev, prop, val[0]);
@@ -136,7 +177,7 @@ _handle_dev_prop(int dev_slot, const char *dev, const char 
*prop)
         // 4 val float min, max, accel, unused
         chval[0] = 1.0;
         chval[1] = 1.75;
-        chval[2] = 0.15 + (e_config->mouse_accel * 0.15);
+        chval[2] = 0.15 + (e_config->touch_accel * 0.15);
         float *val = ecore_x_input_device_property_get
           (dev_slot, prop, &num, &fmt, &size);
         if ((val) && (size == 32) && (num == 4) &&
@@ -289,8 +330,8 @@ _handle_dev_prop(int dev_slot, const char *dev, const char 
*prop)
         int *val = ecore_x_input_device_property_get
           (dev_slot, prop, &num, &fmt, &size);
         if ((val) && (size == 32) && (num == 2) &&
-            (((e_config->mouse_natural_scroll && ((val[0] > 0) || (val[1] > 
0)))) ||
-             ((!e_config->mouse_natural_scroll && ((val[0] < 0) || (val[1] < 
0))))))
+            (((e_config->touch_natural_scroll && ((val[0] > 0) || (val[1] > 
0)))) ||
+             ((!e_config->touch_natural_scroll && ((val[0] < 0) || (val[1] < 
0))))))
           {
              if (e_config->mouse_natural_scroll)
                {
@@ -360,12 +401,38 @@ e_comp_x_devices_config_apply(void)
         const char *name;
         char **props;
         int num_props, j;
+        Device_Flags dev_flags = 0;
 
         name = ecore_x_input_device_name_get(i);
 //        printf("DEV: DEV=%i: [%s]\n", i, name);
         props = ecore_x_input_device_properties_list(i, &num_props);
         if (props)
           {
+             int num, size;
+             Ecore_X_Atom fmt;
+             unsigned char *val;
+
+             // figure out device flags - for now is it a mouse or touchpad
+             val = ecore_x_input_device_property_get
+               (i, "libinput Scroll Methods Available", &num, &fmt, &size);
+             if ((val) && (size == 8) && (num >= 3))
+               {
+                  if ((!val[2]) && (val[0] || val[1]))
+                    {
+                       dev_flags = DEVICE_FLAG_TOUCHPAD;
+                    }
+               }
+             if (!val)
+               {
+                  val = ecore_x_input_device_property_get
+                    (i, "Synaptics Move Speed", &num, &fmt, &size);
+                  if ((val) && (size == 32) && (num == 4))
+                    {
+                       dev_flags = DEVICE_FLAG_TOUCHPAD;
+                    }
+               }
+             free(val);
+
              for (j = 0; j < num_props; j++)
                {
 //                  printf("DEV:   PROP=%i: [%s]\n", j, props[j]);
@@ -375,7 +442,7 @@ e_comp_x_devices_config_apply(void)
                     driver_libinput = EINA_TRUE;
                   else if ((!driver_synaptics) && (!strncmp(props[j], 
"Synaptics ", 10)))
                     driver_synaptics = EINA_TRUE;
-                  _handle_dev_prop(i, name, props[j]);
+                  _handle_dev_prop(i, name, props[j], dev_flags);
                }
              ecore_x_input_device_properties_free(props, num_props);
           }
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index e3221903c..dbc647f4d 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -833,12 +833,16 @@ _e_config_edd_init(Eina_Bool old)
    E_CONFIG_VAL(D, T, clientlist_max_caption_len, INT);
 
    E_CONFIG_VAL(D, T, mouse_hand, INT);
+
    E_CONFIG_VAL(D, T, mouse_accel, DOUBLE);
    E_CONFIG_VAL(D, T, mouse_accel_threshold, INT);
-   E_CONFIG_VAL(D, T, touch_tap_to_click, UCHAR);
-
    E_CONFIG_VAL(D, T, mouse_natural_scroll, UCHAR);
    E_CONFIG_VAL(D, T, mouse_emulate_middle_button, UCHAR);
+
+   E_CONFIG_VAL(D, T, touch_accel, DOUBLE);
+   E_CONFIG_VAL(D, T, touch_natural_scroll, UCHAR);
+   E_CONFIG_VAL(D, T, touch_emulate_middle_button, UCHAR);
+   E_CONFIG_VAL(D, T, touch_tap_to_click, UCHAR);
    E_CONFIG_VAL(D, T, touch_clickpad, UCHAR);
    E_CONFIG_VAL(D, T, touch_scrolling_2finger, UCHAR);
    E_CONFIG_VAL(D, T, touch_scrolling_edge, UCHAR);
@@ -1786,11 +1790,12 @@ e_config_load(void)
           CONFIG_VERSION_CHECK(33)
             {
                CONFIG_VERSION_UPDATE_INFO(33);
-               e_config->touch_clickpad = 1;
                e_config->mouse_emulate_middle_button = 1;
-               e_config->touch_scrolling_horiz = 1;
+               e_config->touch_emulate_middle_button = 1;
+               e_config->touch_clickpad = 1;
                e_config->touch_scrolling_2finger = 1;
-               e_config->touch_scrolling_edge = 1;
+               e_config->touch_scrolling_edge = 0;
+               e_config->touch_scrolling_horiz = 1;
                e_config->touch_palm_detect = 1;
                e_config_save_queue();
             }
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 43092107b..92757cac8 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -244,10 +244,13 @@ struct _E_Config
    int                       mouse_hand; //GUI
    double                    mouse_accel; // GUI
    int                       mouse_accel_threshold; // GUI
-   unsigned char             touch_tap_to_click; // GUI
-
    unsigned char             mouse_natural_scroll; // GUI
    unsigned char             mouse_emulate_middle_button; // GUI
+
+   double                    touch_accel; // GUI
+   unsigned char             touch_natural_scroll; // GUI
+   unsigned char             touch_emulate_middle_button; // GUI
+   unsigned char             touch_tap_to_click; // GUI
    unsigned char             touch_clickpad; // GUI
    unsigned char             touch_scrolling_2finger; // GUI
    unsigned char             touch_scrolling_edge; // GUI
diff --git a/src/modules/conf_interaction/e_int_config_mouse.c 
b/src/modules/conf_interaction/e_int_config_mouse.c
index 44e572761..24a095da7 100644
--- a/src/modules/conf_interaction/e_int_config_mouse.c
+++ b/src/modules/conf_interaction/e_int_config_mouse.c
@@ -21,18 +21,22 @@ struct _E_Config_Dialog_Data
    } gui;
 
    int mouse_hand;
-   double accel;
-   double threshold;
-   int emulate_middle_button;
-   int natural_scroll;
-
-   int tap_to_click;
-   int clickpad;
-   int scrolling_2finger;
-   int scrolling_edge;
-   int scrolling_circular;
-   int scrolling_horiz;
-   int palm_detect;
+
+   double mouse_accel;
+   double mouse_accel_threshold;
+   int mouse_natural_scroll;
+   int mouse_emulate_middle_button;
+
+   double touch_accel;
+   int touch_natural_scroll;
+   int touch_emulate_middle_button;
+   int touch_tap_to_click;
+   int touch_clickpad;
+   int touch_scrolling_2finger;
+   int touch_scrolling_edge;
+   int touch_scrolling_circular;
+   int touch_scrolling_horiz;
+   int touch_palm_detect;
 };
 
 E_Config_Dialog *
@@ -67,17 +71,22 @@ _fill_data(E_Config_Dialog_Data *cfdata)
    cfdata->cursor_size = e_config->cursor_size;
 
    cfdata->mouse_hand = e_config->mouse_hand;
-   cfdata->accel = e_config->mouse_accel;
-   cfdata->threshold = e_config->mouse_accel_threshold;
-   cfdata->tap_to_click = e_config->touch_tap_to_click;
-   cfdata->emulate_middle_button = e_config->mouse_emulate_middle_button;
-   cfdata->natural_scroll = e_config->mouse_natural_scroll;
-   cfdata->clickpad = e_config->touch_clickpad;
-   cfdata->scrolling_2finger = e_config->touch_scrolling_2finger;
-   cfdata->scrolling_edge = e_config->touch_scrolling_edge;
-   cfdata->scrolling_circular = e_config->touch_scrolling_circular;
-   cfdata->scrolling_horiz = e_config->touch_scrolling_horiz;
-   cfdata->palm_detect = e_config->touch_palm_detect;
+
+   cfdata->mouse_accel = e_config->mouse_accel;
+   cfdata->mouse_accel_threshold = e_config->mouse_accel_threshold;
+   cfdata->mouse_natural_scroll = e_config->mouse_natural_scroll;
+   cfdata->mouse_emulate_middle_button = e_config->mouse_emulate_middle_button;
+
+   cfdata->touch_accel = e_config->touch_accel;
+   cfdata->touch_natural_scroll = e_config->touch_natural_scroll;
+   cfdata->touch_emulate_middle_button = e_config->touch_emulate_middle_button;
+   cfdata->touch_tap_to_click = e_config->touch_tap_to_click;
+   cfdata->touch_clickpad = e_config->touch_clickpad;
+   cfdata->touch_scrolling_2finger = e_config->touch_scrolling_2finger;
+   cfdata->touch_scrolling_edge = e_config->touch_scrolling_edge;
+   cfdata->touch_scrolling_circular = e_config->touch_scrolling_circular;
+   cfdata->touch_scrolling_horiz = e_config->touch_scrolling_horiz;
+   cfdata->touch_palm_detect = e_config->touch_palm_detect;
 }
 
 static void *
@@ -87,7 +96,6 @@ _create_data(E_Config_Dialog *cfd)
 
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
    cfdata->cfd = cfd;
-
    _fill_data(cfdata);
    return cfdata;
 }
@@ -100,17 +108,20 @@ _basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfd
             (cfdata->use_e_cursor == e_config->use_e_cursor) &&
             (cfdata->cursor_size == e_config->cursor_size) &&
             (cfdata->mouse_hand == e_config->mouse_hand) &&
-            (cfdata->tap_to_click == e_config->touch_tap_to_click) &&
-            (cfdata->emulate_middle_button == 
e_config->mouse_emulate_middle_button) &&
-            (cfdata->natural_scroll == e_config->mouse_natural_scroll) &&
-            (cfdata->clickpad == e_config->touch_clickpad) &&
-            (cfdata->scrolling_2finger == e_config->touch_scrolling_2finger) &&
-            (cfdata->scrolling_edge == e_config->touch_scrolling_edge) &&
-            (cfdata->scrolling_circular == e_config->touch_scrolling_circular) 
&&
-            (cfdata->scrolling_horiz == e_config->touch_scrolling_horiz) &&
-            (cfdata->palm_detect == e_config->touch_palm_detect) &&
-            EINA_DBL_EQ(cfdata->accel, e_config->mouse_accel) &&
-            EINA_DBL_EQ(cfdata->threshold, e_config->mouse_accel_threshold));
+            EINA_DBL_EQ(cfdata->mouse_accel, e_config->mouse_accel) &&
+            EINA_DBL_EQ(cfdata->mouse_accel_threshold, 
e_config->mouse_accel_threshold) &&
+            (cfdata->mouse_natural_scroll == e_config->mouse_natural_scroll) &&
+            (cfdata->mouse_emulate_middle_button == 
e_config->mouse_emulate_middle_button) &&
+            EINA_DBL_EQ(cfdata->touch_accel, e_config->touch_accel) &&
+            (cfdata->touch_natural_scroll == e_config->touch_natural_scroll) &&
+            (cfdata->touch_emulate_middle_button == 
e_config->touch_emulate_middle_button) &&
+            (cfdata->touch_tap_to_click == e_config->touch_tap_to_click) &&
+            (cfdata->touch_clickpad == e_config->touch_clickpad) &&
+            (cfdata->touch_scrolling_2finger == 
e_config->touch_scrolling_2finger) &&
+            (cfdata->touch_scrolling_edge == e_config->touch_scrolling_edge) &&
+            (cfdata->touch_scrolling_circular == 
e_config->touch_scrolling_circular) &&
+            (cfdata->touch_scrolling_horiz == e_config->touch_scrolling_horiz) 
&&
+            (cfdata->touch_palm_detect == e_config->touch_palm_detect));
 }
 
 static void
@@ -130,17 +141,23 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
    e_config->cursor_size = cfdata->cursor_size;
 
    e_config->mouse_hand = cfdata->mouse_hand;
-   e_config->mouse_accel = cfdata->accel;
-   e_config->mouse_accel_threshold = cfdata->threshold;
-   e_config->touch_tap_to_click = cfdata->tap_to_click;
-   e_config->mouse_emulate_middle_button = cfdata->emulate_middle_button;
-   e_config->mouse_natural_scroll = cfdata->natural_scroll;
-   e_config->touch_clickpad = cfdata->clickpad;
-   e_config->touch_scrolling_2finger = cfdata->scrolling_2finger;
-   e_config->touch_scrolling_edge = cfdata->scrolling_edge;
-   e_config->touch_scrolling_circular = cfdata->scrolling_circular;
-   e_config->touch_scrolling_horiz = cfdata->scrolling_horiz;
-   e_config->touch_palm_detect = cfdata->palm_detect;
+
+   e_config->mouse_accel = cfdata->mouse_accel;
+   e_config->mouse_accel_threshold = cfdata->mouse_accel_threshold;
+   e_config->mouse_natural_scroll = cfdata->mouse_natural_scroll;
+   e_config->mouse_emulate_middle_button = cfdata->mouse_emulate_middle_button;
+
+   e_config->touch_accel = cfdata->touch_accel;
+   e_config->touch_natural_scroll = cfdata->touch_natural_scroll;
+   e_config->touch_emulate_middle_button = cfdata->touch_emulate_middle_button;
+   e_config->touch_tap_to_click = cfdata->touch_tap_to_click;
+   e_config->touch_clickpad = cfdata->touch_clickpad;
+   e_config->touch_scrolling_2finger = cfdata->touch_scrolling_2finger;
+   e_config->touch_scrolling_edge = cfdata->touch_scrolling_edge;
+   e_config->touch_scrolling_circular = cfdata->touch_scrolling_circular;
+   e_config->touch_scrolling_horiz = cfdata->touch_scrolling_horiz;
+   e_config->touch_palm_detect = cfdata->touch_palm_detect;
+
    e_config_save_queue();
 
    /* Apply the above settings */
@@ -158,7 +175,6 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
      }
 
    e_mouse_update();
-
    return 1;
 }
 
@@ -220,6 +236,8 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, 
Evas *evas, E_Config_Dia
    e_widget_framelist_object_append(of, ob);
    cfdata->gui.idle_cursor = ob;
 
+
+
    e_widget_list_object_append(ol, of, 1, 0, 0.5);
    e_widget_toolbook_page_append(otb, NULL, _("Cursor"), ol,
                                  1, 0, 1, 0, 0.5, 0.0);
@@ -236,58 +254,82 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, 
Evas *evas, E_Config_Dia
    e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1);
    e_widget_list_object_append(ol, of, 1, 0, 0.5);
 
-   of = e_widget_framelist_add(evas, _("Mouse Acceleration"), 0);
-
-   ob = e_widget_label_add(evas, _("Acceleration"));
-   e_widget_framelist_object_append(of, ob);
+   of = e_widget_framelist_add(evas, _("Acceleration"), 0);
    ob = e_widget_slider_add(evas, 1, 0, _("%1.1f"), -1.0, 1.0, 0.1, 0,
-                            &(cfdata->accel), NULL, 100);
-
+                            &(cfdata->mouse_accel), NULL, 100);
    e_widget_framelist_object_append(of, ob);
 
    ob = e_widget_label_add(evas, _("Threshold"));
    e_widget_framelist_object_append(of, ob);
    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 0.0, 10.0, 1.0, 0,
-                            &(cfdata->threshold), NULL, 100);
+                            &(cfdata->mouse_accel_threshold), NULL, 100);
    e_widget_framelist_object_append(of, ob);
 
    e_widget_list_object_append(ol, of, 1, 0, 0.5);
 
-   of = e_widget_framelist_add(evas, _("Clicks"), 0);
+   of = e_widget_framelist_add(evas, _("Buttons"), 0);
 
-   oc = e_widget_check_add(evas, _("Tap to click"), &(cfdata->tap_to_click));
+   oc = e_widget_check_add(evas, _("Middle mouse button emulation"), 
&(cfdata->mouse_emulate_middle_button));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("Middle mouse button emulation"), 
&(cfdata->emulate_middle_button));
+   e_widget_list_object_append(ol, of, 1, 0, 0.5);
+
+   of = e_widget_framelist_add(evas, _("Scrolling"), 0);
+
+   oc = e_widget_check_add(evas, _("Natural scrolling"), 
&(cfdata->mouse_natural_scroll));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("Clickpad"), &(cfdata->clickpad));
+   e_widget_list_object_append(ol, of, 1, 0, 0.5);
+   e_widget_toolbook_page_append(otb, NULL, _("Mouse"), ol,
+                                 1, 0, 1, 0, 0.5, 0.0);
+
+
+
+   ol = e_widget_list_add(evas, 0, 0);
+
+   of = e_widget_framelist_add(evas, _("Acceleration"), 0);
+
+   ob = e_widget_slider_add(evas, 1, 0, _("%1.1f"), -1.0, 1.0, 0.1, 0,
+                            &(cfdata->touch_accel), NULL, 100);
+   e_widget_framelist_object_append(of, ob);
+
+   e_widget_list_object_append(ol, of, 1, 0, 0.5);
+
+   of = e_widget_framelist_add(evas, _("Buttons"), 0);
+
+   oc = e_widget_check_add(evas, _("Tap to click"), 
&(cfdata->touch_tap_to_click));
+   e_widget_framelist_object_append(of, oc);
+
+   oc = e_widget_check_add(evas, _("Middle mouse button emulation"), 
&(cfdata->touch_emulate_middle_button));
+   e_widget_framelist_object_append(of, oc);
+
+   oc = e_widget_check_add(evas, _("Clickpad"), &(cfdata->touch_clickpad));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("Palm detect"), &(cfdata->palm_detect));
+   oc = e_widget_check_add(evas, _("Palm detect"), 
&(cfdata->touch_palm_detect));
    e_widget_framelist_object_append(of, oc);
 
    e_widget_list_object_append(ol, of, 1, 0, 0.5);
 
    of = e_widget_framelist_add(evas, _("Scrolling"), 0);
 
-   oc = e_widget_check_add(evas, _("Natural scrolling"), 
&(cfdata->natural_scroll));
+   oc = e_widget_check_add(evas, _("Natural scrolling"), 
&(cfdata->touch_natural_scroll));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("Horizontal scrolling"), 
&(cfdata->scrolling_horiz));
+   oc = e_widget_check_add(evas, _("Horizontal scrolling"), 
&(cfdata->touch_scrolling_horiz));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("Edge scrolling"), 
&(cfdata->scrolling_edge));
+   oc = e_widget_check_add(evas, _("Edge scrolling"), 
&(cfdata->touch_scrolling_edge));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("2 finger scrolling"), 
&(cfdata->scrolling_2finger));
+   oc = e_widget_check_add(evas, _("2 finger scrolling"), 
&(cfdata->touch_scrolling_2finger));
    e_widget_framelist_object_append(of, oc);
 
-   oc = e_widget_check_add(evas, _("Circular scrolling"), 
&(cfdata->scrolling_circular));
+   oc = e_widget_check_add(evas, _("Circular scrolling"), 
&(cfdata->touch_scrolling_circular));
    e_widget_framelist_object_append(of, oc);
 
    e_widget_list_object_append(ol, of, 1, 0, 0.5);
-   e_widget_toolbook_page_append(otb, NULL, _("Mouse"), ol,
+   e_widget_toolbook_page_append(otb, NULL, _("Touchpad"), ol,
                                  1, 0, 1, 0, 0.5, 0.0);
 
    e_widget_toolbook_page_show(otb, 0);

-- 


Reply via email to