Some mice have two wheels
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9088 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -111,7 +111,8 @@ typedef struct {
|
|||||||
int32 clicks;
|
int32 clicks;
|
||||||
int32 modifiers;
|
int32 modifiers;
|
||||||
bigtime_t timestamp;
|
bigtime_t timestamp;
|
||||||
int32 wheel_delta;
|
int32 wheel_ydelta;
|
||||||
|
int32 wheel_xdelta;
|
||||||
} mouse_movement;
|
} mouse_movement;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,3 +7,8 @@ Addon <input>mouse : input_server/devices :
|
|||||||
: false
|
: false
|
||||||
: be <nogrist>input_server ;
|
: be <nogrist>input_server ;
|
||||||
|
|
||||||
|
if $(COMPILE_FOR_R5) {
|
||||||
|
} else {
|
||||||
|
LinkSharedOSLibs <input>mouse : <boot!home!config!lib>libopenbeos.so ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -371,6 +371,7 @@ MouseInputDevice::DeviceWatcher(void *arg)
|
|||||||
BMessage *message;
|
BMessage *message;
|
||||||
char log[128];
|
char log[128];
|
||||||
while (dev->active) {
|
while (dev->active) {
|
||||||
|
memset(&movements, 0, sizeof(movements));
|
||||||
if (ioctl(dev->driver_fd, kGetMouseMovements, &movements) < B_OK)
|
if (ioctl(dev->driver_fd, kGetMouseMovements, &movements) < B_OK)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -418,12 +419,12 @@ MouseInputDevice::DeviceWatcher(void *arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (movements.wheel_delta != 0) {
|
if ((movements.wheel_ydelta != 0) || (movements.wheel_xdelta != 0)) {
|
||||||
message = new BMessage(B_MOUSE_WHEEL_CHANGED);
|
message = new BMessage(B_MOUSE_WHEEL_CHANGED);
|
||||||
if (message) {
|
if (message) {
|
||||||
message->AddInt64("when", movements.timestamp);
|
message->AddInt64("when", movements.timestamp);
|
||||||
message->AddFloat("be:wheel_delta_x", 0.0);
|
message->AddFloat("be:wheel_delta_x", movements.wheel_xdelta);
|
||||||
message->AddFloat("be:wheel_delta_y", movements.wheel_delta);
|
message->AddFloat("be:wheel_delta_y", movements.wheel_ydelta);
|
||||||
|
|
||||||
sSingletonMouseDevice->EnqueueMessage(message);
|
sSingletonMouseDevice->EnqueueMessage(message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ interpret_ms_buffer(my_device_info *my_dev)
|
|||||||
info.ydelta = -value;
|
info.ydelta = -value;
|
||||||
break;
|
break;
|
||||||
case USAGE_ID_WHEEL:
|
case USAGE_ID_WHEEL:
|
||||||
info.wheel_delta = -value;
|
info.wheel_ydelta = -value;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user