Attempt to make the MacOS mouse more precise.

This commit is contained in:
OBattler
2023-08-12 18:48:25 +02:00
parent 64fed5871a
commit d9784e524e
3 changed files with 25 additions and 1 deletions

View File

@@ -379,6 +379,18 @@ atomic_double_add(_Atomic double *var, double val)
atomic_store(var, temp);
}
void
mouse_scale_fx(double x)
{
atomic_double_add(&mouse_x, ((double) x) * mouse_sensitivity);
}
void
mouse_scale_fy(double y)
{
atomic_double_add(&mouse_y, ((double) y) * mouse_sensitivity);
}
void
mouse_scale_x(int x)
{
@@ -391,6 +403,15 @@ mouse_scale_y(int y)
atomic_double_add(&mouse_y, ((double) y) * mouse_sensitivity);
}
void
mouse_scalef(double x, double y)
{
pclog("DPI = %lf (%lfx%lf)\n", plat_get_dpi(), monitors[0].mon_res_x, monitors[0].mon_res_y);
mouse_scale_fx(x);
mouse_scale_fy(y);
}
void
mouse_scale(int x, int y)
{

View File

@@ -85,8 +85,11 @@ extern void mouse_subtract_coords(int *delta_x, int *delta_y, int *o_
extern int mouse_moved(void);
extern int mouse_state_changed(void);
extern int mouse_mbut_changed(void);
extern void mouse_scale_fx(double x);
extern void mouse_scale_fy(double y);
extern void mouse_scale_x(int x);
extern void mouse_scale_y(int y);
extern void mouse_scalef(double x, double y);
extern void mouse_scale(int x, int y);
extern void mouse_set_z(int z);
extern void mouse_clear_z(void);

View File

@@ -33,7 +33,7 @@ CocoaEventFilter::nativeEventFilter(const QByteArray &eventType, void *message,
|| [event type] == NSEventTypeLeftMouseDragged
|| [event type] == NSEventTypeRightMouseDragged
|| [event type] == NSEventTypeOtherMouseDragged) {
mouse_scale([event deltaX], [event deltaY]);
mouse_scalef((double) [event deltaX], (double) [event deltaY]);
return true;
}
if ([event type] == NSEventTypeScrollWheel) {