mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-06 03:18:13 +00:00
Fix #13057 - fixes bug with NSEventTypeMouseMoved having a NULL window causing us to suppress future mouse move events because the window was considered out of focus.
This commit is contained in:

committed by
Sam Lantinga

parent
d16371b923
commit
968222e74f
@@ -450,12 +450,18 @@ void Cocoa_HandleMouseEvent(SDL_VideoDevice *_this, NSEvent *event)
|
|||||||
// All events except NSEventTypeMouseExited can only happen if the window
|
// All events except NSEventTypeMouseExited can only happen if the window
|
||||||
// has mouse focus, so we'll always set the focus even if we happen to miss
|
// has mouse focus, so we'll always set the focus even if we happen to miss
|
||||||
// NSEventTypeMouseEntered, which apparently happens if the window is
|
// NSEventTypeMouseEntered, which apparently happens if the window is
|
||||||
// created under the mouse on macOS 12.7
|
// created under the mouse on macOS 12.7. But, only set the focus if
|
||||||
|
// the event acutally has a non-NULL window, otherwise what would happen
|
||||||
|
// is that after an NSEventTypeMouseEntered there would sometimes be
|
||||||
|
// NSEventTypeMouseMoved without a window causing us to suppress subsequent
|
||||||
|
// mouse move events.
|
||||||
NSEventType event_type = [event type];
|
NSEventType event_type = [event type];
|
||||||
if (event_type == NSEventTypeMouseExited) {
|
if (event_type == NSEventTypeMouseExited) {
|
||||||
Cocoa_MouseFocus = NULL;
|
Cocoa_MouseFocus = NULL;
|
||||||
} else {
|
} else {
|
||||||
Cocoa_MouseFocus = [event window];
|
if ([event window] != NULL) {
|
||||||
|
Cocoa_MouseFocus = [event window];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (event_type) {
|
switch (event_type) {
|
||||||
|
Reference in New Issue
Block a user