Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a window hint for setting app_id on wayland #2121

Closed
michaelpennington opened this issue May 27, 2022 · 2 comments
Closed

Add a window hint for setting app_id on wayland #2121

michaelpennington opened this issue May 27, 2022 · 2 comments
Assignees
Labels
enhancement Feature suggestions and PRs Wayland
Projects
Milestone

Comments

@michaelpennington
Copy link
Contributor

The equivalent of WM_CLASS for X11 is app_id. Allow setting this through a window hint string.

@elmindreda elmindreda self-assigned this Jun 23, 2022
@elmindreda elmindreda added enhancement Feature suggestions and PRs Wayland labels Jun 23, 2022
@elmindreda elmindreda added this to Todo in Queue Jun 24, 2022
@elmindreda elmindreda added this to the 3.4 milestone Jul 14, 2022
@flysand7
Copy link

This option is not documented on the website with HTML docs, perhaps it should be added there too?

@elmindreda
Copy link
Member

@flysand7 Done. Thanks!

RoBaertschi added a commit to RoBaertschi/glfw that referenced this issue Jan 15, 2024
Squashed commit of the following:

commit cf29ff2b9d5f2b66f8fc714e14b86989a7aa388d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jan 15 00:28:00 2024 +0100

    Update CODEOWNERS file

commit 8ff8d675607463cbff7a2c59af6cb9751972c259
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jan 15 00:23:20 2024 +0100

    Set timeout for build GH workflow jobs

    This is in order to catch and stop any malfunctioning job.

commit d2b88cf7ab6eb8a0501985d10969641a4ba74c0d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jan 12 17:42:37 2024 +0100

    Update documentation for native access errors

    The GLFW_PLATFORM_UNAVAILABLE error was not listed for those native
    access function that can emit it.

    The order of errors for many functions in glfw3native.h did not match
    the order used in glfw3.h.

    The documentation for GLFW_PLATFORM_UNAVAILABLE was a little bit terse.

commit 200639712b15ca7b845d3890e0e6e89ba821ad53
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jan 12 13:02:50 2024 +0100

    Add initial .editorconfig file

commit 507621977f81dcbf926e8452bcbc1b147570016a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jan 11 18:03:18 2024 +0100

    Win32: Remove unofficial support for VS 2008

    Related to #2465

commit 29885c69422d837d210405b5ea1701286586f383
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jan 17 03:25:54 2020 +0100

    Win32: Improve clipboard contention issue

    This is primarily a workaround for a GLFW application reading and/or
    writing to the clipboard in rapid succession and catching up with the
    Windows Clipboard History, which also has to contend for the lock.

commit 2c3eb75748584c1c9283787e8c40f944fa055d6f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 5 23:03:25 2023 +0100

    Wayland: Remove dependency on wayland-protocols

    This brings the latest released versions of all used Wayland protocol
    files into this repository, removing the need for the user to arrange
    a sufficiently new version of wayland-protocols.

    The wayland.xml protocol file was copied from wayland 1.22.0.
    The additional protocol files were copied from wayland-protocols 1.32.

    Because of how files are moved and renamed inside the wayland-protocols
    repository, it will not always be possible to update all our protocol
    files from a single release without also potentially updating related
    code (acceptable) and prematurely breaking compatibility with
    compositors that still only support an earlier incompatible version
    (unacceptable).

    The macro in src/CMakeLists.txt has been modified to hopefully make it
    easier to add new protocol files.  This made it necessary to change the
    name of a few of the generated header files.

    Closes #2053

commit 73948e6c0f15b1053cf74b7c4e6b04fd36e97e29
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jan 4 20:07:27 2024 +0100

    Fix missing error in docs for glfwCreateWindow

    The GLFW_NO_WINDOW_CONTEXT error can be emitted if the window passed in
    for context sharing does not have a context.

    Fixes #2456

commit 5a9ea8f99f27cfb0bf47ecc23fdc24e98098de6b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jan 3 18:01:56 2024 +0100

    Add build- prefix to .gitignore

commit 4e8c4901e9985765a3951423ff9174459339a62b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jan 3 18:01:29 2024 +0100

    Wayland: Fix segfault on termination

    A segfault could occur during termination if libdecor was found but no
    windows were created between initialization and termination.  The wait
    for libdecor to finish its initialization was only performed before
    window creation, not at termination.

    Regression introduced by 9fdc425931888ea70bc095e53cc006fca8ccb703.

commit d9646631d6669c6006f31b1bbb5e14909165e7cd
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Dec 15 00:12:38 2023 +0100

    Removed unused header in sharing example

commit 6b39ab00748ca927456d998293fa967f2b86cf9f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 30 19:54:38 2023 +0100

    Improve coverage of GH build workflow

    This adds Null-only and Wayland-only builds, while rearranging jobs by
    host OS instead of by target platform.

    Every useful combination of platforms is now being built, except for
    Null-only with Win32 time and threading.  This combination does not
    compile on VS due to some non-standard array initializers.

commit 40aa77a1607a6847f88cd9abc96f8fe4da3943a1
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 30 19:02:38 2023 +0100

    Remove superfluous CMake flag in GH build workflow

    The source directory already defaults to the current directory.

commit 9f6da7e7c64572436fcd56022f4147270f47deef
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jan 10 00:47:18 2024 +0100

    Win32: Fix some of the errors for Null-only on VS

    This workaround is needed whenever windows.h is included after glfw3.h.

commit ab09dc8fb17ab08a6b318417b84896801568c002
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Dec 14 15:27:53 2023 +0100

    Add credit

    I lost track of the existing PR #2245 when fixing #2161 with
    5e4496cb420df4d93b4a31805b9fef443433f73b.

    Closes #2245

commit b4c3ef9d0fdf46845f3e81e5d989dab06e71e6c1
Author: Doug Binks <doug@enkisoftware.com>
Date:   Sun Dec 24 12:23:23 2023 +0000

    Clarify documentation for contributing

    Added location of credits, news and guides.

commit 2c1d31009fdc527d5a44ff887659a25ecbf1f7f0
Author: Camilla Löwy <elmindreda@glfw.org>
Date:   Tue Dec 12 17:38:52 2023 +0100

    Cocoa: Fix segfault querying joystick elements

    It is reportedly possible for IOHIDDeviceCopyMatchingElements to return
    NULL on macOS 13 if the application lacks input monitoring permissions.

    This commit only prevents the segfault.  More work will be needed to
    correctly handle this situation, including Game Controller support.

    Related to #2320
    Closes #2321

commit ea3ea627086f06f207928dceb61a8ea5d0fb3fb2
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 12 13:39:54 2023 +0100

    Update changelog and add credit

    Related to #2348

commit eeeb56eb23c9a23866e8042fb23d7b0b4d96d106
Author: lo-v-ol <gh@oleg.uk>
Date:   Mon Jun 5 08:56:15 2023 +0100

    EGL: Fix GLFW_CONTEXT_NO_ERROR on Mesa

    Mesa EGL requires the context version to be set to 2.0 or greater before
    EGL_CONTEXT_OPENGL_NO_ERROR_KHR in the attribute list.

    Without this, context creation via Mesa EGL with
    EGL_CONTEXT_OPENGL_NO_ERROR_KHR set fails with EGL_BAD_ATTRIBUTE.

    Fixes #2348

commit 378e5fc814ec7d6071d7b3423aac5182b0336f1e
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 12 13:46:48 2023 +0100

    Fix Markdown formatting for changelog entry

commit 7b152019dab027dfd276e37cacaacd439075f6c3
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Dec 11 17:07:47 2023 +0100

    Add credit

    Related to #2377
    Related to #2405

commit 8e9a5d29a8258d2e82250102db9ae713794be321
Author: FuzzyQuills <neubot321@gmail.com>
Date:   Tue Dec 12 06:25:44 2023 +1000

    Cocoa: No NSWindowStyleMaskResizable in fullscreen

    On macOS 10.15 Catalina and earlier, not having the resizable bit
    cleared in NSWindowStyleMask in fullscreen leads to windows minimising
    when clicked anywhere in the content area.

    On all tested macOS versions it also causes the fullscreen window to be
    resizable by the user.

    Regression introduced by 0d599026d04ddcc2695ae938fc1864523dab7a34.

    Fixes #2377
    Closes #2405

commit 46cebb5081820418f2a20f3e90b07f9b1bd44b42
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Dec 7 16:51:13 2023 +0100

    EGL: Only use EGL_EXT_present_opaque on Wayland

    The EGL_EXT_present_opaque extension is primarily a workaround meant for
    Wayland, even if the language in it doesn't mention this.  GLFW
    previously always enabled this extension where supported.  This caused
    issues on X11 when running the Nvidia binary blob.

    This commit ensures the extension is only enabled on Wayland.

    Fixes #2365

commit 68edc66aa4e0bcd2772e60711331629e9e369916
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Dec 7 16:01:47 2023 +0100

    Add credit

    Fixes #2397

commit ddd92a4fa8dea2729ad2ea09172a8cfd541e53e7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Dec 6 17:02:24 2023 +0100

    Update changelog and add credit

    Related to #2327

commit 5e4496cb420df4d93b4a31805b9fef443433f73b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 5 20:59:42 2023 +0100

    Cocoa: Fix compilation error on OS X 10.8

    The occlusion state parts of NSWindow are OS X 10.9+ only but we still
    (technically) support building for only 10.8.

    Fixes #2161

commit 0ede5f58c6f7c167499c0c78ce445828f44c15ed
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 5 22:14:53 2023 +0100

    Simplify joystick hat value assertions

commit 52405a9d599412545efd3bc3ace8342ae571ccd0
Author: Peter Johnson <johnson.peter@gmail.com>
Date:   Tue Mar 7 23:03:06 2023 -0800

    Win32: Fix invalid hat bit mask being accepted

    It is reportedly possible to get opposing directions of an XInput DPad
    bit mask set simultaneously with some controllers.

    This commit ensures that those values are not passed on to other parts
    of GLFW.

    This commit is based on the PR #2291 by @ PeterJohnson but with the
    following changes:
     - moved XInput-specific special case to XInput implementation
     - attempt to preserve data by only masking out the invalid axis
     - admin (credit, changelog, commit message)

    Closes #2291

commit 9959dc69cadd1f7790060846ffbc44e7da56fc56
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Dec 4 20:06:10 2023 +0100

    Improve documentation relating to key tokens

    Shifted the documentation away from the term 'named keys' as something
    different than keys that glfwGetKeyName will return a name for.  The
    already existing term 'key token' should now be used to refer to the
    GLFW_KEY_* constants.

    The associated term 'named mouse button' was also replaced with
    'supported mouse button'.

    The parts explaining which key tokens will return a valid scancode from
    glfwGetKeyScancode have hopefully been clarified.  This issue was
    reported in #2055.

    The GLFW_KEY_UNKNOWN constant has been moved out of the list of key
    tokens to simplify and hopefully clarify the related documentation.

    Various other keyboard key related edits were made, hopefully resulting
    in improvements.

    Related to #2055

commit 557a633b2d926431090367e9536cd5ba661a276d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 5 15:53:42 2023 +0100

    Fix list of possible errors for glfwGetKeyName

commit b1517e5b3ee6f060f2e7ebd47c9de0c10e6ad411
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Dec 4 18:48:24 2023 +0100

    Fix glfwGetKeyName not checking key token is valid

commit 3f31519de81b943d17231b3d59108923d0d2e302
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Dec 3 17:40:42 2023 +0100

    Clarify documentation for glfwMakeContextCurrent

commit 1b2605dbcd674608ba3ef57ff40880c2bf899029
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Dec 3 17:23:37 2023 +0100

    Fix missing new constant in release notes

commit 93d70cb6a8c9571b5b493936596633a1a8538cea
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Dec 3 17:07:25 2023 +0100

    Add assertions for context function invariants

    Related to #2327

commit fa0ea5c41f53119c68748a0e8570ef120b7fa703
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Dec 3 16:06:31 2023 +0100

    Fix potential violation of invariant

    The shared function for reading back context attributes,
    _glfwRefreshContextAttribs, did not check whether the newly created
    context had been successfully made current.  This violated the invariant
    that the context TLS slot always points to a valid window and that its
    context is current whenever _glfw.platform.getProcAddress is called.

    Related to #2327

commit 8c5471d6cdc6d87935e494b8c379f659e998bcf6
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Dec 1 13:22:11 2023 +0100

    Fix return value on error for glfwGetKeyScancode

    The documentation says it should be -1, not zero.

commit fb94e4268b222448a55b151f3c115f57f1e6540f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Dec 1 12:38:57 2023 +0100

    Remove changelog entry

    This bug was introduced since the last release and should not be listed.

commit d097e35743ee49d38811a89ea29c7f2525dc8d6a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 30 16:47:35 2023 +0100

    Wayland: Fix heuristics for what counts as events

    The Wayland implementation of glfwWaitEvents* keeps waiting until it
    sees evidence that a significant event has been processed.  However,
    this included updating an animated cursor (not a significant event)
    but did not include previously buffered Wayland events or libdecor
    events (definitely significant events).

    This commit corrects these cases.

commit 23e40548b15db9a53a755d152d1fd2072c39610e
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Nov 29 16:25:29 2023 +0100

    Wayland: Fix protocol error on undecorated window

    When setting the visibility of a libdecor frame on a compositor that
    supports XDG decorations, libdecor 0.1 will update the geometry of the
    XDG surface.  GLFW attempted to set the visibility before having told
    libdecor what size the content area is.  This caused a Wayland protocol
    error when libdecor attempted to set the window size to 0x0.

    This commit adds setting the content area size for the libdecor frame
    directly after creation, allowing libdecor to know what it's doing.

commit 9fdc425931888ea70bc095e53cc006fca8ccb703
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 30 02:43:48 2023 +0100

    Wayland: Use Wayland to wait for libdecor to init

    Much of libdecor is initialized only after certain events have been
    received from the compositor and some parts of libdecor 0.1 are unsafe
    to use until this delayed initialization has completed.

    Since libdecor does not provide an API to query if or be notified when
    this has happened, GLFW processed events until its newly created
    libdecor frame had created its XDG shell objects.

    This commit switches to using a generic Wayland sync point created just
    after libdecor (and presumably its plugin) has set up its delayed
    initialization, instead of relying on the more specific implementation
    detail mentioned above.

    It also makes this wait mandatory before the first libdecor frame is
    created instead of a pre-condition for certain libdecor frame calls,
    hopefully removing even more dependence on implementation details.

commit 23ea072c4157f2a7760d26f4d6e375833646bd88
Author: Doug Binks <doug@enkisoftware.com>
Date:   Mon Nov 27 16:56:58 2023 +0000

    Reorder changelog entry

commit 659d161446ad6e3f3e67cdc1baabcf61abd70aef
Author: Doug Binks <doug@enkisoftware.com>
Date:   Fri Nov 24 17:06:18 2023 +0000

    Reorder credit

commit dbe810e4036fa6640fbe5d509e1a551c8a77f371
Author: Grzesiek11 <grzesiek11@stary.pc.pl>
Date:   Fri Nov 24 18:04:13 2023 +0100

    Documentation: only named keys generate synthetic key releases

    The current wording states that all keys have synthetic key release
    events generated after focus is lost, but keys that aren't named
    don't have any state held, so no such events are generated for them.

    The new wording clarifies that only named keys have the events generated
    for them.

commit afd22ebcf34f2fa84d5b9f28103f014505ae8d47
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Nov 21 21:26:45 2023 +0100

    Add credit

    Related to #2403

commit 97820bc329c603074ecdefdfdef339be776bd9f8
Author: Scr3amer <Scr3amDev@outlook.com>
Date:   Tue Nov 21 14:28:39 2023 -0500

    Null: Remove duplicated function declaration

    The declaration of _glfwRequestWindowAttentionNull was duplicated.

    Closes #2403

commit d9709904fec956524d4e9032a7fa8d0550d5d49b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Nov 21 17:36:34 2023 +0100

    Linux: Fix POSIX version not set for Null build

    When compiling GLFW on Linux with only the Null platform enabled, the
    CMake files did not set the required POSIX version macro.

    Fixes #2402

commit a87acd8c1fac78011013bebb537926e18fe49f46
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 16 20:47:27 2023 +0100

    Update changelog and add credit

    Related to #2229

commit 2a4dd9c28f663c1ef410d6430aaa3fe90085bf6c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 16 23:08:30 2023 +0100

    Cleanup

commit c992226a9c63f80e157d6bd9bf2372acd2a1c795
Author: Michael Skec <mike@skec.site>
Date:   Thu Nov 9 15:04:19 2023 +1100

    Linux: Fix memory leak when inotify init failed

    This introduces regex_compiled boolean to track whether the regex is
    compiled successfully.

    Closes #2229

commit 0bd3e879e1fd8c5ed4562929fb0365a5a7089833
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 16 17:28:17 2023 +0100

    Fix unneccessary use of "must"

    Passing a context-less window to a function that requires a context only
    emits a harmless GLFW_NO_WINDOW_CONTEXT error.

commit 509f4131bec5303b04e30617a123e7ce18a95798
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Nov 15 17:55:07 2023 +0100

    Win32: Fix glfwWaitEventsTimeout ignoring messages

    The bitmask passed to MsgWaitForMultipleObjects was missing
    QS_SENDMESSAGE, causing glfwWaitEventsTimeout not to return when the
    thread received messages sent from other threads.

    Fixes #2408

commit 01d7c331fddd5d027f7d85c651c6473b18d0ea37
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Aug 3 18:10:24 2023 +0200

    Wayland: Fix zero being used in place of NULL

commit 938a3c29b2e1b93a681cfde82876dfce97635658
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 19 17:40:22 2023 +0200

    Update Doxyfile template for Doxygen 1.9.7

commit 3ed6e9d89aa518b44ab30e598e5b813879eda71c
Author: Doug Binks <doug@enkisoftware.com>
Date:   Wed Nov 15 17:48:30 2023 +0100

    Updated credit

commit 9a80225ddfdaf9457c80c97ce4c12aed3377dd24
Author: Doug Binks <doug@enkisoftware.com>
Date:   Wed Nov 15 16:48:19 2023 +0100

    Add credits

    Related to #2386 and #2420

commit 46c2e35c554d96fdb8a94c3f19c88e34a613532a
Author: Doug Binks <doug@enkisoftware.com>
Date:   Wed Nov 15 16:44:24 2023 +0100

    Updated changelog

commit 93a3ba808067134b5a964b1a1c44701450386fe4
Author: moritz-h <7849248+moritz-h@users.noreply.github.com>
Date:   Wed Nov 15 16:37:46 2023 +0100

    Win32: Add library name suffix to pkg-config file

    Closes #2386

commit 3eaf1255b29fdf5c2895856c7be7d7185ef2b241
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Apr 25 22:59:25 2023 +0200

    Wayland: Cleanup

    Update naming and declarations to current standard.

commit 6b48f2be97057cf436c6eb3059bbbfdcb5f66d7c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Apr 25 22:53:17 2023 +0200

    Wayland: Merge function called once

    This brings together the two halves of the cursor setting logic for the
    fallback decorations.

commit 00a663dafd3bc214181a2987af1f5dac81e3b053
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Apr 25 22:47:18 2023 +0200

    Wayland: Fix fallback decorations emitting errors

    A GLFW_CURSOR_UNAVAILABLE error would be emitted each time the cursor
    moved over the fallback decorations if the standard cursor shape
    appropriate for that part was missing on the system.

    These errors served no useful purpose and have been removed.

commit 3fa2360720eeba1964df3c0ecf4b5df8648a8e52
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Mar 31 15:30:20 2023 +0200

    Update changelog

    Related to #2198

commit 0b94e1b29b5be16fc0979de8ac107e93ae440419
Author: TheBrokenRail <connor24nolan@live.com>
Date:   Fri Oct 7 21:26:21 2022 -0400

    Wayland: Fix detection of joysticks after init

    Closes #2198

commit f27daa34ada52c67bf2f258e1135254dc4fa5b34
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jan 26 18:18:14 2023 +0100

    Fix glfwinfo output of Vulkan layer spec version

commit 6f2d7064be3bcc57c46a319898dc618ee121c2fb
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jan 20 06:50:52 2023 +0100

    Make glfwinfo try Vulkan even if GL/GLES fails

commit 9cce2896eeaa8e74a902b11caaeb64ae666efaf7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun May 22 16:50:15 2022 +0200

    Null: Add (fictional) scancodes

    This replaces the previous scheme where scancodes were equal to keycodes
    (an implausible and potentially misleading situation) with a set of
    scancodes invented purely for the null platform.

commit 23ab9727247534dc2a27505a0da8efff5384f5ef
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Mar 28 17:29:33 2023 +0200

    Fix unquoted CMake variable references

    The previous version did not handle paths containing whitespace
    correctly.

    Related to #2256

commit fbdb53b9ca457ab01675e20d9127cb62d8db88b8
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 27 14:37:27 2022 +0100

    Wayland: Add initial support for libdecor

    This is partly based on the implementation of libdecor support in
    PR #1693 by @ christianrauch.

    Where available, the libdecor library is loaded at init and becomes the
    preferred method for window decorations.  On compositors that support
    XDG decorations, libdecor in turn uses those.  If not, libdecor has
    a plug-in archtecture and may load additional libraries to either use
    compositor-specific decorations or draw its own.

    If necessary, support for libdecor can be disabled with the
    GLFW_WAYLAND_LIBDECOR init hint.  This is mostly in case some part of
    the dynamic loading or duplication of header material added here turns
    out to cause problems with future versions of libdecor-0.so.0.

    Fixes #1639
    Closes #1693
    Related to #1725

commit cd466cf9fd741a9ff704ce773f12dbfee8713640
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Dec 28 16:40:00 2022 +0100

    Wayland: Simplify decoration side detection

    This commit simplifies the detection of which element of a fallback
    decorated window the pointer has entered.  Instead of looping through
    the list of windows, the user pointer of fallback decoration surfaces is
    set to the GLFW window object.

commit 39f0e8622898f9533f43aa805ac0667945c1c26e
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Dec 1 13:10:07 2022 +0100

    Wayland: Clean up enum value names

commit efa9297a41fb88b1c34ea3835d16463607e7a9a7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Nov 8 20:33:29 2022 +0100

    Wayland: Simplify per-window ouput scales tracking

    This replaces (one case of) manual management of weak links between
    windows and monitors, both objects with complex life times, with
    wl_object pointers used as opaque key values.

commit 91c837ace563cb2bf188dc8ac8e0ae60f616ffe3
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 3 21:51:29 2022 +0100

    Wayland: Use tags to verify proxy ownership

    This is in preparation for adding support for libdecor, which creates
    its own proxies on our display.  It will likely also be helpful to some
    people using native access on Wayland.

    This is partly based on the implementation of libdecor support in
    PR #1693 by @ christianrauch.

commit 6d9083af03d04996829b02316770ad755fb6252c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 3 20:58:15 2022 +0100

    Wayland: Remove duplicate setting of user data

    The surface user data is already set by wl_surface_add_listener.

commit 4cf510511ca067af7c028c98b2cb90695199052f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Nov 3 20:54:32 2022 +0100

    Wayland: Stop manually tracking interface versions

    This is already tracked by the proxies we care about.

commit c1a79c1c41456a6fb0d2490a449eb4b2e0144302
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jan 8 22:13:45 2023 +0100

    Wayland: Emit size event when setting aspect ratio

commit 8397b39afa30df18eeec0453acca3510fe160dd7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jan 8 22:12:56 2023 +0100

    Wayland: Fix some missing window refresh events

commit 735fc101f5f690370b8943116e183b5b032356e3
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 20 18:34:08 2022 +0100

    Wayland: Fix decorations not always being created

    If a window was initially fullscreen then it would not get an XDG
    decoration object.  If the window was later switched to windowed mode it
    would then get fallback decorations instead of XDG ones.

commit 228428fa4f0a6efc0504f03c0b7f12d8a997a6f7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Dec 28 23:35:06 2022 +0100

    Wayland: Simplify test for fallback decorations

    The GLFW fallback decorations only exist when the window is visible,
    decorated and in windowed mode.

commit 82e77dbff4a6695fb8ed3f3e9ed58c4814dd62b4
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jan 8 16:53:21 2023 +0100

    Wayland: Pick more plausible default cursor size

    This is not intended as a replacement for actually querying the desktop
    for the correct size, but it appears to be a better fallback value.

commit 9a87635686c7fcb63ca63149c5b179b85a53a725
Author: Juan Ramos <gitlab@jpr.mozmail.com>
Date:   Sat Jan 21 11:18:35 2023 -0700

    Update to actions/checkout@v3

    Fixes the following CI warning:

    "Node.js 12 actions are deprecated. Please update the following
    actions to use Node.js 16: actions/checkout@v2..."

    Closes #2255

commit 2b580012da0dc11b60fdaf46ae7310e4b6e51c30
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Mar 3 14:46:43 2023 +0100

    Add credit

    Related to #2199

commit 5c463a9070a5d9df5a3ac5465e6b5807abcaef67
Author: Yoshinori Sano <yoshinori.sano@gmail.com>
Date:   Mon Oct 10 09:18:25 2022 +0900

    Win32: Fix typo in error description

    Closes #2199

commit 9b1f63bad99e584ac961769bd1ae157613cdaef4
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Mar 2 17:47:36 2023 +0100

    Add credit

    Closes #2256

commit 1c9fcdc9df3c479cc7adab369df20e10ea179418
Author: Juan Ramos <gitlab@jpr.mozmail.com>
Date:   Sat Jan 21 11:33:41 2023 -0700

    Simplify setting of GLFW_STANDALONE CMake variable

    Use string(COMPARE EQUAL ...) instead of a whole if() statement.

    Related to #2256

commit 30b91c8b60a29d2c921bee494542b980710b59a7
Author: Juan Ramos <gitlab@jpr.mozmail.com>
Date:   Sat Jan 21 11:30:56 2023 -0700

    Remove CMAKE_LEGACY_CYGWIN_WIN32 CMake option

    This was needed for compatibility with CMake versions before 2.8.4.

    Related to #2256

commit e0ae1c45df35c6068c9219006e09a24de216bfa3
Author: Juan Ramos <gitlab@jpr.mozmail.com>
Date:   Sat Jan 21 11:30:13 2023 -0700

    Remove setting of CMake policy CMP0054

    This policy is already set to NEW by requiring CMake 3.4.

    Related to #2256

commit 8f470597d625ae28758c16b4293dd42d63e8a83a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jan 26 18:41:46 2023 +0100

    Add support for manually running build workflow

commit 57cbded0760a50b9039ee0cb3f3c14f60145567c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Dec 16 13:44:59 2022 +0100

    Add credit

    Related to #2225

commit 41d8da1cea55732867b5c3a7159215071b87b790
Author: Takuro Ashie <ashie@clear-code.com>
Date:   Fri Dec 16 21:40:36 2022 +0900

    Wayland: Fix wrong array size for _GLFWofferWayland

    Closes #2225

commit 00967cbb8a4a51ea8ff6f8b8a7efcf1f761cc664
Author: TheBrokenRail <17478432+TheBrokenRail@users.noreply.github.com>
Date:   Thu Dec 15 14:18:59 2022 -0500

    Linux: Fix joystick input being disabled

    Closes #2192

commit dd8a678a66f1967372e5a5e3deac41ebf65ee127
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Sep 20 17:40:36 2022 +0200

    Update Doxyfile template for Doxygen 1.9.5

    This is mostly to disable Doxygen HTML output dark mode (for now).

commit 97b9e49637d14b625eeb6fd400a5e0e673b66e7d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Sep 20 17:03:30 2022 +0200

    Documentation work

commit b2b087cd8e9521746563acfdb8b9ea3e7d91f09a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Sep 20 16:17:22 2022 +0200

    Fix documented errors for gamma ramp functions

    Fixes #2186

commit d299d9f78857e921b66bdab42c7ea27fe2e31810
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Sep 13 22:01:38 2022 +0200

    Remove Doxyfile tags deprecated by Doxygen 1.9.5

commit ed1d9e1ca75600d80f9956bc3de333987a777cfa
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Sep 9 17:35:48 2022 +0200

    Document X11 WM_CLASS hint behavior

    Fixes #2180

commit ab3ea8ac9f1b3dbe6aaf2e830d35e93c30657064
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Apr 21 19:26:05 2022 +0200

    Win32: Remove unhelpful helper function

commit c812b9d87cb4afaae44ca7e9e6f40ddd35cce44f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Nov 9 19:44:00 2021 +0100

    Add conditional compilation for platform units

    This is a step towards being able to compile GLFW manually without
    needing to duplicate a lot of platform- or OS-specific logic.

commit 8a72918bcd2bac52ce733c4a973209afb9a5020a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Sep 4 22:24:12 2022 +0200

    Move helper macros to single point of use

commit ab1b1edfd08352da95e84118b1c91bf612117f56
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Aug 26 19:08:18 2022 +0200

    EGL: Cleanup

    Both config parameters are "desired", but one is older and never had its
    name updated.

    This commit at least makes it clearer that they are similar.

commit 93e93135f22c27a0120c5b0c7f2242901c8b1b52
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Aug 26 19:00:08 2022 +0200

    EGL: Add better error for no stereo

commit e0576666426ff321414f54aefc7583cf457865fc
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Aug 26 18:16:29 2022 +0200

    EGL: Add better errors for client API mismatch

    Because EGL ties client API support to configs, attempts to create
    a context with an unavailable client API will fail with the unhelpful
    "failed to find suitable config" error description.

    This attempts to detect cases where there are usable configs for the
    other client API and emit a hopefully more helpful error.

    Related to #2173

commit 6b57e08bb0078c9834889eab871bac2368198c15
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Aug 15 23:29:10 2022 +0200

    Check if context creation APIs match when sharing

commit 2c0f34b60f7c7a07183ed71754b0156ece3b6c1b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Apr 24 22:31:28 2022 +0200

    WGL: Fix count of displayable pixel formats

    We only care about displayable pixel formats (as defined in
    WGL_ARB_pixel_format) for window context creation.

    This changes pixel format enumeration to ignore non-displayable formats,
    which are specified to be listed after displayable ones, by always using
    the return value of DescribePixelFormat as the pixel format count.

commit ef6c9d8b4f957c2a53374558e393bdb5c4264fa5
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jul 25 20:33:47 2022 +0200

    Wayland: Fix window opacity on older systems

    On systems lacking the EGL_EXT_present_opaque extension, some
    compositors treat any buffer with an alpha channel as per-pixel
    transparent.

    This commit ignores any EGLConfig with an alpha channel if the extension
    is missing and the window is created with GLFW_TRANSPARENT_FRAMEBUFFER
    set to false.

    This is technically not a breaking change since GLFW_ALPHA_BITS is not
    a hard constraint, but it is still going to inconvenience anyone using
    the framebuffer alpa channel to store other kinds of data.

    Related to #1895

commit c18851f52ec9704eb06464058a600845ec1eada1
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 27 15:05:23 2022 +0200

    GLX: Add support for loading glvnd libGLX

commit 55aad3c37b67f17279378db52da0a3ab81bbf26d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 27 15:03:16 2022 +0200

    EGL: Add support for loading glvnd libOpenGL

commit 0f9a9578f38518317d0b3305dd816ba7b400972d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Oct 26 14:25:03 2021 +0200

    Add window hints for initial position

    This adds window hints for the initial position, in screen coordinates,
    of a window.  The special value GLFW_ANY_POSITION means the window
    manager will be allowed to position the window.

    It is not possible to set window positions on Wayland and GLFW will
    always behave as if these hints are set to GLFW_ANY_POSITION.

    Fixes #1603
    Fixes #1747

commit 7d73629e5071b0baea87135f01a4335b10740068
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Oct 26 20:30:29 2021 +0200

    X11: Preserve unrelated values in WM_NORMAL_HINTS

    This stops GLFW overwriting the whole WM_NORMAL_HINTS property every
    time it updates size-related parts of it.

commit 2efc598d70be92267a97c95ac08668565784ab19
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jul 26 19:21:07 2022 +0200

    Fix native access macros being mutually exclusive

    The documentation was updated with the introduction of run-time platform
    selection, but the preprocessor logic was not.

commit 2e12ef00bb4b96c7b4c6ea14f594cc8f50ea718f
Author: TheChocolateOre <50585073+TheChocolateOre@users.noreply.github.com>
Date:   Thu Jul 28 16:56:18 2022 +0300

    Fix typos and other issues in docs

    This fixes spelling, grammar and punctuation issues, missing words and
    stray words across the documentation.  A confusing sentence was removed
    from the tutorial.

    Closes #2085

commit 3a60992a418aad88717db32353bec22e8bb7dab3
Author: Camilla Löwy <elmindreda@glfw.org>
Date:   Mon Jul 25 16:30:11 2022 +0200

    Wayland: Add error for unsupported feature

commit 3a5c726d1bd485e63219c2a6c3e377f434d6ee10
Author: Camilla Löwy <elmindreda@glfw.org>
Date:   Mon Jul 25 16:28:23 2022 +0200

    Wayland: Remove unreachable code

    This platform function is only called if the cursor is enabled.

commit 7be6a2cabec3a50419448cc618792d2949d988fd
Author: Camilla Löwy <elmindreda@glfw.org>
Date:   Mon Jul 25 13:04:21 2022 +0200

    Wayland: Clean up pointer helper function order

commit 488008e0a22d10c337ef6e910b57a52cecb6bb46
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Dec 3 17:58:20 2019 +0100

    Add cursor mode GLFW_CURSOR_CAPTURED

    This adds a cursor mode that provides a visible cursor confined to the
    content area of the window.

    Fixes #58

commit a46f829de8d90d6932a696fd397479042ec1071d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jul 8 14:45:31 2019 +0200

    Refactor cursor mode paths

    This is the refactoring part of adding GLFW_CURSOR_CAPTURED, separated
    out to help keep 3.3-stable similar to the main branch.

    Related to #58.

commit 03af6b3d4c2dbd763fbf32927c44fe6fd517991c
Author: Camilla Löwy <elmindreda@glfw.org>
Date:   Mon Jul 25 17:40:22 2022 +0200

    Wayland: Fix leaks of pointer related objects

commit 09ebf3f0bfe5a5e819fd51f0995ca928b27185bd
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jul 24 22:28:32 2022 +0200

    Wayland: Fix error for missing protocol

    A protocol not being available is not a platform error.  The platform is
    doing fine; we're just sad that it lacks a feature we want.

commit e85b645b8adbbc565c9e9fccbf474705f453d1c1
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jul 24 22:27:22 2022 +0200

    Wayland: Clean up pointer locking

    Shorten names and allow C99 declarations.  Replace helper function with
    the NULL check it was hiding.  Separate cursor hiding from pointer
    locking.

commit b9ed25d2e991944acb51dedc63f3fe68e24c02c9
Author: Michael Pennington <michaeldanielpennington@gmail.com>
Date:   Thu May 26 20:33:28 2022 -0400

    Wayland: Add GLFW_WAYLAND_APP_ID window hint

    This adds a window hint string for the xdg_toplevel::app_id, which is
    used by desktop environments to connect windows with application icons
    and other information.  This is similar to the WM_CLASS property on X11.

    A few very minor fixes were done by @elmindreda during merge.

    Fixes #2121
    Closes #2122

commit 26b85215c07a32f860326bf02ef68f31c5e30837
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jul 14 11:52:55 2022 +0200

    Wayland: Static function more static when static

commit 6987294df91d9b9be03a796174863cb9d1a06d62
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jul 15 13:30:14 2022 +0200

    Wayland: Clean up cursor theme loading

commit 71be34a6c30825aef502b652c86cc31fdcbb5457
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jul 15 13:12:58 2022 +0200

    Wayland: Fix crash if mouse connected after init

    The cursor theme was only loaded if the chosen seat had a mouse
    (wl_pointer) during initialization.  If a mouse was connected only after
    glfwInit, there would be no cursor theme but the rest of the cursor
    related code assumed one had already been loaded.

    This also moves the details of cursor theme loading out into a separate
    function to declutter platform init.

    Because the original cursor theme loading code checked whether we got
    a wl_shm, and because the rest of the code just assumes we have
    a wl_shm, initialization will now fail if there isn't one.

    Fixes #1450

commit 7cc8b053b81ecbb32c013d47b8554c0ed116c820
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jul 15 12:50:18 2022 +0200

    Wayland: Clean up shared memory buffer creation

commit 91a96ed4343944add92bc02619319bb9ae9379fd
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jul 15 15:54:35 2022 +0200

    Update changelog and add credit

    Related to #2042
    Related to #2043

commit c424fe55892e7ac7c849989b9ab5e143825fdd4e
Author: Björn Hempel <heliflieger@users.noreply.github.com>
Date:   Sun Feb 6 13:32:10 2022 +0100

    Linux: Fix joystick without buttons being ignored

    Joysticks in Linux without buttons were ignored by device enumeration.
    Remove the mandatory button attribute from detection.

    Fixes #2042
    Closes #2043

commit c50d53160fa9b579dda0d0a4f9a7c2512940df8e
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 21:46:14 2022 +0200

    Make events test window appear on Wayland

commit 40b5a8a37cb4770ff5d307beb660fadc64be1265
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 12:54:24 2022 +0200

    Wayland: Fix reappearing key repeat

    If the key or character callback performs actions that indirectly
    updates the key repeat timer, those changes would be undone once the key
    callback returned.

    This fixes the order of operations so that key repeat is fully set up
    before the key related events are emitted.

commit 9180923ea08d70d15a287b49a06ffbecd781a060
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 21:32:30 2022 +0200

    Wayland: Clean up key repeat logic

commit a1a73ee86257a62818b010cd3de55e10d7ce7105
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 20:33:30 2022 +0200

    Wayland: Make text input logic static

    Since the seat listener was moved into wl_window.c there is no reason
    for text input to have external linkage.

commit e47cb7c1e20f20b8f7d091e477be3fe41201836e
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 20:13:01 2022 +0200

    Wayland: Update state before emitting events

commit 4df24735ef6bb644830ecdacf89dd04cd8547b86
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 14:26:25 2022 +0200

    Wayland: Do not emit events for destroyed window

    During platform window destruction, all of its callbacks have already
    been removed, so emitting events for it does nothing.

commit d77aaa770f97cd22b16cb4c8b9a3b9aaf33da245
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 13 12:53:25 2022 +0200

    Wayland: Fix non-standard struct initialization

commit aa80d24d01d150e26d664ff2d5da22e95db6bb82
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 28 23:19:30 2022 +0200

    Documentation work

    Fixes #1596

commit fd7e737216dfdcecd4522b7d8c8dd2439d3dac3b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jul 12 11:44:37 2022 +0200

    Linux: Fix duplicate joystick objects

    This fixes a regression introduced by
    2c204ab52ecaa51bfd32b777aef715dae937f009.  This broke the check for
    whether there is already a GLFW joystick object for a given input
    device, making it always fail.

commit 6dd526fb1a9c16c3170a0ebd2b5c73e4a2719245
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 28 22:26:39 2022 +0200

    Win32: Fix right Shift scancode when using CJK IME

    Fixes #2050

commit 2796e61af7b4d0c5f2380c3e1803e21ac1089029
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 24 19:29:29 2022 +0200

    Documentation work

commit 88a39006e3407656a7ca33d23f8045c6aca43008
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 23:19:40 2022 +0200

    Wayland: Cleanup

commit 5c948a6e6e52eb89e11d1a424bbf578bfc573319
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 23:12:31 2022 +0200

    Wayland: Fix comment typo

commit 8e725338bf210b9cc53f6b874307080e16368802
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jul 11 20:54:03 2022 +0200

    Add credit

    Related to #2150

commit 060631c9658010945c6b89935e5ac41a5b4a991c
Author: JoelNiemela <joel@niemela.se>
Date:   Fri Jul 8 18:52:54 2022 -0500

    Fix typos in docs

    Closes #2150

commit 36f0bf00a92b15e301bb28e840a4361e0b74b123
Author: Camilla Löwy <elmindreda@glfw.org>
Date:   Fri Jul 8 15:51:07 2022 +0200

    Cocoa: Fix build failure on OS X 10.11

    The NSWindowCollectionBehaviorFullScreenNone enum value is missing from
    system headers on 10.11 despite the documentation claiming it was added
    in 10.7.

    Unfortunately Apple has taken down all API release notes for versions
    prior to 10.14.

    This fixes a build failure introduced with
    98d6e8485b327288f5b53e59e6cc2267e28376bd.

commit 84e165ef64ce117c5f1fa99b607f5bd143973e65
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jul 8 00:19:03 2022 +0200

    Win32: Work around warnings on MSVC 19.32.x

commit 2db528d8cddcebc4c96fdac0c6a2d72792578004
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jul 7 22:48:03 2022 +0200

    Cocoa: Cleanup

commit 78b19548d9395898ecca6b792a37125520f93f5c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jul 7 20:26:37 2022 +0200

    Documentation work

    Related to #2113
    Related to #2120

commit dfb26023fca8d7cdd24bf43003109b89acea6869
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jul 7 20:01:28 2022 +0200

    Update changelog and add credit

    Related to #2113
    Related to #2120

commit 9b7713cf92582cf56c4f79116001c33d1e6e655f
Author: Nikita Fediuchin <cfnptr@gmail.com>
Date:   Thu May 26 09:27:39 2022 +0300

    Cocoa: Fix search path for private Vulkan loader

    According to both Apple and LunarG, a private copy of the macOS Vulkan
    loader libvulkan.1.dylib should be placed in the Frameworks directory
    of the bundle and not its main executable directory.

    This commit updates the dynamic loading path accordingly.

    Fixes #2113
    Closes #2120

commit 3b3d58df47166865494c29cf3aeb826d1dd29777
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jul 6 23:07:20 2022 +0200

    Add support for VK_KHR_portability_enumeration

    The use of this extension is required to enable the MoltenVK physical
    device as of Vulkan SDK 1.3.216.0.  This is because MoltenVK is still
    very (very) slightly non-conformant.

commit 510a08cde210d133fed1da21dd080072d92ee04a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jul 7 22:55:27 2022 +0200

    Update glad to include Vulkan 1.3

    Also add the VK_KHR_portability_enumeration extension, which will be
    needed on macOS.

commit 0d599026d04ddcc2695ae938fc1864523dab7a34
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jul 1 18:19:19 2022 +0200

    Cocoa: Fix clearing of unrelated window style bits

    Whenever GLFW changed the window style mask, a new mask was created
    from scratch based on the attributes set on the GLFW window object.
    This caused us to potentially clear unrelated window style bits.

    This was always wrong but became a critical issue when Cocoa began
    throwing an exception if an application cleared the
    NSWindowStyleMaskFullScreen while the window is in macOS fullscreen.

    This commit reworks all style mask editing so it only changes the
    relevant bits, preserving all others.

    This is only a narrow bug fix to prevent crashes, intended for the
    stable branch.  Our interaction with macOS fullscreen is still very
    poor.  The next step after this is a set of patches that improve the
    interaction between the current API and macOS fullscreen.

    Fixes #1886
    Fixes #2110

commit 6f8ec4075be53b17c08cfe4f83f02157cc7bcc12
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 30 22:08:52 2022 +0200

    Cocoa: Fix GLFW_MAXIMIZED for nonresizable windows

    The reasoning here is that glfwRestoreWindow will change nothing for
    a windowed non-resizable window on Cocoa, and silently refusing to
    maximize seems slightly more like something other platforms would do.

    This is possibly either the right thing to do or the wrong one.

commit 98d6e8485b327288f5b53e59e6cc2267e28376bd
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 30 21:11:10 2022 +0200

    Cocoa: Disable macOS fullscreen when non-resizable

    Windows with GLFW_RESIZABLE set to false should not be resizable by the
    user.

commit da6713cd096a40a4512f468b34c189017e73f987
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 20:50:48 2022 +0200

    Wayland: Do not decorate fullscreen windows

    If a fullscreen window with GLFW_DECORATED set had its XDG decorations
    changed to client mode by the compositor, it would seemingly receive
    GLFW fallback decorations as if it was windowed mode.

    This is possibly related to #2001.

commit d578c2ddfeb6a31c532ddc29de289762745548d2
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 19:52:39 2022 +0200

    Wayland: Only create EGL window if using EGL

commit 74b4ceb8354bbe3eb4d225bcc07c4ed4023ca1f2
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 19:48:28 2022 +0200

    Wayland: Cleanup

    This moves what is effectively showing the window to where that is done
    on other platforms, i.e. last in the platform CreateWindow function.

commit c4fbe80d90ac7f4bd2fc0f02afccdc4d45489cbf
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 19:37:35 2022 +0200

    Wayland: Make function behavior match name

    The logic that checks the decorated attribute belongs on the outside
    along with other related checks (fullscreen, monitor, decoration mode).

commit be7f4513c05a45e6252f940408e139741a462986
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 17:37:37 2022 +0200

    Wayland: Remove premature surface commit calls

    Note that the handling of configure events, acks and commits is still
    not ideal.  This is just a small step in, hopefully, a good direction.

    Fullscreen toggling via glfwSetWindowMonitor now works on Weston, but
    mostly incidentally.

commit 47193f15de529b6e7c182168b1c17f29bda9de4b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 21 15:23:32 2022 +0200

    Wayland: Rename function to its purpose

commit 80dc0533cf7234517328537a54b7675f0588713c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 22:57:18 2022 +0200

    Wayland: Use enum type to store enum value

commit 29b7669bc6a42de729a59abc96ce8849654751c7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 22:48:35 2022 +0200

    Wayland: Fix transition to server-side decorations

commit f35e2274cbf253b659e9847354fe72d7b45dcc9a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 22:36:23 2022 +0200

    Wayland: Fix GLFW_DECORATED for XDG decorations

    On a compositor that supports server-side decorations, they were always
    enabled in windowed mode, even if GLFW_DECORATED was cleared.

commit 3203599cac774c4aa48dc17eb963f4a90c6d70ff
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 22:21:41 2022 +0200

    Wayland: Fix map before XDG decoration configure

    If the xdg_toplevel has a decoration, we need to wait for its first
    configure event as well before we are allowed to attach the first
    buffer.

    It seems racy to assume that this will always happen inside the first
    surface configure sequence, so this commit makes that condition
    explicit.  This may turn out to have been overly defensive.

commit 2df0ce07faead09b1d305d30cf68d95c1145c37c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 22:20:56 2022 +0200

    Wayland: Store and act on XDG decoration mode

    Refer to the XDG decoration mode (or the lack of one) directly instead
    of setting a boolean in a struct meant for the fallback decorations.

    This makes things a bit more verbose but is in preparation for
    a refactoring of all decoration paths.

commit 83a134a92fa8642fe50c6e9b2400044e442d038a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 00:43:24 2022 +0200

    Wayland: Fix mapping failure on wlroots compositor

    When showing a window that had already been shown once (and so already
    had its shell objects), GLFW would attach a new buffer and commit it
    before waiting for the next configure event.  This was a violation of
    the XDG shell protocol.

    This was allowed to work as intended on GNOME and KDE without error.
    However wlroots based compositors would (correctly) emit an error.

    Unfortunately, I haven't been able to find a way to get both KDE, GNOME
    and Sway to send the configure event we need in order to map the
    wl_surface again while keeping our existing shell objects, so with this
    commit we now create them for each call to glfwShowWindow and destroy
    them for each call to glfwHideWindow.

    Fixes #1268

commit eb9c3bee71edd2f72cf212105cb8a9ff5c77a673
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 20 00:27:04 2022 +0200

    Wayland: Rename fallback decoration functions

    We are soon going to have three kinds of decorations; XDG, libdecor and
    our last resort fallback ones.

commit 0cd1916de39b67878ae178f211921e5606c4485d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 15 20:16:40 2022 +0200

    Wayland: Remove function only called once

commit 77819c0c549fa9c1aa40ff74289bd7cfae61f296
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 15 18:20:16 2022 +0200

    Wayland: Fix maximized state lost while hidden

    If a window was created as maximized, or created as hidden and then
    iconified or maximized before first being shown, that state was lost and
    the window was shown as restored.

commit e52046955d551a1a07bd213f5ada657f83a49fcb
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 15 14:41:46 2022 +0200

    Wayland: Cleanup

commit 55fcfb1bb642485b1c14fa8e20388fa2ac9fb8c0
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 15 14:39:30 2022 +0200

    Wayland: Fix error for setting GLFW_FLOATING

commit 203002ef2c6a8518138eed981ba1e95cfe59c59c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 15 14:12:32 2022 +0200

    Wayland: Fix latent bug for glfwGetWindowTitle

commit 85f5a51912c3329137377cd2ba0f0a7a34887ed7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 15 17:57:54 2022 +0200

    Wayland: Fix events emitted before ack_configure

    Window iconfication and maximization events were being emitted before
    xdg_surface::configure, making it possible for user code to indirectly
    commit surface changes from those event callbacks before
    xdg_surface::ack_configure.

    This postpones those events until after the ack has been sent.

commit 9ad9f5c52a9e89c598d39ffaa918106c1a096e7f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 22:28:05 2022 +0200

    Wayland: Fix missing error reporting

commit 5002522f7340e2ffb5fae07690b6091cb13ee960
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 22:22:49 2022 +0200

    Wayland: Cleanup

    Make Wayland code use 'native' in the same senses as the rest of GLFW.

commit 91f18fb57697c57bf9da64ad546eed5c60518618
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 20:37:31 2022 +0200

    Wayland: Fix error from glfwSetWindowAspectRatio

    The aspect ratio was applied during resize but any call to
    glfwSetWindowAspectRatio emitted a GLFW_FEATURE_UNIMPLEMENTED error.

commit e37ba80b1343f46d1b380fd3b9816e1260d8ee0a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 18:46:47 2022 +0200

    Wayland: Fix reporting of monitor scale changes

    Content scale events would be emitted when a window surface entered or
    left an output, but not when one of a window's current outputs had its
    scale changed.

commit c3ad3d49ed8b436582a6fbba1c3e64f97087e362
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 18:44:24 2022 +0200

    Wayland: Fix duplicate monitor connection events

    GLFW would report a monitor as connected each time its wl_output
    received an update, for example if its scale changed.

    This would also cause the monitor to be added to the monitor array
    again, causing glfwTerminate to segfault when it attempted to destroy
    its already destroyed wl_output.

commit 209f6cf0935412e067e6595790cf3d3d5866923d
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 18:20:56 2022 +0200

    Wayland: Add support for wl_output::name

    We now use wl_output::name as the GLFW monitor name, on compositors that
    provide this event.

commit 33d37782c6551fe67c553dd077ad7ee79f1b76f4
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue Jun 14 18:12:49 2022 +0200

    Wayland: Cleanup

commit 229d628ec47073c3778ba2e37c02c8d94140be77
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 13 19:37:34 2022 +0200

    Wayland: Fix toggling of server-side decorations

    This is a temporary local fix to have updates to GLFW_DECORATED mostly
    work as intended.  The whole decoration state machine needs to be
    restructured, but not by this commit.

commit c28d420060a60d579e15afb812d5bd054891179a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Jun 13 15:12:52 2022 +0200

    Wayland: Remove duplicate fullscreen check

    This check is already performed in shared code.

commit 18df0baea60ed17d744eb4b714b8b9363776c0cf
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jun 12 23:16:16 2022 +0200

    Wayland: Cleanup

commit a7b6f355008237c28faad86c2188cc5f132aec64
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jun 12 21:36:26 2022 +0200

    Wayland: Fix size limits for fallback decorations

    The size limits set on our XDG surface did not include the sizes of the
    fallback decorations on all sides, when in use.  This led to its content
    area being too small.

    Related to #2127

commit 0f5b095042842006747f8dc04aded64ea3e05d2a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 16 01:36:55 2022 +0200

    Wayland: Fix erratic fallback decoration behavior

    The handler for xdg_toplevel::configure treated the provided size as the
    content area size when instead it is the size of the bounding rectangle
    of the wl_surface and all its subsurfaces.

    This caused the fallback decorations to try positioning themselves
    outside themselves, causing feedback loops during interactive resizing.

    Fixes #1991
    Fixes #2115
    Closes #2127
    Related to #1914

commit 24cdc5afda8f36981eb46ae5c8189478774a325f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 16 01:35:59 2022 +0200

    Wayland: Rename window frame size constants

commit 75295f48781fb2209f4d7cb1a021b299f338996a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jun 12 18:47:30 2022 +0200

    Wayland: Remove unused code path

commit 040712ce99ea787a85ae68b75fa452ee817274b8
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 18:53:22 2022 +0200

    Wayland: Cleanup

commit 2877fea550038d73a8d04feb38af6ca4e4c3a5b6
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 18:51:57 2022 +0200

    Wayland: Remove superfluous comments

    These are just repeating parts of the identifier.

commit e33db6d7aa2b62072f312bd7b723efecf5b7c9ac
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 18:38:06 2022 +0200

    Wayland: Fix resize events before ack_configure

    The surface was resized and the size event was emitted before we had
    sent xdg_surface::ack_configure.  If user code then called some GLFW
    function that commited the surface, those changes would all get applied
    to the wrong configure event.

    This postpones size changes until after the ack.

commit afb127769a5a39246ae80e2489f0d4cf43a32fbb
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 18:36:16 2022 +0200

    Wayland: Add tracking of XDG fullscreen state

commit ed39ff43f969b54ba4659293dfaf4d6948f07fed
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 15:46:24 2022 +0200

    Wayland: Use named constants for version checks

    The wayland-scanner output provides really nice, self-documenting
    version macros, so we should use them whenever possible.

commit 98c9961f3265c1a926e16ff454274e75eda377f2
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 17 20:16:34 2022 +0200

    Wayland: Cleanup

commit 3bbb41eacc294d3030303eabfd16f66d452e9a72
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 15:45:07 2022 +0200

    Wayland: Fix glfwInit closing stdin on failure

    If platform initialization failed before either timer fd member had been
    set to -1 or a valid fd, termination would close stdin.

commit 0b76e3a6f158549b96d1ae3424f094c63177b2ce
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 14:19:13 2022 +0200

    Wayland: Fix duplicate window content scale events

    The window content scale event was emitted every time the window content
    area was resized, even if its scale had not changed.

commit 6857995498d6628b3052b547ecd7cdecfee342d6
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 14:10:25 2022 +0200

    Wayland: Fix glfwSetWindowSize resizing fs windows

    glfwSetWindowSize would change the size of fullscreen mode windows as
    if they were windowed mode.

commit fdc72edf8177f74b9565094559ebd0a717af93a0
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Jun 19 18:30:03 2022 +0200

    Wayland: Fix missing fullscreen code path

    glfwRestoreWindow assumed it was only called in windowed mode.

commit f39ffefb6a754677305efab556216f99f90c778a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 13:29:24 2022 +0200

    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.

commit ddd087d6627d19655d78196b5836c1d090b59506
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 9 21:31:44 2022 +0200

    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

commit 523fdf50c14210e03434648ee45bade9067fd41c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 16 13:32:31 2022 +0200

    Wayland: Cleanup

commit d3ede7b6847b66cf30b067214b2b4b126d4c729b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri Jun 10 00:14:05 2022 +0200

    Add credit

    Related to #2108

commit a465c1c32e0754d3de56e01c59a0fef33202f04c
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Fri May 6 17:58:42 2022 +0200

    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.

commit 2ae3e0c8d7d237523cf7ec8c4ce95a7fdb40114f
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun Mar 27 19:40:35 2022 +0200

    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.

commit ad3dbeb65feaba28f1b3df9d5788c35735809f8b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Dec 22 14:14:24 2021 +0100

    Add basic assertions for event API arguments

commit 05f6c13d119ea2662c97527d2421fb4cffd3dbfc
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Mon Apr 18 23:09:47 2022 +0200

    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

commit edec334b32458df9ced9d84a39c3cd4b757597bb
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu Jun 2 21:25:15 2022 +0200

    Cocoa: Use system header to declare id type

    Related to #1348

commit 26920a1a38d7c4c5b7908cf2e04b750d941f1faa
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed May 25 19:43:55 2022 +0200

    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

commit 736a88b0672a8a616d109da73bef6d1e44eb063b
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Sun May 22 14:40:00 2022 +0200

    Fix return type of functions returning bool values

commit 2c204ab52ecaa51bfd32b777aef715dae937f009
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu May 5 22:23:12 2022 +0200

    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

commit e9c58bc1815656403b736000469f2ae5d2f0303a
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Wed Jun 8 19:14:13 2022 +0200

    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.

commit 62e175ef9fae75335575964c845a302447c012c7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Thu May 5 21:47:34 2022 +0200

    Win32: Add comment clarifying use of ToUnicode

    Fixes #2100

commit ce85c7dcaf48be96870f2d8fec1d78b0b7d744c7
Author: Camilla Löwy <elmindreda@elmindreda.org>
Date:   Tue May 3 19:54:08 2022 +0200

    Fix GLAPIENTRY not being defined for native access

    This is a follow-up to 535c3ce63240ee91f998219b35dc82abef545c3d.

    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 g…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature suggestions and PRs Wayland
Projects
Queue
Todo
Development

Successfully merging a pull request may close this issue.

3 participants