| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(cherry picked from commit e8542b06acca3c1bdeee4b528411771f0819f084)
Credits:
Co-authored-by: Skogi <skogi.b@gmail.com>
Co-authored-by: Spartan322 <Megacake1234@gmail.com>
Co-authored-by: swashberry <swashdev@pm.me>
Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se>
Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com>
Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com>
Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com>
Co-authored-by: radenthefolf <radenthefolf@gmail.com>
Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com>
Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com>
Co-authored-by: decryptedchaos <nixgod@gmail.com>
Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com>
Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com>
Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com>
Co-authored-by: Mister Puma <MisterPuma80@gmail.com>
Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com>
Co-authored-by: SingleError <isaaconeoneone@gmail.com>
Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
-avoid use of transitive wayland include
-resolves https://github.com/godotengine/godot/issues/95830
Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
(cherry picked from commit 6ce71f0fb0a091cffb6adb4af8ab3f716ad8930b)
|
|
|
|
|
|
| |
Before, multiple capability events would instantiate the same object
over and over as long as its bit was set. This caused issues with
hotplug and device suspension.
|
|
|
|
|
|
|
| |
Also tried to make tablet handling a bit tidier (less whitespace).
That said I'll uniform tablet handling better once we're back in the dev
cycle.
|
|\
| |
| |
| | |
Wayland: Check for suspended flag when unsuspending
|
| |
| |
| |
| |
| | |
Before, we would only check for the frame flag, which is unreliable on
newer suspension-aware compositors.
|
|/
|
|
|
| |
This is needed for initializing xdg_surfaces when not using libdecor.
Now the pure xdg_shell code path should work again.
|
|
|
|
|
| |
Oops, forgot to do that. Motion-dependent stuff should now work properly
when using scaled displays.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before of this patch, as explained in the usual
commented-wall-of-text-longer-than-the-actual-patch-itself™, due to the
multithreaded nature of the Wayland thread, it was possible to commit a
surface while the renderer was doing stuff, which was _very_ wrong.
Initially the consequences of such a sin weren't obvious but, now that
explicit synchronization is becoming more and more common, we can't
commit a buffer randomly without basically guaranteeing a nasty, nasty
crash (and we should have avoided commits altogether in the first place
to ensure atomic surface updates).
We now only trigger a commit _in the main thread_ when low processor usage
mode is on _and_ if we know that we won't be rendering anything as, due to
its intermittent nature, it makes "legacy" (pre xdg_wm_base v6) frame
callback based suspension quite annoying.
|
|\
| |
| |
| | |
[Wayland] Implement IME support.
|
| | |
|
|\ \
| |/
|/|
| | |
EGL: Use `EGL_EXT_platform_base` whenever possible
|
| |
| |
| |
| |
| |
| | |
This avoids any assumption from the driver, which would otherwise select
a specific platform and potentially mess up everything, resulting
usually in a display server failure.
|
|/ |
|
|\
| |
| |
| | |
[DisplayServer] Add error messages and descriptions to callbacks.
|
| | |
|
|\ \
| | |
| | |
| | | |
Wayland: Implement `is_window_transparency_available`
|
| |/ |
|
|/
|
|
|
|
| |
-wayland-egl.h was missing if opengl3=yes (default)
Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
|
| |
|
|\
| |
| |
| | |
Wayland: Workaround API limitation in screen/UI scale logic
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Mainly, this fixes auto UI scaling with _single-monitor_ fractional
setups (see the comment in `display_server_wayland.cpp` for more info).
This is the result of a bunch of current limitations, mainly the fact
that the UI scale is static (it's probed at startup) and the fact that
Wayland exposes fractional scales only at the window-level, by design.
The `screen_get_scale` special case should help in 99% of cases, while
the auto UI scale part will unfortunately only help with single-screen
situations, as multi-screen fractional scaling requires dynamic UI
scale changing.
|
|/
|
|
|
|
|
|
|
| |
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
|
|
|
|
|
| |
Everything was already there, we just had to wire it up in the display
server.
|
|
|
|
| |
Convenience for a number of cases operating on single values
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we pretty much hardcoded most of the globals we requested,
causing compatibility issues with certain compositors like Weston, which
support only some pretty old versions or miss some more advanced
protocols.
To put fuel on the fire, we also errored out when certain protocols
weren't available, despite us being able to boot a game just fine (but
obviously with a degraded featureset).
The solution is to simply allow all the way from version 1 to the
current latest, adding some compatibility code (such as for older
`wl_output`s or newer `wl_pointer`s).
While we're at it, this commit also fixes a few typos and naming inconsistencies
I found.
|
|
|
|
| |
deferred call.
|
|
|
|
|
| |
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
|
| |
|
|\
| |
| |
| | |
Core: Implement a XOR operator for BitField
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | | |
Wayland: Setup next cursor frame callback only if animated
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before, the cursor kept updating for no good reason really.
It's also a bit neater and it ever-so-slightly makes `WAYLAND_DEBUG`
logs easier to read, although they're still spammed by the window's
frame logic (which is needed).
|
|\ \ \
| | | |
| | | |
| | | | |
Wayland: Stop possible Null pointer dereferences
|
| |/ / |
|
|/ / |
|
|\ \
| | |
| | |
| | | |
Move `global_menu_*` methods to a separate `NativeMenu` class.
|
| | | |
|
|\ \ \
| |/ /
|/| |
| | | |
Wayland: Properly report all used features
|
| | |
| | |
| | |
| | | |
Oops, missed a few.
|
|/ / |
|
|\ \
| | |
| | |
| | | |
Improve `cursor_set_custom_image()` method
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This code was already partially there, although heavily incomplete and
nowadays commented out.
It got broken after the `WaylandThread` refactor and I didn't bother to
bring it over, preferring to `#if 0` it into oblivion for the time
being as I don't have a tablet/pen which support an eraser and tilt
reporting.
This commit brings it back and adds proper multi-tool support (needed
for eraser detection) thanks to winston-yallow, who could test this code
with their more capable tablet.
|