Bug 702148 - Disable touchpad button only works one way on Acer Timeline 4810T
Summary: Disable touchpad button only works one way on Acer Timeline 4810T
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: gnome-settings-daemon
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Bastien Nocera
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: [cat:noinput]
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-04 21:48 UTC by NickG
Modified: 2018-04-11 08:37 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-29 04:09:13 UTC
Type: ---


Attachments (Terms of Use)
Only file in xorg.conf.d (316 bytes, text/plain)
2011-05-06 19:27 UTC, NickG
no flags Details
dmesg output (114.10 KB, text/plain)
2011-05-06 19:28 UTC, NickG
no flags Details
/var/log/messages (1.06 MB, text/plain)
2011-05-06 19:29 UTC, NickG
no flags Details
Current xorg log (26.30 KB, text/plain)
2011-05-06 19:30 UTC, NickG
no flags Details
patch to enable touchpad and use of XF86TouchpadToggle (4.07 KB, patch)
2011-07-03 20:57 UTC, Jose Alonso
no flags Details | Diff

Description NickG 2011-05-04 21:48:12 UTC
Description of problem:
Touchpad disable button doesn't allow reenabling


Version-Release number of selected component (if applicable):
Unknown, Happy to find out under guidance

How reproducible:
Everytime


Steps to Reproduce:
1. Press physical button to disable trackpad - observe illumination of button and onscreen overlay to include operation has disabled trackpad.
2. Press physical button to reenable trackpad - button goes dark and onscreen overlay shows trackpad has been enabled.
3. Try moving the mouse/clicking the buttons
  
Actual results:
Trackpad and mouse buttons are disabled after first press, never reenabled

Expected results:
Trackpad and mouse buttons are enabled/disabled in step with overlay/physical button.

Additional info:
To reenable the trackpad, I tried to do what worked on my previous Ubuntu system which was:
# sudo modprobe -r psmouse && sudo modprobe psmouse
but this yields the message:
# FATAL: Module psmouse is builtin

It's worth noting that suspending and resuming the laptop reenables the trackpads functionality.

I am happy to reproduce under instruction.

Comment 1 Bill Nottingham 2011-05-04 21:53:34 UTC
Moving to a somewhat more appropriate component. (May end up moving again to the kernel.)

Comment 2 Peter Hutterer 2011-05-04 22:57:14 UTC
what's the synclient -l output before and after enabling/disabling. does it show whether it's enabled now?

what's the output of gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled, again before and after?

Comment 3 NickG 2011-05-04 23:21:52 UTC
Start state (Enabled):
[nick@zeus ~]$ synclient -l
Parameter settings:
    LeftEdge                = 1765
    RightEdge               = 5367
    TopEdge                 = 1645
    BottomEdge              = 4563
    FingerLow               = 24
    FingerHigh              = 29
    FingerPress             = 255
    MaxTapTime              = 180
    MaxTapMove              = 237
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 280
    EmulateTwoFingerMinW    = 6
    VertScrollDelta         = 107
    HorizScrollDelta        = 107
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 0
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0371126
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 29
    EdgeMotionMaxZ          = 159
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 431
    EdgeMotionUseAlways     = 0
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 0
    RBCornerButton          = 0
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 2
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 9
    PalmMinZ                = 199
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 29
    PressureMotionMaxZ      = 159
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
[nick@zeus ~]$ gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled
true

After Button press (Disabled):
[nick@zeus ~]$ synclient -l
Parameter settings:
    LeftEdge                = 1765
    RightEdge               = 5367
    TopEdge                 = 1645
    BottomEdge              = 4563
    FingerLow               = 24
    FingerHigh              = 29
    FingerPress             = 255
    MaxTapTime              = 180
    MaxTapMove              = 237
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 280
    EmulateTwoFingerMinW    = 6
    VertScrollDelta         = 107
    HorizScrollDelta        = 107
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 0
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0371126
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 29
    EdgeMotionMaxZ          = 159
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 431
    EdgeMotionUseAlways     = 0
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 0
    RBCornerButton          = 0
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 2
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 9
    PalmMinZ                = 199
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 29
    PressureMotionMaxZ      = 159
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
[nick@zeus ~]$ gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled
true

After retouching button to reenable:
[nick@zeus ~]$ synclient -l
Parameter settings:
    LeftEdge                = 1765
    RightEdge               = 5367
    TopEdge                 = 1645
    BottomEdge              = 4563
    FingerLow               = 24
    FingerHigh              = 29
    FingerPress             = 255
    MaxTapTime              = 180
    MaxTapMove              = 237
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 280
    EmulateTwoFingerMinW    = 6
    VertScrollDelta         = 107
    HorizScrollDelta        = 107
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 0
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0371126
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 29
    EdgeMotionMaxZ          = 159
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 431
    EdgeMotionUseAlways     = 0
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 0
    RBCornerButton          = 0
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 2
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 9
    PalmMinZ                = 199
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 29
    PressureMotionMaxZ      = 159
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
[nick@zeus ~]$ gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled
true

Comment 4 Matěj Cepl 2011-05-06 12:45:20 UTC
Thanks for the bug report.  We have reviewed the information you have provided above, and there is some additional information we require that will be helpful in our diagnosis of this issue.

Please add drm.debug=0x04 to the kernel command line, restart computer, and attach

* your X server config file (/etc/X11/xorg.conf and /etc/X11/xorg.conf.d/* files, if available),
* X server log file (/var/log/Xorg.*.log)
* output of the dmesg command, and
* system log (/var/log/messages)

to the bug report as individual uncompressed file attachments using the bugzilla file attachment link above.

We will review this issue again once you've had a chance to attach this information.

Thanks in advance.

Comment 5 NickG 2011-05-06 19:27:46 UTC
Created attachment 497436 [details]
Only file in xorg.conf.d

Comment 6 NickG 2011-05-06 19:28:14 UTC
Created attachment 497437 [details]
dmesg output

Comment 7 NickG 2011-05-06 19:29:11 UTC
Created attachment 497439 [details]
/var/log/messages

Comment 8 NickG 2011-05-06 19:30:55 UTC
Created attachment 497440 [details]
Current xorg log

Comment 9 Peter Hutterer 2011-05-09 06:49:36 UTC
hmm, honestly, I don't know. synclient and gsettings both don't change, suggesting that the change is done in hardware. There's nothing in the logs to indicate that the device is lost to the server (or even disabled).

Comment 10 Jose Alonso 2011-07-01 00:25:46 UTC
I have the same problem with a touchpad (Dell laptop).
The enable/disable touchpad was working correctly on F14 and
is not working on F15 (using gsettings or dconf-editor).

I think this problem is with all touchpads on F15.

Using xinput you can enable and disable correctly the touchpad -
   xinput list 
        ...
        SynPS/2 Synaptics TouchPad    id=14  [slave  pointer  (2)]
        ...

   xinput list-props 14 | grep "Device Enabled"
            Device Enabled (125):   1           <----- ENABLED

   to disable:
   xinput set-int-prop 14 "Device Enabled" 8 0
   to enable:
   xinput set-int-prop 14 "Device Enabled" 8 1

The problem occurs if you do -
   gsettings set org.gnome.settings-daemon.peripherals.touchpad \
     touchpad-enabled false
   turns correctly the "Device Enabled (125):  0"
   but, after this, you can't enable the touchpad using:
   gsettings set org.gnome.settings-daemon.peripherals.touchpad \
     touchpad-enabled true
   or
   xinput set-int-prop 14 "Device Enabled" 8 1

To restore the touchpad -
   gsettings set org.gnome.settings-daemon.peripherals.touchpad \
     touchpad-enabled true
   do a user logout and a new login and the touchpad is working.
   (suspending and resuming the laptop also works)

Comment 11 Jose Alonso 2011-07-03 20:49:57 UTC
Hi,

The enable/disable of the touchpad is made in gnome-settings-daemon.
The code first call gdk_device_manager_list_devices() for a list
of the GdkDevice's.
When a device is "disabled", sometimes, the touchpad device disappers
of the list (GdkDevice). Then is not possible to enable it again.
The real "bug" is why the device disappears of this list.

But the device is accessible to Xorg, and enabling it using other
"code" works (the code of gnome-settings-daemon 2).

Then I made a patch that do a "work around" to enable it.
With this patch is also a trivial patch that make it possible
the XF86TouchpadToggle works for me.

version: gnome-settings-daemon-3.0.1-6.fc15

patch status: works for me.

Comment 12 Jose Alonso 2011-07-03 20:57:04 UTC
Created attachment 511085 [details]
patch to enable touchpad and use of XF86TouchpadToggle

Comment 13 Peter Hutterer 2011-08-02 05:36:47 UTC
Confirmed, this is a bug. I think this was introduced upstream by 3549f9bdc9941c1ebfd2ec35bf7a267a77632af5.

Problem as Jose rightly discovered is that once the touchpad is enabled, it doesn't show up in the list anymore. This is the wrong approach, since toggling that property means the device is _really_ disabled in X, not just disabled the way syndaemon disables it (which simply discards events in-driver). Disabling the device through the Device Enabled prop is mostly the same as actually unplugging it.

Suggested solutions: either use the Synaptics Off property (which requires some synchronization with "disable touchpad while typing") or run through all X devices when enabling the touchpad.

My rough guess why this broke: a disabled device counts as floating, so i guess gdk_device_manager_list_devices won't list it.

Comment 14 tuxor 2011-10-05 10:39:06 UTC
Still not fixed? I have the same problem on a ThinkPad T400s.

Comment 15 tuxor 2011-11-26 17:09:37 UTC
Just wanted to tell, that this vanished for me (on ThinkPad T400s) after installing Fedora 16 (x86_64). Everything is working fine now.

Comment 16 Peter Hutterer 2011-11-29 04:09:13 UTC
Looks like upstream commit GNOME_SETTINGS_DAEMON_3_1_91-9-g1d29d29, see also https://bugzilla.gnome.org/show_bug.cgi?id=656397. Ships with F16 and current rawhide, closing bug.

Thanks for the reminder.


Note You need to log in before you can comment on or make changes to this bug.