Commit Graph

1852 Commits

Author SHA1 Message Date
Nikolay Borodin
07303ce2cb core: added proper event handling for XESetWireToEvent 2023-06-16 23:54:37 +02:00
Yuxuan Shui
cee1287562 github: update git-clang-format-lint action
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2023-01-29 16:23:26 +00:00
Yuxuan Shui
317275abf6 Merge pull request #995 from absolutelynothelix/begone-xinerama 2023-01-29 15:36:04 +00:00
Maxim Solovyov
986b3c1cb3 core: drop xinerama
there are two x extensions for working with monitors (especially
multiple): xinerama and randr. xinerama is old, feature-poor and in
general isn't used anymore compared to the randr: new, feature-rich and
widely-used. for some reason we were using both of them, so let's drop
xinerama to keep things simple, clean and small. and to be modern.

the drop was done in three steps:
* first step was to replace all the xinerama-based code with the
  randr-based one and to replace or remove all the xinerama mentions;
* second step was to replace the xinerama's terminology with the
  randr's one. xinerama was referring only to the word "screen", while
  randr refers to multiple words and i think the word "monitor" is the
  most suitable for us and, hopefully, clear both to a contributor and
  to an end user;
* third step was to refactor the new randr-based code if needed and to
  address related todo's (mostly about moving related functions
  elsewhere).

all the steps were done well except addressing a leftover todo about
moving the win_update_monitor function to the x.c which wasn't done.

the xinerama-shadow-crop option was renamed to crop-shadow-to-monitor,
but it's previous name is still accepted, has effect and the
deprecation message is printed to preserve backwards-compatibility.
2023-01-29 10:51:12 +03:00
Yuxuan Shui
102a0bc5e0 backend: mask can be null in blur()
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2023-01-29 06:35:28 +00:00
Yuxuan Shui
364463feaf doc: list cases that trigger unredirect
unredir-if-possible doesn't just happen for fullscreen windows, be more
accurate.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2023-01-17 02:56:28 +00:00
Yuxuan Shui
1926b6d231 Merge pull request #994 from absolutelynothelix/ensure_glx_context_segfault 2023-01-13 16:55:41 +00:00
Yuxuan Shui
766f9f996f Merge pull request #986 from absolutelynothelix/fix-creating-eglpixmap
fixes https://github.com/yshui/picom/issues/981
2023-01-13 16:55:06 +00:00
Yuxuan Shui
7ac80f980d Merge pull request #992 from absolutelynothelix/xcb_request_check_memory_leaks 2023-01-13 16:52:22 +00:00
Yuxuan Shui
e18a42ebd0 Merge pull request #985 from absolutelynothelix/free-root-image-properly
fixes https://github.com/yshui/picom/issues/982
2023-01-13 16:51:41 +00:00
Yuxuan Shui
2f1e244cd5 Merge pull request #990 from absolutelynothelix/simplify-getting-egl-fbconfig 2023-01-13 16:51:09 +00:00
Yuxuan Shui
e20a02e67a Merge pull request #991 from absolutelynothelix/xcb_request_check_checked_functions 2023-01-12 11:01:34 +00:00
Maxim Solovyov
74ab307626 opengl: fix segfault in ensure_glx_context 2023-01-12 06:40:56 +03:00
Maxim Solovyov
0ecfd9fd32 backend: egl: fix creating eglpixmap
according to the specification of the EGL_KHR_image_pixmap extension,
if target is EGL_NATIVE_PIXMAP_KHR then ctx must be EGL_NO_CONTEXT,
otherwise, the EGL_BAD_PARAMETER error is generated. source:
https://registry.khronos.org/EGL/extensions/KHR/EGL_KHR_image_pixmap.txt

fixes #981
2023-01-11 13:36:18 +03:00
Maxim Solovyov
81f2bf4c07 picom: fix xcb_request_check memory leaks 2023-01-11 12:35:03 +03:00
Maxim Solovyov
ca64654256 use _checked functions with xcb_request_check 2023-01-10 00:15:49 +03:00
Maxim Solovyov
29342e7cea backend: egl: simplify getting a framebuffer configuration
we're using the first available framebuffer configuration that
meets our needs so there is no need to ask for more than one
2023-01-09 04:25:59 +03:00
Maxim Solovyov
91828be79d picom: free root image properly
fixes #982
2022-12-30 06:16:46 +03:00
Yuxuan Shui
60ac2b64db Merge pull request #983 from absolutelynothelix/next
fixes #867
2022-12-23 15:44:18 +00:00
Maxim Solovyov
cffc443bfd xrender: make corner-radius respect inactive-dim
for the new xrender backend it's enough to clip with a rounded rectangle after dimming, not before

partially fixes #867
2022-12-23 15:21:52 +03:00
Yuxuan Shui
99e1a74afa Merge pull request #980 from absolutelynothelix/next 2022-12-22 21:19:38 +00:00
Maxim Solovyov
32020ff659 xrender: fix leak in release_rounded_corner_cache
calling wrong free function did nothing and produced ton of x errors

fixes at least #892
2022-12-22 20:42:20 +03:00
Yuxuan Shui
5457d76de6 Merge pull request #979 from absolutelynothelix/next 2022-12-22 10:59:50 +00:00
Maxim Solovyov
dd9ffecd85 xrender: fix leak in deinit
and check should we actually free something

fixes at least #960
2022-12-22 02:08:04 +03:00
Yuxuan Shui
48d3a0b9d8 Merge pull request #978 from absolutelynothelix/next 2022-12-21 22:21:29 +00:00
Maxim Solovyov
70032b9282 xrender: fix leak in bind_pixmap 2022-12-22 00:20:43 +03:00
Yuxuan Shui
156b7c48de Merge pull request #977 from absolutelynothelix/next 2022-12-21 21:02:02 +00:00
Maxim Solovyov
df7b994d00 x: fix leak in x_create_picture_with_pictfmt_and_pixmap 2022-12-21 23:29:52 +03:00
Yuxuan Shui
fdecbb98f8 Merge pull request #969 from yshui/detect-dpms-off 2022-12-21 18:12:51 +00:00
Yuxuan Shui
37ecb4b496 core: detect screen off
Use the DPMS extension to detect if screen is turned off, and unredirect
if it is. This also helps working around the problem where OpenGL
buffers lose data when screen is turned off, causing screen to flicker
later when it turns back on if use-damage is enabled.

Unfortunately the DPMS extension doesn't define an event, so we have to
periodically poll the screen state.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-19 08:52:18 +00:00
Yuxuan Shui
c28462673e backend: xrender: fix using of invalid picture when vsync is disabled
Fixes #974

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-18 19:24:16 +00:00
Yuxuan Shui
1ea3276bd1 x: fix missing _checked
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-18 19:23:06 +00:00
Yuxuan Shui
17b34ce390 core: add set_cant_fail_cookie
Enables picom to abort when certain requests fail.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 14:30:58 +00:00
Yuxuan Shui
aca3fdcef7 core: expand X error handling
We used to have a list of X errors we should ignore in case they do
occur. This commit expands that functionality to also allow us aborting
on certain errors.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 14:23:55 +00:00
Yuxuan Shui
4ecb8093cf x: fix CI build failure
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 14:02:57 +00:00
Yuxuan Shui
3b342afa95 general: fix compiler warning about unused results
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 13:47:38 +00:00
Yuxuan Shui
5a5ea76006 event: restore event sequence number after passing it to Xlib handlers
We set event sequence number to the last sequence xlib knows about to
silence its complaint about missing sequence numbers, but we forgot to
restore it back afterwards.

This used to break error ignoring mechanism in `should_ignore`. In the
last commit we updated it to use full_sequence which incidently fixed
this problem. But let's restore the sequence number anyway for good
measure.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 13:37:58 +00:00
Yuxuan Shui
8b189bc5ec core: print error with full_sequence
ev->sequence was just the lower 16 bits of the sequence number.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 12:35:37 +00:00
Yuxuan Shui
23a29470e5 backend: xrender: set update region for PresentPixmap request
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 07:40:42 +00:00
Yuxuan Shui
e407c5c765 x: add x_{create,destroy}_region
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 07:37:27 +00:00
Yuxuan Shui
88608027b8 backend: add a comment
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-14 07:36:07 +00:00
Yuxuan Shui
4594168946 utils: add rolling_avg
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-13 14:35:26 +00:00
Yuxuan Shui
91e023971d utils: add rolling_max
For tracking rolling max of a stream of integers.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-13 14:35:20 +00:00
Yuxuan Shui
882025092f Merge pull request #952 from yshui/dither 2022-12-03 03:10:30 +00:00
Yuxuan Shui
0d2b14d0c3 man: fix typo
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-02 17:51:30 +00:00
Yuxuan Shui
236c8228b8 backend: gl: fix use-after-scope
'format' was pointing to an array with a shorter lifetime

suggested by @tryone144

Co-authored-by: Bernd Busse <bernd@busse-net.de>
2022-12-02 02:57:28 +00:00
Yuxuan Shui
8143c07de6 Update README.md
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-02 02:50:52 +00:00
Yuxuan Shui
d38b0ead7d backend: gl: try different back buffer formats
Prefer RGB formats first, because they use less memory; but fallback to
RGBA formats, as they are formats required by OpenGL.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2022-12-01 18:54:22 +00:00
Yuxuan Shui
7612a9d1d5 Merge pull request #951 from mighty9245/next 2022-12-01 18:14:49 +00:00
Maxim Solovyov
756757ee76 README: fix meson's warnings about setup commands
this fixes `WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.` warning while setting up the project
2022-12-01 20:55:57 +03:00