Proper handling of middle mouse event on capFourButtons and capMiddleButton

capable touchpads.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42329 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Siarzhuk Zharski 2011-06-27 18:19:45 +00:00
parent cb2f9709c5
commit 4b722b91db
3 changed files with 8 additions and 1 deletions

View File

@ -96,7 +96,8 @@ enum button_ids
{
kNoButton = 0x00,
kLeftButton = 0x01,
kRightButton = 0x02
kRightButton = 0x02,
kMiddleButton = 0x04
};

View File

@ -123,6 +123,9 @@ get_synaptics_movment(synaptics_cookie *cookie, mouse_movement *movement)
event.wValue = wValue;
event.gesture = false;
if (sTouchpadInfo.capMiddleButton || sTouchpadInfo.capFourButtons)
event.buttons |= ((event_buffer[0] ^ event_buffer[3]) & 0x01) << 2;
} else {
bool finger = event_buffer[0] >> 5 & 1;
if (finger) {
@ -160,6 +163,8 @@ query_capability(ps2_dev *dev)
sTouchpadInfo.capExtended = val[0] >> 7 & 1;
TRACE("SYNAPTICS: extended mode %2x\n", val[0] >> 7 & 1);
TRACE("SYNAPTICS: middle button %2x\n", val[0] >> 2 & 1);
sTouchpadInfo.capMiddleButton = val[0] >> 2 & 1;
TRACE("SYNAPTICS: sleep mode %2x\n", val[2] >> 4 & 1);
sTouchpadInfo.capSleep = val[2] >> 4 & 1;
TRACE("SYNAPTICS: four buttons %2x\n", val[2] >> 3 & 1);

View File

@ -43,6 +43,7 @@ typedef struct {
uint8 minorVersion;
bool capExtended;
bool capMiddleButton;
bool capSleep;
bool capFourButtons;
bool capMultiFinger;