Contribute
Register

New VoodooPS2Controller, Keyboard, Trackpad (ClickPad support)

Status
Not open for further replies.
Scrolling and middle button is working. But i get the inadvertent double clicks.

Maybe you could make scrolling via middle button a configure option?

Accidental double clicks when you do what? Using buttons on trackpad or buttons on stick? Or when tapping on the pad? I think it may have to do with the code dealing w/ simulated middle button. Will look at it but would like confirmation on the conditions under which it happens.

And... yes, I probably would make middle button scroll an option.

How well does the scrolling work using the mousemultiplier for scrolling (does it feel right, or should these be separate multipliers?)??

And did I screw up the inversion? I notice your code negates the scroll values...
Should I have:
dispatchScrollWheelEventX(-scrolly, -scrollx, 0, now_abs)
instead of:
dispatchScrollWheelEventX(scrolly, scrollx, 0, now_abs)
 
Accidental double clicks when you do what? Using buttons on trackpad or buttons on stick? Or when tapping on the pad? I think it may have to do with the code dealing w/ simulated middle button. Will look at it but would like confirmation on the conditions under which it happens.

And... yes, I probably would make middle button scroll an option.

How well does the scrolling work using the mousemultiplier for scrolling (does it feel right, or should these be separate multipliers?)??

And did I screw up the inversion? I notice your code negates the scroll values...
Should I have:
dispatchScrollWheelEventX(-scrolly, -scrollx, 0, now_abs)
instead of:
dispatchScrollWheelEventX(scrolly, scrollx, 0, now_abs)

There are two buttons on the trackpad, which and the trackpad itself are working fine. There is another three-button-set for the trackpoint, and here i get those double clicks on only a single button press for the left and right button.

The mouse multiplier seems to work fine to me.

Regarding the inversion, this was to align the (vertical) scrolling behaviour with the trackpad, i.e. pushing the trackpoint upwards will scroll upwards the same as moving fingers on trackpad upwards. In your latest version they move the opposite. Maybe another configure option :)

EDIT: I tested your latest code (commit 2417ade70c), which is giving some kind of lag, but no more double clicks.
I'd like to propose something like the following change, as it seems redundant emulating a middle button, when a physical middle button was pressed.
Code:
diff --git a/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp b/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
index e760ced..829efc5 100644
--- a/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
+++ b/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
@@ -968,7 +968,8 @@ void ApplePS2SynapticsTouchPad::dispatchEventsWithPacket(UInt8* packet, UInt32 p
     buttons |= passbuttons;
 
     // allow middle button to be simulated with two buttons down
-    buttons = middleButton(buttons, now_abs, false);
+    if (!(packet[1] & 0x4))
+        buttons = middleButton(buttons, now_abs, false);
 
     // now deal with pass through packet moving/scrolling
     if (passthru && 3 == w)
 
There are two buttons on the trackpad, which and the trackpad itself are working fine. There is another three-button-set for the trackpoint, and here i get those double clicks on only a single button press for the left and right button.

That's what I figured on the physical arrangement. I think I see the problem and will push a fix.

The mouse multiplier seems to work fine to me.

Cool. So I can make it a separate item (or not) doesn't matter as far as the "general feel." Direction is another issue completely though, so it might be useful there... see below...

Regarding the inversion, this was to align the (vertical) scrolling behaviour with the trackpad, i.e. pushing the trackpoint upwards will scroll upwards the same as moving fingers on trackpad upwards.

I'm just going to make a separate MouseScrollMultiplierX/Y so you can set it however...

And I think I'll invert them by default, since that seems to be the "normal" way, then if people want something different they can just put in negative numbers if they want...
 
There are two buttons on the trackpad, which and the trackpad itself are working fine. There is another three-button-set for the trackpoint, and here i get those double clicks on only a single button press for the left and right button.

The mouse multiplier seems to work fine to me.

Regarding the inversion, this was to align the (vertical) scrolling behaviour with the trackpad, i.e. pushing the trackpoint upwards will scroll upwards the same as moving fingers on trackpad upwards. In your latest version they move the opposite. Maybe another configure option :)

EDIT: I tested your latest code (commit 2417ade70c), which is giving some kind of lag, but no more double clicks.
I'd like to propose something like the following change, as it seems redundant emulating a middle button, when a physical middle button was pressed.
Code:
diff --git a/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp b/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
index e760ced..829efc5 100644
--- a/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
+++ b/VoodooPS2Trackpad/VoodooPS2SynapticsTouchPad.cpp
@@ -968,7 +968,8 @@ void ApplePS2SynapticsTouchPad::dispatchEventsWithPacket(UInt8* packet, UInt32 p
     buttons |= passbuttons;
 
     // allow middle button to be simulated with two buttons down
-    buttons = middleButton(buttons, now_abs, false);
+    if (!(packet[1] & 0x4))
+        buttons = middleButton(buttons, now_abs, false);
 
     // now deal with pass through packet moving/scrolling
     if (passthru && 3 == w)

That is already done in the middleButton function, so it won't make a difference:
Code:
// from ApplePS2SynapticsTouchPad::middleButton...

    // if middle button is physically down (trackpoint/passthru) then just let it...
    if (buttons & 0x4)
        return buttons;

What is the lag...
 
Since you're building your own from my repo, try the latest commit. I rearranged some of the config items for scrolling/mouse multipliers, etc. Made middle button scroll an option too. My intention is to have positive config items be "normal" and if you want to do something non-standard (for example, to have natural direction for trackpad, but mouse wheel/middle button scroll "normal") then you can put negative numbers in the config.

Let me know if I got the inversions right for that...

Thanks!
 
It works now. Thanks RehabMan

Great.

By the way, you might want to test your other Fn+fkeys to see if they give break codes. And if they don't add them to your Breakless PS2 list. Otherwise, once you press them, the system will be inundating the active app with repeating key events (until you press another key...).

The Event Viewer in KeyRemap4MacBook works good for testing this...
 
Since you're building your own from my repo, try the latest commit. I rearranged some of the config items for scrolling/mouse multipliers, etc. Made middle button scroll an option too. My intention is to have positive config items be "normal" and if you want to do something non-standard (for example, to have natural direction for trackpad, but mouse wheel/middle button scroll "normal") then you can put negative numbers in the config.

Let me know if I got the inversions right for that...

Thanks!

Just compiled and all seems to work fine for my purposes, also trackpoint scrolling is in line with default trackpad behavior.
The lag (there seemed to be a delay between the click action and the actual result) is gone now, maybe it was just an imagination or something else.

Thank you for your great work.
 
Just compiled and all seems to work fine for my purposes, also trackpoint scrolling is in line with default trackpad behavior.
The lag (there seemed to be a delay between the click action and the actual result) is gone now, maybe it was just an imagination or something else.

Thank you for your great work.

Hey thanks. I'd been waiting for someone to come along to test that "pass through" functionality and tell me what is wrong with it. It was written just from spec without any hardware to test with.
 
Hi RehabMan,

I have a dell latitude e4310 with ML.
I'm using your voodoops2controler.

This laptop has a synaptics trackpad but its one that returns

Feb 22 11:10:21 localhost kernel[0]: VoodooPS2SynapticsTouchPad Version 1.7.15 loaded...
Feb 22 11:10:21 localhost kernel[0]: ApplePS2SynapticsTouchPad::probe entered...
Feb 22 11:10:21 localhost kernel[0]: VoodooPS2Trackpad: Identify bytes = { 0x0, 0x0, 0x64 }
Feb 22 11:10:21 localhost kernel[0]: VoodooPS2Trackpad: Identify TouchPad command returned incorrect byte 2 (of 3): 0x00
Feb 22 11:10:21 localhost kernel[0]: ApplePS2SynapticsTouchPad::probe leaving.

I'm using VoodooPS2Mouse with ActLikeTrackpad.
Does this simulate scrolling?
If not is there some way to activate scrolling like pressing button 3 and moving up and down?

Besides this its the best driver so far, almost like a real trackpad :D

Beste regards,
voidRunner
 
Status
Not open for further replies.
Back
Top