|
@@ -786,6 +786,22 @@ static int translateKey(unsigned int key) {
|
|
*/
|
|
*/
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+inline void sendScrollEvent(int button, double factor) {
|
|
|
|
+ InputEvent ev;
|
|
|
|
+ ev.type = InputEvent::MOUSE_BUTTON;
|
|
|
|
+ ev.mouse_button.button_index = button;
|
|
|
|
+ ev.mouse_button.factor = factor;
|
|
|
|
+ ev.mouse_button.pressed = true;
|
|
|
|
+ ev.mouse_button.x = mouse_x;
|
|
|
|
+ ev.mouse_button.y = mouse_y;
|
|
|
|
+ ev.mouse_button.global_x = mouse_x;
|
|
|
|
+ ev.mouse_button.global_y = mouse_y;
|
|
|
|
+ ev.mouse_button.button_mask = button_mask;
|
|
|
|
+ OS_OSX::singleton->push_input(ev);
|
|
|
|
+ ev.mouse_button.pressed = false;
|
|
|
|
+ OS_OSX::singleton->push_input(ev);
|
|
|
|
+}
|
|
|
|
+
|
|
- (void)scrollWheel:(NSEvent *)event {
|
|
- (void)scrollWheel:(NSEvent *)event {
|
|
|
|
|
|
double deltaX, deltaY;
|
|
double deltaX, deltaY;
|
|
@@ -796,47 +812,21 @@ static int translateKey(unsigned int key) {
|
|
deltaY = [event scrollingDeltaY];
|
|
deltaY = [event scrollingDeltaY];
|
|
|
|
|
|
if ([event hasPreciseScrollingDeltas]) {
|
|
if ([event hasPreciseScrollingDeltas]) {
|
|
- deltaX *= 0.1;
|
|
|
|
- deltaY *= 0.1;
|
|
|
|
|
|
+ deltaX *= 0.03;
|
|
|
|
+ deltaY *= 0.03;
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
|
|
+ } else
|
|
|
|
+#endif // MAC_OS_X_VERSION_MAX_ALLOWED
|
|
|
|
+ {
|
|
deltaX = [event deltaX];
|
|
deltaX = [event deltaX];
|
|
deltaY = [event deltaY];
|
|
deltaY = [event deltaY];
|
|
}
|
|
}
|
|
-#else
|
|
|
|
- deltaX = [event deltaX];
|
|
|
|
- deltaY = [event deltaY];
|
|
|
|
-#endif /*MAC_OS_X_VERSION_MAX_ALLOWED*/
|
|
|
|
-
|
|
|
|
- if (fabs(deltaY)) {
|
|
|
|
-
|
|
|
|
- InputEvent ev;
|
|
|
|
- ev.type = InputEvent::MOUSE_BUTTON;
|
|
|
|
- ev.mouse_button.button_index = deltaY > 0 ? BUTTON_WHEEL_UP : BUTTON_WHEEL_DOWN;
|
|
|
|
- ev.mouse_button.pressed = true;
|
|
|
|
- ev.mouse_button.x = mouse_x;
|
|
|
|
- ev.mouse_button.y = mouse_y;
|
|
|
|
- ev.mouse_button.global_x = mouse_x;
|
|
|
|
- ev.mouse_button.global_y = mouse_y;
|
|
|
|
- ev.mouse_button.button_mask = button_mask;
|
|
|
|
- OS_OSX::singleton->push_input(ev);
|
|
|
|
- ev.mouse_button.pressed = false;
|
|
|
|
- OS_OSX::singleton->push_input(ev);
|
|
|
|
- }
|
|
|
|
|
|
|
|
if (fabs(deltaX)) {
|
|
if (fabs(deltaX)) {
|
|
- InputEvent ev;
|
|
|
|
- ev.type = InputEvent::MOUSE_BUTTON;
|
|
|
|
- ev.mouse_button.button_index = deltaX < 0 ? BUTTON_WHEEL_RIGHT : BUTTON_WHEEL_LEFT;
|
|
|
|
- ev.mouse_button.pressed = true;
|
|
|
|
- ev.mouse_button.x = mouse_x;
|
|
|
|
- ev.mouse_button.y = mouse_y;
|
|
|
|
- ev.mouse_button.global_x = mouse_x;
|
|
|
|
- ev.mouse_button.global_y = mouse_y;
|
|
|
|
- ev.mouse_button.button_mask = button_mask;
|
|
|
|
- OS_OSX::singleton->push_input(ev);
|
|
|
|
- ev.mouse_button.pressed = false;
|
|
|
|
- OS_OSX::singleton->push_input(ev);
|
|
|
|
|
|
+ sendScrollEvent(0 > deltaX ? BUTTON_WHEEL_RIGHT : BUTTON_WHEEL_LEFT, fabs(deltaX * 0.3));
|
|
|
|
+ }
|
|
|
|
+ if (fabs(deltaY)) {
|
|
|
|
+ sendScrollEvent(0 < deltaY ? BUTTON_WHEEL_UP : BUTTON_WHEEL_DOWN, fabs(deltaY * 0.3));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1648,7 +1638,6 @@ void OS_OSX::push_input(const InputEvent &p_event) {
|
|
|
|
|
|
InputEvent ev = p_event;
|
|
InputEvent ev = p_event;
|
|
ev.ID = last_id++;
|
|
ev.ID = last_id++;
|
|
- //print_line("EV: "+String(ev));
|
|
|
|
input->parse_input_event(ev);
|
|
input->parse_input_event(ev);
|
|
}
|
|
}
|
|
|
|
|