overlay: add snap-to-edge overlay (PR #1652)

...and unify region overlay and snap-to-edge overlay into overlay.c.

Snap-to-edge overlay is delayed for 500ms to prevent flickering when
the view is dragged from an output to another (demo in discussion labwc#1613).

This also fixes a bug that region overlay is not shown when a modifier
key is re-pressed.
This commit is contained in:
Hiroaki Yamamoto 2024-04-05 11:35:31 +09:00 committed by GitHub
parent 67669dcf1e
commit 5cc0757390
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 361 additions and 152 deletions

View file

@ -136,10 +136,10 @@ get_special(struct server *server, struct wlr_scene_node *node)
if (node == &server->seat.drag.icons->node) {
return "seat->drag.icons";
}
if (server->seat.region_overlay.tree
&& node == &server->seat.region_overlay.tree->node) {
if (server->seat.overlay.tree
&& node == &server->seat.overlay.tree->node) {
/* Created on-demand */
return "seat->region_overlay";
return "seat->overlay";
}
if (server->seat.input_method_relay->popup_tree
&& node == &server->seat.input_method_relay->popup_tree->node) {