Commit Graph

79 Commits

Author SHA1 Message Date
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 Taudul
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.
ddd348da7e
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
Bartosz Taudul
c57b8994f6 Reduce required version of wl_seat protocol to 5.
The latest wl_seat protocol version is 9, but the last addition was made
to it in version 5. Wayland is stupid.
2023-05-25 18:48:45 +02:00
Bartosz Taudul
a0221c8660 Pass function objects through const references. 2023-04-16 16:44:18 +02:00
Bartosz Taudul
6e70b7c20b Push keyboard modifiers to ImGui. 2022-12-22 17:48:14 +01:00
Bartosz Taudul
797d5df850 Push key events to ImGui. 2022-12-22 17:39:30 +01:00