forked from glfw/glfw
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Im support rebase 20240131 #3
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
This brings together the two halves of the cursor setting logic for the fallback decorations.
Update naming and declarations to current standard.
The bitmask passed to MsgWaitForMultipleObjects was missing QS_SENDMESSAGE, causing glfwWaitEventsTimeout not to return when the thread received messages sent from other threads. Fixes glfw#2408
Passing a context-less window to a function that requires a context only emits a harmless GLFW_NO_WINDOW_CONTEXT error.
This introduces regex_compiled boolean to track whether the regex is compiled successfully. Closes glfw#2229
Related to glfw#2229
When compiling GLFW on Linux with only the Null platform enabled, the CMake files did not set the required POSIX version macro. Fixes glfw#2402
The declaration of _glfwRequestWindowAttentionNull was duplicated. Closes glfw#2403
Related to glfw#2403
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.
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.
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.
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.
This bug was introduced since the last release and should not be listed.
The documentation says it should be -1, not zero.
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 glfw#2327
The public header already defines APIENTRY, which is functionally identical to EGLAPIENTRY.
The shared header, internal.h, must be the first header included in every compilation unit of GLFW.
The list of compile-time dependencies on FreeBSD lacked evdev-proto. Unlike on Linux, the input-event-codes.h header file was not implicitly included on FreeBSD. Fixes glfw#2445
This changes the default platform for Unix-like systems (other than macOS) from only X11 to Wayland and X11. It also removes the backward compatibility with the older GLFW_USE_WAYLAND CMake option. If a bisect took you here because your build broke, hello, sorry, set the GLFW_BUILD_WAYLAND or GLFW_BUILD_X11 CMake option to disable the associated platform. This can be done when configuring GLFW with CMake, from a higher-level CMakeLists.txt if GLFW is part of your project, or at any point after configuration by updating the CMake cache with the command-line tool or the GUI. The next step is to make Wayland the run-time default when enabled, but that will hopefully not break any builds. Related to glfw#2439
This implements window attention requests via the xdg-activation-v1 protocol. This was updated by @ elmindreda to work with recent Wayland related changes to the main branch: - Switched to current way of handling Wayland protocol files - Added the xdg-activation-v1.xml protocol file to deps/wayland - Added missing macros to rename protocol interface globals The protocol file was copied from wayland-protocols 1.33. Closes glfw#2287
The native access functions for monitor objects did not check whether the correct platform was initialized and would return invalid handles if it was not.
In a Parallels VM wglGetPixelFormatAttribivARB returns fewer pixel formats than DescribePixelFormat. This broke context creation on Windows in Parallels since the changes in 2c0f34b. The previous version of the code worked accidentally. This adds a workaround by iterating through the minimum of both counts. It should have no effect when running on conforming implementations. Tested on Parallels by @ dougbinks. Closes glfw#2191 Fixes glfw#2406 Fixes glfw#2467
This fix is based on shibukawa's fix: glfw#658 shibukawa@d36a164 Some minor coding style changes are made, but not yet follow glfw's one, and some comments doesn't follow recent changes. So further work is needed. Co-authored-by: Yoshiki Shibukawa <[email protected]> Co-authored-by: Takuro Ashie <[email protected]>
This commit re-organizes 9d9af13. * Use dynamic load for Imm32. * Generalize platform-specific features to _GLFWplatform. * Add caret-position info to preedit-callback. * Add cursorWidth to preeditCursor and related APIs. * Handle UTF16 data correctly. * Handle GCS_RESULTSTR so that committed texts are processed correctly. * Handle WM_IME_ENDCOMPOSITION to clear preedit. * Handle WM_IME_SETCONTEXT. * https://learn.microsoft.com/en-us/windows/win32/intl/wm-ime-setcontext#remarks * Refactor code shapes and variable names. Co-authored-by: Takuro Ashie <[email protected]>
This fix is based on shibukawa's fix: glfw#658 shibukawa@d36a164 Co-authored-by: Yoshiki Shibukawa <[email protected]> Co-authored-by: Takuro Ashie <[email protected]>
This commit re-organizes 31b12b7. * Use dynamic load for TIS functions and stop using Carbon. * Generalize platform-specific features to _GLFWplatform. * Add caret-position info to preedit-callback. * Handle UTF16 data correctly. * Implement `firstRectForCharacterRange:actualRange:` to display preedit candidate window correctly. * Suppress _glfwInputKey during preediting. * Ensure preedit cleared after committed. * Fix wrong length of markedRange. * Improve IME status APIs. * Refactor code shapes and variable names. Co-authored-by: Takuro Ashie <[email protected]> Co-authored-by: xfangfang <[email protected]>
This fix is based on shibukawa's fix: glfw#658 The differences is the following. * Remove `X_HAVE_UTF8_STRING` branching since the current logic doesn't use it * Replace `XNDestroyCallback` for `XNPreeditAttributes` in `XCreateIC` Co-authored-by: Yoshiki Shibukawa <[email protected]> Co-authored-by: Takuro Ashie <[email protected]>
This commit re-organizes 6e7f939. * Load missing XIM related function symbols. * Generalize platform-specific features to _GLFWplatform. * Change the defalut input style to over-the-spot style. * Rename `decodeUTF8()` to `_glfwDecodeUTF8()` to make it as internal API. * It will be also needed to implment input method for Wayland. * Refactor code shapes and variable names. About over-the-spot style and on-the-spot style on X11: * In over-the-spot mode, almost all APIs are disabled since applications only need to specify the preedit candidate window position by `glfwSetPreeditCursorPos()`. * We can change the style by enabling `GLFW_X11_ONTHESPOT` init hint, but it has the following problems. * Status APIs don't work because status callbacks don't work. (at least in my ibus environment). * Can't specify the candidate window position. Known problems: * Some keys (arrow, Enter, BackSpace, ...) are passed to applications during preediting. * This will be fixed in PR glfw#1972 : glfw#1972 Co-authored-by: Takuro Ashie <[email protected]>
They are wayland protocols to support input methods: https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/text-input/text-input-unstable-v3.xml https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/text-input/text-input-unstable-v1.xml text_input_unstable_v3 is widely supported by major desktop environment on GNU/Linux such as GNOME or KDE. text_input_unstable_v1 isn't so popular but Weston which is the reference Wayland implementation supports only it and doesn't support text_input_unstable_v3 so that we also implement it.
Co-authored-by: Takuro Ashie <[email protected]>
This fix is from shibukawa's fix: glfw#658 shibukawa@d36a164
You can use this feature when you need to manage the drawing of the preedit candidates on the application side.
LGTM |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For checking CI