summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/surface.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/common/surface.c b/src/common/surface.c
index 683bbaa..1dc30d1 100644
--- a/src/common/surface.c
+++ b/src/common/surface.c
@@ -814,8 +814,12 @@ static bool convert_event(const struct yasl_private_event *p, yasl_event *e)
return p->surface && window_event(p->surface, p->surface->reported_size,
p->surface->reported_scale_120, p->state.flags, e);
case YASL_PRIVATE_EVENT_WINDOW_RESIZE:
- return p->surface && window_event(p->surface, p->resize.geometry.size,
- p->resize.geometry.scale_120, p->surface->reported_state, e);
+ /* The current geometry, not the queued one: resizes made while the
+ * application was away, as during a macOS live resize, fold into one
+ * event, and an application that applied yasl_surface_get_info in its
+ * refresh callback never steps back through older sizes. */
+ return p->surface && window_event(p->surface, p->surface->size, p->surface->scale_120,
+ p->surface->reported_state, e);
case YASL_PRIVATE_EVENT_KEY:
e->type = YASL_EVENT_KEY;
e->action = (unsigned)p->key.action;