|
@@ -631,7 +631,7 @@ void SDL_SendMouseMotion(Uint64 timestamp, SDL_Window *window, SDL_MouseID mouse
|
|
|
{
|
|
|
if (window && !relative) {
|
|
|
SDL_Mouse *mouse = SDL_GetMouse();
|
|
|
- if (!SDL_UpdateMouseFocus(window, x, y, SDL_GetMouseButtonState(mouse, mouseID, true), (mouseID != SDL_TOUCH_MOUSEID))) {
|
|
|
+ if (!SDL_UpdateMouseFocus(window, x, y, SDL_GetMouseButtonState(mouse, mouseID, true), (mouseID != SDL_TOUCH_MOUSEID && mouseID != SDL_PEN_MOUSEID))) {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
@@ -689,7 +689,7 @@ static void SDL_PrivateSendMouseMotion(Uint64 timestamp, SDL_Window *window, SDL
|
|
|
|
|
|
// SDL_HINT_MOUSE_TOUCH_EVENTS: controlling whether mouse events should generate synthetic touch events
|
|
|
if (mouse->mouse_touch_events) {
|
|
|
- if (mouseID != SDL_TOUCH_MOUSEID && !relative && track_mouse_down) {
|
|
|
+ if (mouseID != SDL_TOUCH_MOUSEID && mouseID != SDL_PEN_MOUSEID && !relative && track_mouse_down) {
|
|
|
if (window) {
|
|
|
float normalized_x = x / (float)window->w;
|
|
|
float normalized_y = y / (float)window->h;
|
|
@@ -777,7 +777,7 @@ static void SDL_PrivateSendMouseMotion(Uint64 timestamp, SDL_Window *window, SDL
|
|
|
|
|
|
// Post the event, if desired
|
|
|
if (SDL_EventEnabled(SDL_EVENT_MOUSE_MOTION)) {
|
|
|
- if ((!mouse->relative_mode || mouse->warp_emulation_active) && mouseID != SDL_TOUCH_MOUSEID) {
|
|
|
+ if ((!mouse->relative_mode || mouse->warp_emulation_active) && mouseID != SDL_TOUCH_MOUSEID && mouseID != SDL_PEN_MOUSEID) {
|
|
|
// We're not in relative mode, so all mouse events are global mouse events
|
|
|
mouseID = SDL_GLOBAL_MOUSE_ID;
|
|
|
}
|
|
@@ -880,7 +880,7 @@ static void SDL_PrivateSendMouseButton(Uint64 timestamp, SDL_Window *window, SDL
|
|
|
|
|
|
// SDL_HINT_MOUSE_TOUCH_EVENTS: controlling whether mouse events should generate synthetic touch events
|
|
|
if (mouse->mouse_touch_events) {
|
|
|
- if (mouseID != SDL_TOUCH_MOUSEID && button == SDL_BUTTON_LEFT) {
|
|
|
+ if (mouseID != SDL_TOUCH_MOUSEID && mouseID != SDL_PEN_MOUSEID && button == SDL_BUTTON_LEFT) {
|
|
|
if (down) {
|
|
|
track_mouse_down = true;
|
|
|
} else {
|
|
@@ -948,7 +948,7 @@ static void SDL_PrivateSendMouseButton(Uint64 timestamp, SDL_Window *window, SDL
|
|
|
|
|
|
// Post the event, if desired
|
|
|
if (SDL_EventEnabled(type)) {
|
|
|
- if ((!mouse->relative_mode || mouse->warp_emulation_active) && mouseID != SDL_TOUCH_MOUSEID) {
|
|
|
+ if ((!mouse->relative_mode || mouse->warp_emulation_active) && mouseID != SDL_TOUCH_MOUSEID && mouseID != SDL_PEN_MOUSEID) {
|
|
|
// We're not in relative mode, so all mouse events are global mouse events
|
|
|
mouseID = SDL_GLOBAL_MOUSE_ID;
|
|
|
} else {
|