Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 287230
Collapse All | Expand All

(-)a/data/desktop_gnome_peripherals_touchpad.schemas.in (+36 lines)
Lines 27-32 Link Here
27
    </schema>
27
    </schema>
28
28
29
    <schema>
29
    <schema>
30
      <key>/schemas/desktop/gnome/peripherals/touchpad/tap_button_1</key>
31
      <applyto>/desktop/gnome/peripherals/touchpad/tap_button_1</applyto>
32
      <owner>gnome</owner>
33
      <type>int</type>
34
      <default>1</default>
35
      <locale name="C">
36
        <short>Button assigned to one finger tap</short>
37
        <long>Set this to the button number that you want to click by tapping one finger.</long>
38
      </locale>
39
    </schema>
40
41
    <schema>
42
      <key>/schemas/desktop/gnome/peripherals/touchpad/tap_button_2</key>
43
      <applyto>/desktop/gnome/peripherals/touchpad/tap_button_2</applyto>
44
      <owner>gnome</owner>
45
      <type>int</type>
46
      <default>3</default>
47
      <locale name="C">
48
        <short>Button assigned to two finger tap</short>
49
        <long>Set this to the button number that you want to click by tapping two fingers.</long>
50
      </locale>
51
    </schema>
52
53
    <schema>
54
      <key>/schemas/desktop/gnome/peripherals/touchpad/tap_button_3</key>
55
      <applyto>/desktop/gnome/peripherals/touchpad/tap_button_3</applyto>
56
      <owner>gnome</owner>
57
      <type>int</type>
58
      <default>2</default>
59
      <locale name="C">
60
        <short>Button assigned to three finger tap</short>
61
        <long>Set this to the button number that you want to click by tapping three fingers.</long>
62
      </locale>
63
    </schema>
64
65
    <schema>
30
      <key>/schemas/desktop/gnome/peripherals/touchpad/scroll_method</key>
66
      <key>/schemas/desktop/gnome/peripherals/touchpad/scroll_method</key>
31
      <applyto>/desktop/gnome/peripherals/touchpad/scroll_method</applyto>
67
      <applyto>/desktop/gnome/peripherals/touchpad/scroll_method</applyto>
32
      <owner>gnome</owner>
68
      <owner>gnome</owner>
(-)a/plugins/mouse/gsd-mouse-manager.c (-9 / +23 lines)
Lines 64-69 Link Here
64
#define KEY_DELAY_ENABLE        GCONF_MOUSE_A11Y_DIR "/delay_enable"
64
#define KEY_DELAY_ENABLE        GCONF_MOUSE_A11Y_DIR "/delay_enable"
65
#define KEY_TOUCHPAD_DISABLE_W_TYPING    GCONF_TOUCHPAD_DIR "/disable_while_typing"
65
#define KEY_TOUCHPAD_DISABLE_W_TYPING    GCONF_TOUCHPAD_DIR "/disable_while_typing"
66
#define KEY_TAP_TO_CLICK        GCONF_TOUCHPAD_DIR "/tap_to_click"
66
#define KEY_TAP_TO_CLICK        GCONF_TOUCHPAD_DIR "/tap_to_click"
67
#define KEY_TAP_BUTTON_1        GCONF_TOUCHPAD_DIR "/tap_button_1"
68
#define KEY_TAP_BUTTON_2        GCONF_TOUCHPAD_DIR "/tap_button_2"
69
#define KEY_TAP_BUTTON_3        GCONF_TOUCHPAD_DIR "/tap_button_3"
67
#define KEY_SCROLL_METHOD       GCONF_TOUCHPAD_DIR "/scroll_method"
70
#define KEY_SCROLL_METHOD       GCONF_TOUCHPAD_DIR "/scroll_method"
68
#define KEY_PAD_HORIZ_SCROLL    GCONF_TOUCHPAD_DIR "/horiz_scroll_enabled"
71
#define KEY_PAD_HORIZ_SCROLL    GCONF_TOUCHPAD_DIR "/horiz_scroll_enabled"
69
72
Lines 540-546 set_disable_w_typing (GsdMouseManager *manager, gboolean state) Link Here
540
}
543
}
541
544
542
static int
545
static int
543
set_tap_to_click (gboolean state)
546
set_tap_to_click (gboolean state, guint tapButton1, guint tapButton2, guint tapButton3)
544
{
547
{
545
        int numdevices, i, format, rc;
548
        int numdevices, i, format, rc;
546
        unsigned long nitems, bytes_after;
549
        unsigned long nitems, bytes_after;
Lines 567-575 set_tap_to_click (gboolean state) Link Here
567
                        if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 7)
570
                        if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 7)
568
                        {
571
                        {
569
                                /* Set RLM mapping for 1/2/3 fingers*/
572
                                /* Set RLM mapping for 1/2/3 fingers*/
570
                                data[4] = (state) ? 1 : 0;
573
                                data[4] = (state) ? tapButton1 : 0;
571
                                data[5] = (state) ? 3 : 0;
574
                                data[5] = (state) ? tapButton2 : 0;
572
                                data[6] = (state) ? 2 : 0;
575
                                data[6] = (state) ? tapButton3 : 0;
573
                                XChangeDeviceProperty (GDK_DISPLAY (), device, prop, XA_INTEGER, 8,
576
                                XChangeDeviceProperty (GDK_DISPLAY (), device, prop, XA_INTEGER, 8,
574
                                                        PropModeReplace, data, nitems);
577
                                                        PropModeReplace, data, nitems);
575
                        }
578
                        }
Lines 818-824 set_mouse_settings (GsdMouseManager *manager) Link Here
818
        set_motion_threshold (manager, gconf_client_get_int (client, KEY_MOTION_THRESHOLD, NULL));
821
        set_motion_threshold (manager, gconf_client_get_int (client, KEY_MOTION_THRESHOLD, NULL));
819
822
820
        set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
823
        set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
821
        set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL));
824
        set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL),
825
                          gconf_client_get_int  (client, KEY_TAP_BUTTON_1, NULL),
826
                          gconf_client_get_int  (client, KEY_TAP_BUTTON_2, NULL),
827
                          gconf_client_get_int  (client, KEY_TAP_BUTTON_3, NULL));
822
        set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
828
        set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
823
        set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
829
        set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
824
830
Lines 846-854 mouse_callback (GConfClient *client, Link Here
846
        } else if (! strcmp (entry->key, KEY_TOUCHPAD_DISABLE_W_TYPING)) {
852
        } else if (! strcmp (entry->key, KEY_TOUCHPAD_DISABLE_W_TYPING)) {
847
                if (entry->value->type == GCONF_VALUE_BOOL)
853
                if (entry->value->type == GCONF_VALUE_BOOL)
848
                        set_disable_w_typing (manager, gconf_value_get_bool (entry->value));
854
                        set_disable_w_typing (manager, gconf_value_get_bool (entry->value));
849
        } else if (! strcmp (entry->key, KEY_TAP_TO_CLICK)) {
855
        } else if (! strcmp (entry->key, KEY_TAP_TO_CLICK) && entry->value->type == GCONF_VALUE_BOOL
850
                if (entry->value->type == GCONF_VALUE_BOOL)
856
               ||  ! strcmp (entry->key, KEY_TAP_BUTTON_1) && entry->value->type == GCONF_VALUE_INT
851
                        set_tap_to_click (gconf_value_get_bool (entry->value));
857
               ||  ! strcmp (entry->key, KEY_TAP_BUTTON_2) && entry->value->type == GCONF_VALUE_INT
858
               ||  ! strcmp (entry->key, KEY_TAP_BUTTON_3) && entry->value->type == GCONF_VALUE_INT) {
859
                        set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL),
860
                                          gconf_client_get_int  (client, KEY_TAP_BUTTON_1, NULL),
861
                                          gconf_client_get_int  (client, KEY_TAP_BUTTON_2, NULL),
862
                                          gconf_client_get_int  (client, KEY_TAP_BUTTON_3, NULL));
852
        } else if (! strcmp (entry->key, KEY_SCROLL_METHOD)) {
863
        } else if (! strcmp (entry->key, KEY_SCROLL_METHOD)) {
853
                if (entry->value->type == GCONF_VALUE_INT) {
864
                if (entry->value->type == GCONF_VALUE_INT) {
854
                        set_edge_scroll (gconf_value_get_int (entry->value));
865
                        set_edge_scroll (gconf_value_get_int (entry->value));
Lines 928-934 gsd_mouse_manager_idle_cb (GsdMouseManager *manager) Link Here
928
                                gconf_client_get_bool (client, KEY_DELAY_ENABLE, NULL));
939
                                gconf_client_get_bool (client, KEY_DELAY_ENABLE, NULL));
929
940
930
        set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
941
        set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
931
        set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL));
942
        set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL),
943
                          gconf_client_get_int  (client, KEY_TAP_BUTTON_1, NULL),
944
                          gconf_client_get_int  (client, KEY_TAP_BUTTON_2, NULL),
945
                          gconf_client_get_int  (client, KEY_TAP_BUTTON_3, NULL));
932
        set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
946
        set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
933
        set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
947
        set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
934
948

Return to bug 287230