Commit Graph

8 Commits

Author SHA1 Message Date
Yuxuan Shui 6e962470b0
animation: add saved-image-blend
Allow animation to blend in saved window image before it was refresh.
Window images are refreshed when, for example, the window's size
changed. With this, animations can blend the window before and after the
size change to have a smoother transition.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-08-12 05:39:54 +01:00
Yuxuan Shui cdf25b07dc
wm/win: separate per-window options into their own struct
It's easier to just store them together, since the same group of
information is needed for parsed window rules, and for window rendering.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-08-03 04:34:55 +01:00
Yuxuan Shui 518f63b920
core: replace window table and window stack with wm_tree
Because wm_tree tracks the entire window tree, it's able to replace
several old data structures we used to track windows: the window hash
table, the window stack, and the subwin table. So we got rid of those,
and fully switched to wm_tree.

Fixes window rules for window managers that don't put client window
directly under toplevel windows. This includes, according to people's
reports, at least i3 and KDE.

Fixed a couple small bugs:

* dbus was returning window ID as a boolean.
* window frame extents not cleared after its client window disappears.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-06-21 08:42:49 +01:00
Yuxuan Shui bd26302f07
backend: embed backend_operations table in backend_base
The idea is to allow backend plugins to override backend functions by
modifying this table. Right now, when they do this they are actually
changing a global variable and their change will persist after backend
resets (!). Store the table inside backend_base solves this problem.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-05-25 11:08:52 +01:00
Yuxuan Shui bbde4bb1ab
api: introduce the concept of backend specific plugins
Allow loaded plugins to hook into specific backends.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-05-25 11:08:49 +01:00
Yuxuan Shui 21fe5983e0
backend: add `version` for querying the backend's version
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-05-25 11:08:46 +01:00
Yuxuan Shui 5c1b0ba7a1
backend: turn max_buffer_age into a function
We want to change the backend interface as little as possible once we
release it as a public interface, so while we still can, we should try
to give it maximum flexibility.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-05-25 11:08:44 +01:00
Yuxuan Shui f5bebb3e2e
plugin: add picom API headers
And add a pkgconfig file so they can be found.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-05-25 11:08:43 +01:00