mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-06-01 14:43:55 +00:00
add getMousePos() multiple screens support
This commit is contained in:
parent
7affc72180
commit
a9655c1230
@ -70,8 +70,8 @@ bool move_mouse_smooth(size_t x, size_t y, double lowSpeed,
|
|||||||
return cbool;
|
return cbool;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMPoint get_mouse_pos(){
|
MMPointInt32 get_mouse_pos(){
|
||||||
MMPoint pos = getMousePos();
|
MMPointInt32 pos = getMousePos();
|
||||||
|
|
||||||
// Return object with .x and .y.
|
// Return object with .x and .y.
|
||||||
// printf("%zu\n%zu\n", pos.x, pos.y );
|
// printf("%zu\n%zu\n", pos.x, pos.y );
|
||||||
|
@ -82,7 +82,7 @@ bool smoothlyMoveMouse(MMPoint endPoint, double lowSpeed, double highSpeed);
|
|||||||
// bool smoothlyMoveMouse(MMPoint point);
|
// bool smoothlyMoveMouse(MMPoint point);
|
||||||
|
|
||||||
/* Returns the coordinates of the mouse on the current screen. */
|
/* Returns the coordinates of the mouse on the current screen. */
|
||||||
MMPoint getMousePos(void);
|
MMPointInt32 getMousePos(void);
|
||||||
|
|
||||||
/* Holds down or releases the mouse with the given button in the current
|
/* Holds down or releases the mouse with the given button in the current
|
||||||
* position. */
|
* position. */
|
||||||
|
@ -144,13 +144,13 @@ void dragMouse(MMPointInt32 point, const MMMouseButton button){
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
MMPoint getMousePos(){
|
MMPointInt32 getMousePos(){
|
||||||
#if defined(IS_MACOSX)
|
#if defined(IS_MACOSX)
|
||||||
CGEventRef event = CGEventCreate(NULL);
|
CGEventRef event = CGEventCreate(NULL);
|
||||||
CGPoint point = CGEventGetLocation(event);
|
CGPoint point = CGEventGetLocation(event);
|
||||||
CFRelease(event);
|
CFRelease(event);
|
||||||
|
|
||||||
return MMPointFromCGPoint(point);
|
return MMPointInt32FromCGPoint(point);
|
||||||
#elif defined(USE_X11)
|
#elif defined(USE_X11)
|
||||||
int x, y; /* This is all we care about. Seriously. */
|
int x, y; /* This is all we care about. Seriously. */
|
||||||
Window garb1, garb2; /* Why you can't specify NULL as a parameter */
|
Window garb1, garb2; /* Why you can't specify NULL as a parameter */
|
||||||
@ -161,12 +161,12 @@ MMPoint getMousePos(){
|
|||||||
XQueryPointer(display, XDefaultRootWindow(display), &garb1, &garb2,
|
XQueryPointer(display, XDefaultRootWindow(display), &garb1, &garb2,
|
||||||
&x, &y, &garb_x, &garb_y, &more_garbage);
|
&x, &y, &garb_x, &garb_y, &more_garbage);
|
||||||
|
|
||||||
return MMPointMake(x, y);
|
return MMPointInt32Make(x, y);
|
||||||
#elif defined(IS_WINDOWS)
|
#elif defined(IS_WINDOWS)
|
||||||
POINT point;
|
POINT point;
|
||||||
GetCursorPos(&point);
|
GetCursorPos(&point);
|
||||||
|
|
||||||
return MMPointFromPOINT(point);
|
return MMPointInt32FromPOINT(point);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,7 +403,7 @@ static double crude_hypot(double x, double y){
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool smoothlyMoveMouse(MMPoint endPoint, double lowSpeed, double highSpeed){
|
bool smoothlyMoveMouse(MMPoint endPoint, double lowSpeed, double highSpeed){
|
||||||
MMPoint pos = getMousePos();
|
MMPointInt32 pos = getMousePos();
|
||||||
MMSizeInt32 screenSize = getMainDisplaySize();
|
MMSizeInt32 screenSize = getMainDisplaySize();
|
||||||
double velo_x = 0.0, velo_y = 0.0;
|
double velo_x = 0.0, velo_y = 0.0;
|
||||||
double distance;
|
double distance;
|
||||||
|
Loading…
Reference in New Issue
Block a user