Touchpad Double-Tap Behaves Differently than Double-Click Aspire E5-576G

2»

Answers

  • Seihoukei
    Seihoukei Member Posts: 2 New User
    edited February 2021
    First of all, thanks for the slow double tap trick at least. It's annoying but it works. The other thing that works is using touchpad buttons - most touchpads have those in lower section even if not separated visually.

    Super disappointed to hit the issue after getting new Predator laptop and finding the over year old thread that's pretty much unresolved on whichever (Ableton/Win10/Acer/third-party) side the problem is.

    Maybe I can bring a little bit more attention to the issue with whatever information I could obtain by experimenting around. It's the thread people will find when they look up the issue (literally the only relevant google result for an issue on several result pages), so probably this might be a proper place for further directions.

    The only software that people seems to complain here (besides youtube) is Ableton, but there might be a simple reason - very few software uses "double click + drag", moreso in a way that dragging where you doubleclicked makes difference, and it's exactly what's causing the problem. That's not exactly a rare gesture, as there's text selection with double-clicking the word and then dragging around - wherever you drag, the chosen word is selected fully, whether it's at the beginning or the end of selection. However, by design for this kind of selection it does not matter if you move the mouse along the word, the whole word is gonna be selected anyways.

    In Ableton, if you doubleclick, the full-length note is created. If you doubleclick and move, you set the end of the note by mouse position. So, if instead of "double click" event application receives "double click, drag" events - we get the result we see. Note is created at full length (sometimes you can see it for a frame), then its end is set to wherever cursor is as if you dragged mouse there.


    IMPORTANT DISCLAIMER: Further text is pure speculation based on my knowledge and understanding of how things work as a software developer. I'm no hardware engineer, neither have I worked with system at lower levels in last several years. I might be wrong on many levels, although I believe most of my experience still applies and the following is true. 

    The fact it does not happen if you click slowly leads me personally to think the problem is in sequence of events sent to program. The chain of events produced by "touchpad gecture => mouse control" conversion. As we know, usual controls are:
    - Touch for click
    - Touch-move for mouse movement
    - Touch + touch for double tap
    - Touch + touch-move for dragging with left mouse button.
    There are some algorithms in work that make difference between short touch and touch-move. Something among the lines of "so, user did a short touch and started a new one, now if he releases touch quickly without movement, it's a double-click, otherwise it's a drag". I don't know if it's happening at hardware level, driver level or software level, really. But what I see as most likely cause of problem is that cancelling touch+touch-move into touch+touch is processed incorrectly on either side. 

    Returning to the "hack" we have currently - tapping slowly - how slow should be the tap? From my experiments, it should be slow enough to not register a click+drag (so second touch is registered as single separate touch-move, just moving cursor around, and not as part of touch + touch-move gesturem which results in text/area selection), but fast enough to register as touch+touch which seems to have a wider time window (and most likely is adjustable in windows mouse settings). It all comes down to the fact touchpad and system work in different abstractions. Touchpad converts gestures to primitive actions. Touchpad is unaware of concept of "double clicks". Touchpad can say if it's "click", "drag" or "click+drag" (multifinger gestures are irrelevant), and differentiates them based on its own settings. System, on the other hand, converts mouse actions to events. It's mostly unaware of concept of "touch" (within scope we are exploring), but can say if it was a click, or double click, or triple click (yes this thing exists, you can just triple click right here to see whole paragraph selected).

    Sooo, my conclusion, this is what happens in 4 actors (user => touchpad => system => ableton):

    Fast double-tap:

    User : touch
    User : release
    Touchpad : it was a short touch without movement, so it's a mouse click
    System : mouse click! (fires event)
    User : touch
    Touchpad: it was a short pause, so it's beginning of drag
    System : drag start! (fires event)
    User : release
    Touchpad : it was a short touch without movement, so it's a mouse click
    System : the second click came fast enough after first so it's a double click! (fires event)
    Ableton : creating note
    Touchpad : user has released the touch so the drag has ended
    System : drag end! (fires event)
    Ableton : moving note end to where drag ended

    Long double-tap:

    User : touch
    User : release
    Touchpad : it was a short touch without movement, so it's a mouse click
    System : mouse click! (fires event)
    User : waits a bit
    Touchpad : Okay, no second tap came, resetting state
    User : touch
    User : release
    Touchpad : it was a short touch without movement, so it's a mouse click
    System : the second click came fast enough after first so it's a double click! (fires event)
    Ableton : creating note

    So, there are many simple solutions:
    "Touchpad" side could delay issuing a "drag start" message until short touch ("tap") time is exceed or actual movement started. (I can see very minor issues with this)
    "System"/"Touchpad" tandem could issue "drag end" / "drag cancel" event before firing "double click" event. (Actually the most reasonable solution I see)
    "Ableton" side could check if drag state was initiated before mousedown for second click is sent, and ignore drag end if it's so. (This is a hack, and I dislike this soltion a lot)

    And now if all above is true, the real problem emerges, why this is never gonna be fixed: It can be fixed on either side of the three, and exactly because of that every side will expect either of the other two to fix the issue. We are probably doomed to concept of "slow doubleclick" from now on. 

    Sorry for any typos, mistakes, and if my text seems to convey any kind of malice / anger / is just harsh / hard to read. It's not my native language. No hard feelings except for slight disappointment :)
  • Seihoukei
    Seihoukei Member Posts: 2 New User
    I guess my post with technical information got lost in my clumsy editing, but the issue, even if more than year old, still persists, and this topic is the only relevant google result on the issue, so for people who ended up here (having issues with double-tap doing not what intended/more than intended in software like Ableton), there are few solutions.

    1) The one posted by users above : just double tap slowly. Slow enough for dragging/selection not to start, but fast enough for double click to register (you might need to extend double click time in mouse settings).

    2) The probably easier option : use touchpad's button. Most touchpads have buttons in lower part, that you can physically press, even if not visually separated. They work exactly as mouse buttons unlike tapping the touchpad.

    3) You can disable "Tap twice and drag to multi-select" in Windows10's Settings -> Devices -> Touchpad, if you don't mind losing that functionality - while unobvious, it also renders you unable to drag stuff around using only touchpad. Sadly, under Win10 it's the one that causes Doubleclick+drag to misfire on some touchpads and make apps misbehave as a result. It can't quickly identify whether you are doublelicking or dragging and triggers both.

    4) Disable conflicting "double click + drag" activity in your software if possible. While it does not seem to be possible to do in Ableton, you can use Draw mode (pencil switch in top right corner by default) to draw notes with a single click instead of double click.