diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/surface.c | 8 |
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; |
