Commit graph

92 commits

Author SHA1 Message Date
tiosgz
24cc0719a4 Prefer wlr_scene as the source of truth
Use it for getting the surface under cursor, position of surfaces, etc.
2022-07-30 19:22:58 +00:00
tiosgz
d5940c396c Render using wlr_scene
Apart from removing a lot of code, this commit also introduces (thanks
to wlr_scene) fine-grained damage tracking.

The lack of our own rendering code will only be an issue if the need for
custom effects (such as blur) arises; however, that's very unlikely and
it would probably require a lot of changes anyway.
2022-07-30 19:22:58 +00:00
tiosgz
ca45867506 Keep an up-to-date wlr scene-graph
At the moment it isn't used at all and a lot of data is duplicated. This
is a temporary state introduced for nicer diff separation into several
commits.
2022-07-30 19:22:51 +00:00
tiosgz
c844262321 Introduce kiwmi_strata
With the migration to wlr_scene, some objects (desktop, output etc)
will no longer have any reason to care about individual shells and
similar; handling each one on its own would introduce code that is,
from their perspective, over-complicated.

Strata (sg. stratum; this name was chosen to avoid confusion with the
over-used 'layer') represent logical layers of surfaces on the desktop,
such as every layer shell layer, one for xdg shell, another for popups.
2022-07-30 19:06:25 +00:00
tiosgz
afb2c78a6e Remove API that relies on our rendering
This is a preparation for switching to the wlroots scene-graph. There is
no replacement planned for output:redraw() because it will no longer be
necessary (as far as i can tell), while scene-compatible replacements
for the view pre_render/post_render events are planned.
2022-07-30 19:06:25 +00:00
tiosgz
30f8469da0 input: map pointer to output if possible
This is needed in order for wlroots to interpret some values (mostly
coords of absolute input events) correctly. It for example fixes how the
pointer behaves with WLR_WL_OUTPUTS=2.

In order to also map the pointer/output pair when the pointer is created
before the output, a list of pointers has to be managed, which wasn't
needed until now.
2022-07-14 14:15:51 +00:00
tiosgz
aa9776f006 Partly revert "Only render mapped surfaces"
This reverts most of commit 520dd5ce02,
because it is now handled by wlroots.
The iterator -> callback renames have been kept in place.
2021-12-20 19:07:58 +00:00
tiosgz
b238994996 Catch up with wlroots 0.15 breaking changes 2021-12-20 19:07:56 +00:00
tiosgz
53684f0e79 Attempt to exit cleanly, without crash (#51) 2021-12-04 17:25:31 +00:00
tiosgz
6a1af5f1ae view_get_size: access view::geom directly 2021-10-09 17:33:59 +00:00
tiosgz
21062c0224 Update pointer focus more often
Until now, focusing a different view didn't move pointer focus to it,
even though it was under the cursor. The pointer had to move in order
to switch its focus. Similar situations should be handled after this
commit.
2021-09-05 10:51:58 +00:00
tiosgz
520dd5ce02 Only render mapped surfaces
This targets only surfaces under kiwmi_view, thus only XDG shell. Other
surfaces to be fixed later.

The new code here is copied over from wlroots, with only small
modifications.
2021-08-27 13:13:37 +00:00
tiosgz
2b4d6d205b Handle XDG popups and subsurfaces
This commit ensures that they also cause output damage to happen and
that popups are moved into the visible area.

I browsed the source code of Sway while writing this and took a lot of
inspiration and help from there.
2021-08-27 13:06:55 +00:00
1cb890c45e Move stuff into output_damage() function 2021-08-15 17:07:54 +00:00
4bf66b6df5 Redraw twice on damage (even more hacky) 2021-08-14 20:25:15 +00:00
64aad5b332 Damage on move and resize 2021-08-14 20:06:00 +00:00
cd5ce00f74 Add hacky lazy damage tracking implementation 2021-08-14 19:44:20 +00:00
c94804588e Add scoll event 2021-08-14 18:42:35 +00:00
tiosgz
feca54a974 kiwmi:bg_color() 2021-08-13 08:36:00 +00:00
tiosgz
a5e82d083c kiwmi_output:usable_area() and :on("usable_area_change") 2021-08-11 20:30:14 +00:00
4322717ba7 Merge pull request #31 from tiosgz/clipboard
Add clipboard (& other stuff) support
2021-08-02 20:44:19 +00:00
1cc4f52a77 Add request_active_output event 2021-08-01 21:58:07 +00:00
tiosgz
448f78c970 Add clipboard and clipboard management support 2021-08-01 16:01:57 +00:00
540f931d2d Add kiwmi:output_at, cursor:output_at_pos, use lx, ly more consistenty 2021-07-30 20:36:26 +00:00
tiosgz
67900b3e9f Avoid unnecessary layer arrangement
Plus restore alphabetical order
2021-06-19 10:20:35 +00:00
tiosgz
8df79486ef Fix incompatibilities with wlroots 0.13 2021-04-24 11:53:05 +00:00
34f5f1fc37 Differentiate between raw and translated keysyms 2020-08-27 20:48:15 +00:00
e713e91279 Fix lua5.1 compat (for luajit) 2020-07-30 21:34:34 +00:00
22a32e86a9 Add kiwmi:schedule 2020-02-08 15:08:37 +00:00
1d755a8a74 Add object lifetimes (invalidate references, free listeners) 2020-02-06 17:55:05 +00:00
32b9498d9c Allow layer-shell surfaces to change their layer 2020-01-28 17:13:53 +00:00
7883089834 Make positions integers 2020-01-26 19:28:00 +00:00
a2cd2f596a Add renderer 2020-01-26 19:18:52 +00:00
39a77fadaa Only calculate output coords once per render 2020-01-22 23:16:09 +00:00
05bc4aada7 Add view:csd 2020-01-21 19:48:50 +00:00
e2ba6622f7 Add imove and iresize events, and view:imove, view:iresize 2020-01-20 23:21:17 +00:00
22f12dc506 Add view:title, view:app_id, view:pid 2020-01-19 23:36:12 +00:00
c1972bfefc Respect layers for cursor motion 2020-01-19 19:45:13 +00:00
678b4ce549 Fix geometry 2020-01-19 18:10:18 +00:00
96484a75f8 Focus layer-shell 2020-01-18 19:38:47 +00:00
c0b0418af8 Move seat into extra file 2020-01-18 15:56:12 +00:00
b909262f5a Add interactive move and rudamentary resize 2020-01-17 19:51:56 +00:00
598731af12 Add keboard:on_destroy 2020-01-15 22:48:15 +00:00
352e91258b Fix memleaks 2020-01-15 20:52:26 +00:00
a5653d357a Start layer-shell 2020-01-15 20:30:37 +00:00
6fb13b2871 Add view:size 2020-01-08 22:26:17 +00:00
8781f19de7 Add output:on_resize, fix missing output:on 2020-01-08 21:46:36 +00:00
5dc2c62d89 Add equality for Lua types 2020-01-08 17:33:01 +00:00
838aaf2daf Make view:tiled user configurable 2020-01-08 17:24:13 +00:00
783e982206 Rename view_resize to view_set_size 2020-01-08 16:39:20 +00:00