summaryrefslogtreecommitdiff
path: root/src/common/backend.h
diff options
context:
space:
mode:
authorBerke Güzel <wenekar1@gmail.com>2026-10-16 13:26:20 +0300
committerBerke Güzel <wenekar1@gmail.com>2026-10-16 13:26:20 +0300
commit6f017eb4c18ea53cbc2782df10e078f5b939e87c (patch)
tree412b145bf1c9adac770a94e5aba2cd34baf3d742 /src/common/backend.h
parent12d2735115528d741ebf47b6738c88b7c182b85b (diff)
End every drag with one eventone-loop
A drag that dropped on no YASL surface, such as one dropped on the desktop or canceled, ended unheard: the public drag start set no end listener. An application then waited for the drag's end forever. The public layer now listens for the end. When no surface got the drop, the origin gets DRAG with the new action YASL_DROP_CANCEL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'src/common/backend.h')
-rw-r--r--src/common/backend.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/common/backend.h b/src/common/backend.h
index a9076e4..6d0388c 100644
--- a/src/common/backend.h
+++ b/src/common/backend.h
@@ -30,6 +30,8 @@ struct yasl_private_display {
struct yasl_surface *surfaces;
/* Set by the backend: a lost connection comes back (Wayland). */
bool reconnects;
+ /* The drag in progress dropped on one of the display's surfaces. */
+ bool drag_dropped;
/* Set by the public layer, or NULL. pending: an event is ready that the
* queue does not hold, such as an owed REFRESH. deliver: hand queued events
* to the application during the loop step. */