Chris Spencer
786a252b23
[client] x11: don't use primary selection for clipboard
...
This behaviour is more consistent with other applications where text
selections do not influence explicit clipboard operations.
2022-01-13 08:18:56 +11:00
Geoffrey McRae
952ebea2c5
[all] refresh copyright dates
2022-01-05 19:42:46 +11:00
Quantum
eea0ced627
[client] wayland: handle NULL wl_keyboard on destruction
2021-12-24 10:22:23 +11:00
Quantum
94684324f4
[client] wayland: don't create confines on uncapture without wl_pointer
2021-12-24 10:17:16 +11:00
Quantum
194afa2d75
[client] wayland: create wl_relative_pointer when creating wl_pointer
2021-12-24 10:17:16 +11:00
Quantum
d96b2ef1fb
[client] wayland: clean up objects when wl_pointer disappears
2021-12-24 10:17:16 +11:00
Geoffrey McRae
ad40ea4195
[client] x11: don't override the focus state if no EWMH focus support
2021-12-22 11:25:54 +11:00
Geoffrey McRae
65948034dd
[client] x11: be more agressive grabbing the pointer
2021-12-21 21:51:43 +11:00
Geoffrey McRae
27c7054505
[client] x11: protect against msc overflow with jitRender
2021-12-21 10:47:55 +11:00
Geoffrey McRae
02b59ba8f7
[client] x11: don't use the atomic msc value when we already have it
2021-12-21 10:47:11 +11:00
Quantum
a5727262cd
[client] wayland: make cursor change work without wl_pointer
2021-12-16 11:36:39 +11:00
Geoffrey McRae
5f80ce91e8
[client] x11: fix broken grab retry logic
2021-12-15 01:43:09 +11:00
Geoffrey McRae
b6fa296d5a
[client] x11: work around issue with desktop switch on i3
...
For an unknwon reason when LG is on another desktop (hidden) and the
user switches to that desktop, the first attempt to grab the pointer
results in a GrabFrozen result. This adds some simple retry logic to
attempt again after a short (100ms) delay which seems to resolve the
issue.
2021-12-15 00:23:44 +11:00
Geoffrey McRae
2e170ad06f
[client] x11: properly detect WMEH support for focus events
2021-12-15 00:17:33 +11:00
Geoffrey McRae
88a95aeab0
[client] x11: fix issue with grab when clicking on the unfocused window
...
Fixes #856
2021-12-10 05:27:58 +11:00
Geoffrey McRae
9780f51558
[client] x11: fix failure to set window position correctly when set
2021-11-30 13:04:39 +11:00
Geoffrey McRae
9c5e34df0f
[client] x11: handle EINTR properly in epoll loop
2021-10-20 15:40:50 +11:00
SytheZN
12321a8880
[client] wayland: implement resizing for libdecor
2021-10-14 18:17:00 +11:00
Quantum
12840a8324
[client] x11: load glXSwapIntervalEXT dynamically
...
The Linux OpenGL ABI does not guarantee that glXSwapIntervalEXT will be
exported statically from any library, and indeed on some systems this
function does not link at load time, e.g. with amdgpu-pro. All other
GLX functions that we use are from GLX 1.0, which is guaranteed to be
exported statically.
This commit solves this issue by using glXGetProcAddressARB to load the
function. Note that only the ARB version of glXGetProcAddress is
guaranteed to exist by the Linux OpenGL ABI, which is why we must use
it.
2021-09-29 17:47:36 +10:00
Quantum
72f3a9f3cf
[client] wayland: free presentation objects
...
Since the display server owns a graph, it was necessary to move the overlay
graphs destruction so that it happens after display server destruction.
2021-09-11 11:52:52 +10:00
Geoffrey McRae
ab3738624f
[client] x11: reduce the scope of deltats
2021-09-11 10:11:00 +10:00
Geoffrey McRae
25ed3632f7
[client] x11: remove dead code
2021-09-11 10:06:52 +10:00
Geoffrey McRae
3adb7ca4b2
[client] wayland: fix possible memory leak
2021-09-11 10:03:27 +10:00
Geoffrey McRae
4b3a79c110
[client] x11: remove print from debugging
2021-08-19 21:35:54 +10:00
Geoffrey McRae
2d470b8deb
[client] x11: filter out virtual/grabbed XIEnterEvents
2021-08-19 21:29:03 +10:00
Quantum
1021c9ce92
[client] x11: implement keyboard modifiers
2021-08-19 21:28:21 +10:00
Quantum
ce3f11fd40
[client] x11: implement keyboard typing
2021-08-19 21:28:21 +10:00
Quantum
81c38e825c
[client] remove all casts around malloc
...
The cast is unnecessary in C and should be removed to avoid clutter.
2021-08-16 16:26:58 +10:00
Tudor Brindus
14ad83c6b8
[client] use variable-relative sizeof where possible
2021-08-16 16:22:55 +10:00
Quantum
7cd0c55847
[client] wayland: support high DPI cursors when needed
2021-08-15 09:49:38 +10:00
Quantum
2dd1ad53f8
[client] wayland: respect XCURSOR_THEME and XCURSOR_SIZE env variables
2021-08-15 09:46:55 +10:00
Quantum
d35c448058
[client] wayland: set keyboard LED state when changed
2021-08-15 09:46:31 +10:00
Quantum
7045760490
[client] wayland: add keyboard typing handling with xkbcommon
2021-08-14 14:44:26 +10:00
Quantum
579f998519
[client] all: replace assert with DEBUG_ASSERT
2021-08-14 12:19:07 +10:00
Quantum
22bbc2457e
[client] wayland: fix deadlock when using wayland:warpSupport=no
2021-08-11 19:01:18 +10:00
Geoffrey McRae
1128eb0e84
[client] x11: don't hang when there are no message pending
2021-08-10 01:47:03 +10:00
Geoffrey McRae
1fd726eed7
[client] x11: be less sensitive to frame skips
...
External events like launching other applications can cause latency
spikes while X11 initializes the application, we should only start
adjusting our delay if we see excessive skips over a 1s period.
2021-08-09 15:51:01 +10:00
Geoffrey McRae
bc7e59c9d7
[client] x11: prevent present event loop underruns
...
Queue up and maintain a list of presentation timestamps to avoid spikes
caused by X11 event processing latency.
2021-08-09 15:24:12 +10:00
Geoffrey McRae
179eaef29d
[client] x11: switch to epoll for event wait loop
2021-08-09 15:23:44 +10:00
Geoffrey McRae
64da3465b8
[client] x11: invalidate the full window after timeout from expose
...
Invalidating the entire window on an Expose event causes poor WM
performance when dragging the window around. Instead flag to redraw and
wait for the expose events to stop for 100ms before doing it.
2021-08-08 08:49:46 +10:00
Geoffrey McRae
3e08e7aafa
[client] x11: prevent skew from enter/leave/focus and fullscreen events
2021-08-07 03:49:32 +10:00
Geoffrey McRae
ec56b2760a
[client] x11: don't allow window manager events to skew cal timing
2021-08-07 03:39:11 +10:00
Geoffrey McRae
ad256e0b00
[client] x11: improve presentation sync calibration
2021-08-07 02:36:11 +10:00
Geoffrey McRae
0603a55492
[client] x11: prevent possible calibration underflow
2021-08-05 07:11:23 +10:00
Geoffrey McRae
0af558345f
[client] wayland: fix build with libdecor after invalidateWindow change
2021-08-05 06:58:43 +10:00
Geoffrey McRae
6e7f39edee
[client] app: allow selective full invalidation
...
Overlays only need to trigger a new frame if they have changed and not
full window invalidation, this change allows for this.
2021-08-05 06:47:36 +10:00
Quantum
51b9cd4e5a
[all] copyright: use unicode copyright sign ©
...
This is done for consistency with the license strings in appstrings.c.
2021-08-04 21:16:35 +10:00
Geoffrey McRae
80c9f7223a
[client] wayland: fix failure to build
2021-08-04 07:21:57 +10:00
Geoffrey McRae
c15d0dc672
[client] ds: waitFrame now returns a bool to force rendering if needed
...
X11 needs to calibrate to get the best possible latency, as such it
needs the scene to render so that the render time of the scene can be
accounted for in the delay calculation.
2021-08-04 06:49:35 +10:00
Geoffrey McRae
0f7fa32d12
[client] x11: move sleep and calibration code outside of the event loop
...
Sleeping in the x11 event loop is not ideal as it will introduce latency
when processing other events, instead do this in the waitFrame handler.
2021-08-04 06:34:27 +10:00