aboutsummaryrefslogtreecommitdiff
path: root/sokol_app.h
diff options
context:
space:
mode:
authorAndre Weissflog <floooh@gmail.com>2024-02-10 15:32:51 +0100
committerAndre Weissflog <floooh@gmail.com>2024-02-10 15:32:51 +0100
commit73b5ed982b786a9dec86557d5052c95fde7bbb04 (patch)
tree0fd3dff409975aef53a4cd2f047723f7777f0542 /sokol_app.h
parent5fe244ea585a432806e8f2aeeab9e4b9003af921 (diff)
parenta40c4460c9383228726efcb9f5b96abc996ba0fe (diff)
Merge branch 'master' into issue904-pass-cleanup
Diffstat (limited to 'sokol_app.h')
-rw-r--r--sokol_app.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/sokol_app.h b/sokol_app.h
index 6c998c55..f55e57fd 100644
--- a/sokol_app.h
+++ b/sokol_app.h
@@ -1624,7 +1624,7 @@ typedef struct sapp_allocator {
_SAPP_LOGITEM_XMACRO(ANDROID_NATIVE_ACTIVITY_DONE, "NativeActivity done") \
_SAPP_LOGITEM_XMACRO(ANDROID_NATIVE_ACTIVITY_ONCREATE, "NativeActivity onCreate") \
_SAPP_LOGITEM_XMACRO(ANDROID_CREATE_THREAD_PIPE_FAILED, "failed to create thread pipe") \
- _SAPP_LOGITEM_XMACRO(ANDROID_NATIVE_ACTIVITY_CREATE_SUCCESS, "NativeActivity sucessfully created") \
+ _SAPP_LOGITEM_XMACRO(ANDROID_NATIVE_ACTIVITY_CREATE_SUCCESS, "NativeActivity successfully created") \
_SAPP_LOGITEM_XMACRO(WGPU_SWAPCHAIN_CREATE_SURFACE_FAILED, "wgpu: failed to create surface for swapchain") \
_SAPP_LOGITEM_XMACRO(WGPU_SWAPCHAIN_CREATE_SWAPCHAIN_FAILED, "wgpu: failed to create swapchain object") \
_SAPP_LOGITEM_XMACRO(WGPU_SWAPCHAIN_CREATE_DEPTH_STENCIL_TEXTURE_FAILED, "wgpu: failed to create depth-stencil texture for swapchain") \
@@ -1812,7 +1812,7 @@ SOKOL_APP_API_DECL sapp_desc sapp_query_desc(void);
SOKOL_APP_API_DECL void sapp_request_quit(void);
/* cancel a pending quit (when SAPP_EVENTTYPE_QUIT_REQUESTED has been received) */
SOKOL_APP_API_DECL void sapp_cancel_quit(void);
-/* initiate a "hard quit" (quit application without sending SAPP_EVENTTYPE_QUIT_REQUSTED) */
+/* initiate a "hard quit" (quit application without sending SAPP_EVENTTYPE_QUIT_REQUESTED) */
SOKOL_APP_API_DECL void sapp_quit(void);
/* call from inside event callback to consume the current event (don't forward to platform) */
SOKOL_APP_API_DECL void sapp_consume_event(void);
@@ -3951,6 +3951,20 @@ _SOKOL_PRIVATE void _sapp_macos_frame(void) {
[_sapp.macos.window makeKeyAndOrderFront:nil];
_sapp_macos_update_dimensions();
[NSEvent setMouseCoalescingEnabled:NO];
+
+ // workaround for window not being focused during a long init callback
+ // for details see: https://github.com/floooh/sokol/pull/982
+ // also see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2342
+ NSEvent *focusevent = [NSEvent otherEventWithType:NSEventTypeAppKitDefined
+ location:NSZeroPoint
+ modifierFlags:0x40
+ timestamp:0
+ windowNumber:0
+ context:nil
+ subtype:NSEventSubtypeApplicationActivated
+ data1:0
+ data2:0];
+ [NSApp postEvent:focusevent atStart:YES];
}
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication*)sender {
@@ -5821,6 +5835,9 @@ _SOKOL_PRIVATE void _sapp_emsc_unregister_eventhandlers(void) {
emscripten_set_pointerlockerror_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, 0, true, 0);
emscripten_set_focus_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, true, 0);
emscripten_set_blur_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, true, 0);
+ if (!_sapp.desc.html5_canvas_resize) {
+ emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, 0, true, 0);
+ }
sapp_js_remove_beforeunload_listener();
if (_sapp.clipboard.enabled) {
sapp_js_remove_clipboard_listener();