1
0
Fork 0
mirror of https://github.com/gwm17/glfw.git synced 2024-11-26 12:18:51 -05:00
Commit Graph

4603 Commits

Author SHA1 Message Date
Camilla Löwy fdc72edf81 Wayland: Fix missing fullscreen code path
glfwRestoreWindow assumed it was only called in windowed mode.
2022-06-20 00:57:17 +02:00
Camilla Löwy f39ffefb6a Wayland: Fix maximization by user being ignored
The internal maximization state was not updated when an event was
received that the user had changed the maximization state of a window,
and no maximization events were emitted.

This affected both the GLFW_MAXIMIZED attribute and glfwRestoreWindow.
2022-06-20 00:57:17 +02:00
Camilla Löwy ddd087d662 Wayland: Fix behavior of leaving full screen mode
These changes make GLFW fullscreen more consistent, but unfortunately
also make GLFW even more oblivious to user-initiated XDG shell
fullscreen changes.

Fixes #1995
2022-06-20 00:57:17 +02:00
Camilla Löwy 523fdf50c1 Wayland: Cleanup 2022-06-20 00:57:17 +02:00
Camilla Löwy d3ede7b684 Add credit
Related to #2108
2022-06-10 00:14:05 +02:00
Camilla Löwy a465c1c32e Win32: Simplify window class handling
By using window class atoms, we only need to mention each window class
name once, also removing the need to define _GLFW_WNDCLASSNAME.  It can
still be defined by the user as before.
2022-06-09 18:39:37 +02:00
Camilla Löwy 2ae3e0c8d7 Win32: Add separate window class for helper window
The current window procedure needs to deal with messages both for user
created windows and the hidden helper window.

This commit separates out the device message handling of the helper
window, allowing both window procedures to be less complicated.
2022-06-08 23:56:20 +02:00
Camilla Löwy ad3dbeb65f Add basic assertions for event API arguments 2022-06-08 22:14:38 +02:00
Camilla Löwy 05f6c13d11 Add support for GLFW_NATIVE_INCLUDE_NONE macro
By default, the glfw3native.h header will include the platform-specific
headers necessary for the return types of GLFW native access functions.

Sometimes it is preferrable to declare those types

This commit adds support for the GLFW_NATIVE_INCLUDE_NONE macro, which
when defined disables the inclusion of all platform-specific headers.

Fixes #1348
2022-06-08 22:14:38 +02:00
Camilla Löwy edec334b32 Cocoa: Use system header to declare id type
Related to #1348
2022-06-08 22:14:38 +02:00
Camilla Löwy 26920a1a38 X11: Fix previous error handler not being restored
GLFW did not restore the previous Xlib error handler when removing its
own, instead resetting to the default handler.

This commit saves and restores the previous error handler.

None of this is thread-safe or could ever be.

Fixes #2108
2022-06-08 22:14:38 +02:00
Camilla Löwy 736a88b067 Fix return type of functions returning bool values 2022-06-08 22:14:38 +02:00
Camilla Löwy 2c204ab52e Fix joystick user pointer NULL during disconnect
The joystick code did not distinguish between the allocation status of
the GLFW joystick object and whether it is connection to an OS level
joystick object.

These are now tracked separately.

Fixes #2092
2022-06-08 22:14:38 +02:00
Camilla Löwy e9c58bc181 Wayland: Fix missing lock key modifier bits
The modifier bits for lock keys were only set when the corresponding key
was reported as held down or latched, but not when it was released and
locked.
2022-06-08 19:20:01 +02:00
Camilla Löwy 62e175ef9f Win32: Add comment clarifying use of ToUnicode
Fixes #2100
2022-05-06 19:19:25 +02:00
Camilla Löwy ce85c7dcaf Fix GLAPIENTRY not being defined for native access
This is a follow-up to 535c3ce632.

That commit made glfw3native.h undefine GLAPIENTRY whenever
GLFW_EXPOSE_NATIVE_GLX or GLFW_EXPOSE_NATIVE_OSMESA was defined, on the
assumption that it was glfw3.h that had defined GLAPIENTRY.

If gl.h or an extension loader header has been included before glfw3.h,
then it has defined inclusion guards preventing GLAPIENTRY from being
defined later when the GLX or OSMesa header includes gl.h.

This commit ensures GLAPIENTRY is only undefined if glfw3.h defined it.

Related to #2010
2022-05-06 19:18:47 +02:00
Camilla Löwy 5c3ebfb9cc Remove OSMesa specific code from offscreen example
The OSMesa specific path is more appropriate for a test than an example.
2022-05-06 19:06:13 +02:00
Camilla Löwy 7dfd84c458 Win32: Make monitor area retrieval more consistent
The rest of this file uses GetMonitorInfoW to retrieve this information.
2022-04-28 21:58:44 +02:00
Camilla Löwy 685de9089f Fix and clarify comments for GLFWAPI 2022-04-28 21:58:44 +02:00
Camilla Löwy 09653b8c54 Move last bits of window setup to platform code
This avoids glfwCreateWindow emitting GLFW_FEATURE_UNAVAILABLE or
GLFW_FEATURE_UNIMPLEMENTED on Wayland because shared code was calling
unimplemented or unavailable platform functions during final setup.

It also makes it consistent with the final setup of full screen windows.
2022-04-28 21:58:06 +02:00
Camilla Löwy 72642ea0d1 Simplify struct stitching for sync primitives
There will not currently be more than one set of threading or timer APIs
selected regardless of how many window systems are enabled, so there is
no need for this extra complexity.
2022-04-28 21:54:25 +02:00
Camilla Löwy 8f050b5655 Wayland: Add support for older wayland-scanner
Versions of wayland-scanner prior to 1.17.91 named every global array of
wl_interface pointers 'types', making it impossible to combine several
unmodified private-code files into a single compilation unit.

This overrides that name with a macro for each file, allowing them to
coexist.

Fixes #2016
Closes #2032
2022-04-28 21:54:24 +02:00
Camilla Löwy acf0c10e7a Win32: Fix message reported by VS 2022 2022-04-28 21:54:24 +02:00
Camilla Löwy 80e31ce9e1 Win32: Remove superfluous cast 2022-04-28 21:54:24 +02:00
Camilla Löwy d3c2121221 Move CODEOWNERS to .github directory
This slightly de-clutters a directory mostly intended for human-readable
documentation.
2022-04-28 21:19:10 +02:00
Camilla Löwy 23e6e8e4b7 X11: Fix segfault on malformed INCR response
The code assumed that at least some data would be received via the INCR
mechanism and that, as a result, the string buffer would be allocated.

Bug found by Clang static analysis.
2022-04-28 21:19:08 +02:00
Camilla Löwy f60547ac80 X11: Fix returned clipboard string freed too early
The clipboard string should not be freed on SelectionClear.  The user
may have received it from glfwGetClipboardString and it should remain
valid until the next call to a public clipboard string function.
2022-04-28 21:18:49 +02:00
Camilla Löwy 06089a91a6 Document delayed initialization of EGL display 2022-04-28 21:18:49 +02:00
Camilla Löwy 82ccbb3ef0 Update stb_image_write.h to version 1.16 2022-04-28 21:18:49 +02:00
Camilla Löwy a8d8b760fb X11: Fix OSMesa library not being unloaded 2022-04-28 21:17:39 +02:00
Camilla Löwy 2d281d7928 Wayland: Fix OSMesa library not being unloaded 2022-04-28 21:16:06 +02:00
Camilla Löwy 89514cf0fc Cocoa: Fix EGL and OSMesa not being unloaded 2022-04-28 21:14:11 +02:00
Camilla Löwy 10e9033a29 Win32: Fix OSMesa library not being unloaded 2022-04-28 21:12:36 +02:00
Camilla Löwy 29523dbfbf Fix order of error checks in glfwSetGammaRamp
Initialization should be checked before arguments.
2022-04-21 15:57:15 +02:00
Camilla Löwy f843d53333 Fix glfwMakeContextCurrent using uninitialized TLS
Issue reported by danhambleton on the GLFW forum:
https://discourse.glfw.org/t/posix-thread-local-storage-tls-error-when-making-context-current/2034
2022-04-21 15:56:01 +02:00
Camilla Löwy 4cb36872a5 Wayland: Add support for file drop events
This adds support for file path drop events in text/uri-list format.

It is based on work by Pilzschaf in #2040.

Closes #2040
2022-04-03 20:09:42 +02:00
Camilla Löwy 0f38382e25 Wayland: Clean up listener struct initialization
Adapt style to match the rest of the project.
2022-04-03 20:09:42 +02:00
Camilla Löwy f010335b8c Wayland: Make data offer reading a generic utility
This will be needed for drag and drop reception as well.
2022-04-03 20:09:42 +02:00
Camilla Löwy b7a3af9b79 Wayland: Move window related code to window module
The Wayland backend was the only one where half the window and input
related code was in the init module.  As those bits want to share more
utility code with the window module, the interface between them grows.

To prevent that, this gathers nearly all window and input related code
into the window module.
2022-04-03 20:09:42 +02:00
Camilla Löwy 967282c2e6 Wayland: Remove check for error that cannot happen
Famous last words.
2022-04-03 20:09:41 +02:00
Camilla Löwy 8d216054ad Wayland: Remove error reporting of external bugs
Not sure that GLFW should be reporting that another client has made an
invalid receive request.
2022-04-03 20:09:41 +02:00
Camilla Löwy 34418951cc Wayland: Clean up clipboard writing 2022-04-03 20:09:41 +02:00
Camilla Löwy ad4a9e42f0 Move URI list parsing to shared code
This will soon be used by the Wayland backend.
2022-04-03 20:09:39 +02:00
Camilla Löwy e0889736fd Wayland: Add strerror output to error descriptions 2022-04-03 19:45:09 +02:00
Camilla Löwy c132135332 Wayland: Clean up clipboard reading 2022-04-03 19:45:09 +02:00
Camilla Löwy 4651165272 Wayland: Simplify clipboard string allocation 2022-04-03 19:45:09 +02:00
Camilla Löwy 8d87be1268 Wayland: Improve handling of pending data offers
The code assumed that all data offers were selections that supported
plaintext UTF-8.

The initial data offer events are now handled almost tolerably.  Only
selection data offers are used for clipboard string and only if they
provide plaintext UTF-8.  Drag and drop data offers are now rejected as
soon as they enter a surface.

Related to #2040
2022-04-03 19:45:09 +02:00
Camilla Löwy 89d3ea8d69 Wayland: Return our clipboard without roundtrips 2022-04-03 19:45:09 +02:00
Camilla Löwy 990dc4b388 Wayland: Fix error paths not closing sending fd
Whatever error happens on our end, we should still close the fd so the
other end can move on.
2022-04-03 19:45:09 +02:00
Camilla Löwy a4460b694e Wayland: Rename listener user data parameters 2022-04-03 19:45:09 +02:00