Commit Graph
83 Commits
Author SHA1 Message Date
Bartosz Taudul ee27a99188 Use the dispatch timeout as the unfocused throttle on Wayland.
Pass the 50 ms budget as the timeout of wl_display_dispatch_timeout
instead of sleeping after a nonblocking dispatch. The dispatch flushes
before polling and wakes on any event, e.g. re-granted focus.
2026-10-17 20:21:06 +02:00
Bartosz Taudul f5290242f3 Don't throttle the first Wayland frame on unknown focus state. 2026-10-17 20:21:04 +02:00
Bartosz Taudul 853fff614e Support nfd parent window with wayland backend. 2026-07-02 02:14:04 +02:00
Bartosz Taudul db383f738b Store window handle for file selector. 2026-07-02 01:26:58 +02:00
Ivan Molodetskikh 218265ad37 wayland: Adjust scroll scaling
Regular mice send a value of 15 for one wheel tick, not 8.

This currently doesn't change anything about vertical scrolling since
it's handled discretely, but that will change in the next commit.
2026-01-05 19:44:42 +03:00
Bartosz Taudul b4ff3b1c83 Do not pass AltGr to ImGui.
AltGr (right alt) is used to enter characters, at least with the Polish
keymap. ImGui uses alt to switch between some of the controls. Keep the
interaction on the (left) Alt key, and leave AltGr to do composition.
2025-12-31 14:00:01 +01:00
Bartosz TaudulandIvan Molodetskikh 6e3acecf54 Proper rounding for window size with fractional scaling.
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-10-24 22:09:38 +02:00
Bartosz Taudul 32cc0e5121 Take scale into account when creating window. 2025-10-23 19:30:26 +02:00
Bartosz Taudul 7428defab6 Don't attach wayland surface before acking configure. 2025-10-21 22:55:19 +02:00
Bartosz Taudul 981717f3ef Workaround libwayland regression.
https://gitlab.freedesktop.org/wayland/wayland/-/commit/ddd348da7ea0889056843cf252729185d306b7b8
2025-08-25 17:08:21 +02:00
Bartosz Taudul d4094f45cc Replace all deprecated ImGui functionality. 2025-07-12 19:50:37 +02:00
Bartosz Taudul 9e593ce61c Support hand pointer mouse cursor on Wayland. 2025-07-12 11:50:20 +02:00
Bartosz Taudul 7cae20d572 Implement key repeat in BackendWayland. 2025-07-12 11:50:17 +02:00
Bartosz Taudul fb0d4f0d82 Make config accessible to all code without extern hacks. 2025-07-12 11:50:15 +02:00
wannacu 034b18a933 Fix profiler compilation for older wayland version 2025-07-07 11:54:14 +08:00
bbb651 ae2e6d0a7b wayland: Activate window with XDG_ACTIVATION_TOKEN. 2025-03-09 00:45:51 +02:00
Bartosz Taudul 48efd98df7 Unmap icon buffer memory. 2025-02-20 00:14:24 +01:00
Bartosz Taudul 367ed69501 Use XDG toplevel icon protocol to set the icon. 2025-02-12 00:21:27 +01:00
Bartosz Taudul 44ae59f363 Enforce DPI scale setup on first render frame.
Not all backends know their DPI before window is available.
2024-09-28 13:54:39 +02:00
Bartosz Taudul 616e7c2eec Retrieve ImGui with CPM.
ImGui OpenGL loader is patched, and not regenerated, because the gl3w
script requires network connectivity to download the header files from
Khronos at build time.
2024-09-27 15:55:22 +02:00
Bartosz Taudul 44d1502474 Always keep cursor shape initialized. 2024-09-14 01:15:02 +02:00
Bartosz Taudul 88f0f6680b Implement Wayland clipboard paste. 2024-09-08 21:16:21 +02:00
Bartosz Taudul 25ff997548 Implement clipboard copy on Wayland. 2024-09-08 21:16:20 +02:00
Bartosz Taudul 59092bef72 Create data device for a seat. 2024-09-08 19:20:16 +02:00
Bartosz Taudul bec8973265 Bind data device manager. 2024-09-08 18:29:02 +02:00
Bartosz Taudul d4f6537b95 Cosmetics. 2024-09-08 18:28:56 +02:00
Bartosz Taudul f6f8fb3d27 Set dark background. 2024-06-07 23:53:25 +02:00
Bartosz Taudul e85457815e Conditional framerate limiting on Wayland. 2024-03-29 21:56:54 +01:00
Bartosz Taudul 547325f270 Reduce framerate on Wayland when profiler window has no focus. 2024-03-29 21:46:24 +01:00
Bartosz Taudul 767f7e4fd4 Track keyboard focus on Wayland. 2024-03-29 21:38:20 +01:00
Bartosz Taudul e071b9043f Set busy cursor when the application is busy. 2024-03-24 17:40:30 +01:00
Bartosz Taudul 5b2cce0a02 Push IsBusy() callback to Backend. 2024-03-24 17:39:55 +01:00
Bartosz Taudul 630effe8fa Add support for different mouse cursors on Wayland. 2024-03-24 01:54:21 +01:00
Bartosz Taudul 87dcfbd84b Set mouse cursor with the cursor shape protocol. 2024-03-24 01:36:03 +01:00
Bartosz Taudul 6349d1ef0b Support fractional scaling.
Mouse cursor is broken, but the whole Wayland design of providing mouse
cursors as surfaces by the application is broken.
2024-03-24 01:17:40 +01:00
Bartosz Taudul cdfad41d68 Refresh screen after scale change. 2024-03-24 00:04:46 +01:00
Bartosz Taudul bf86eba59c Rescale scale to have 120 as a unit. 2024-03-24 00:02:13 +01:00
Bartosz Taudul 16554ed2ed Handle wayland window resizes the right way. 2024-03-23 23:57:08 +01:00
Bartosz Taudul aa4878bb8e Bind viewporter. 2024-03-23 22:27:49 +01:00
Bartosz Taudul 2bfa540656 Bind fractional scale manager. 2024-03-23 22:27:48 +01:00
Bartosz Taudul bde0c63006 Generate Wayland protocol sources. 2024-03-21 23:04:40 +01:00
Bartosz Taudul 776b08f2e0 Split core server files from the UI. 2024-03-21 23:04:38 +01:00
Bartosz Taudul c673056dd4 Prevent window resizes on DPI change. 2024-03-16 01:13:09 +01:00
Bartosz Taudul 4fbef01729 Trigger redraw when DPI changes.
Previously the wayland surface was not updated, because there were no
surface commits performed due to power saving routines.
2024-03-16 00:57:55 +01:00
Bartosz Taudul bdfcc5b814 Add missing ImGui renderer shutdown to the Wayland backend. 2024-03-01 22:11:30 +01:00
Bartosz Taudul ea0471f9d0 Fix wl_surface v6 listener. 2024-02-28 13:30:59 +01:00
Ivan Molodetskikh fcdc96748e wayland: Use preferred_buffer_scale when available
On wl_compositor >= 6 we bind v6 and use preferred_buffer_scale.
Otherwise we bind 4 and do as before.

No other changes are needed for the version bump as Tracy doesn't use
wl_surface_attach() with nonzero coordinates.
2024-01-24 12:43:42 +04:00
Ivan Molodetskikh 16434f116c Add a way for Backend to signal scale changes
On Wayland the scale now changes to the correct value as the Tracy
window is moved across monitors.

If the scale is overridden from environment, it does not change, just
like before.
2024-01-24 12:34:23 +04:00
Ivan Molodetskikh bf3bd28bfa wayland: Keep track of entered outputs for scale
Wayland kindly informs us which outputs the surface is on, to be used
for scale computation (at least on wl_compositor < 6). On mixed DPI
setups this fixes Tracy potentially using a higher scale than the output
it's displayed on.

However, as is, this commit results in Tracy always using scale 1,
because at the point of backend creation (which is when the scale is
queried) the surface is not yet displayed on any outputs, so a scale of
1 is assumed.
2024-01-24 12:19:52 +04:00
Ian Douglas Scott 8fe6c39bb5 wayland: Fix use of xdg-decoration protocol
`zxdg_toplevel_decoration_v1` isn't a global, so the code handling it as
one wasn't doing anything. Instead,
`zxdg_decoration_manager_v1_get_toplevel_decoration` returns it.

This fixes the behavior for compositors that support server-side
decoration, but do not default to it until explicitly requested by the
client.
2023-10-09 14:32:42 -07:00