Commit graph

48 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
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
6a1af5f1ae view_get_size: access view::geom directly 2021-10-09 17:33:59 +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
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
1cc4f52a77 Add request_active_output event 2021-08-01 21:58:07 +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
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
b909262f5a Add interactive move and rudamentary resize 2020-01-17 19:51:56 +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
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
09bc31eaf1 Add view:tiled 2020-01-07 15:10:51 +00:00
aa046f8f02 Add output interface 2020-01-06 18:25:46 +00:00
a0bae4f8b5 Add view:pos and view:resize 2020-01-04 23:54:55 +00:00
cbe587b8c2 Add view destroy event 2020-01-02 23:39:15 +00:00
236c76df0e Add view event to kiwmi_server 2020-01-01 18:13:24 +00:00
460ec217dd Add hidden, hide and show to views 2020-01-01 18:10:42 +00:00
Tadeo Kondrak
849cda7021 Rename focus_view to view_focus
For consistency with the other functions.
2019-12-30 22:24:58 -07:00
9f9370e949 Add view_close 2019-12-30 23:23:35 +00:00
06debf11db Add basic cursor handling (including focusing clients) 2019-12-26 20:55:10 +00:00
2f4c865afc Move view creation code into view_create 2019-12-24 17:09:16 +00:00
9ca0d87a32 Add auto focus for views and basic keyboard handling 2019-12-24 15:43:36 +00:00
cce0d0ba15 Support xdg-shell and add basic rendering 2019-12-21 14:10:50 +00:00
f81cfc1725 Move headers 2019-10-16 18:51:18 +02:00