mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Currently, the Linux embedder does not handle window exposure events. This is typically not a problem for users who use compositing window managers, since they keep the display buffers even if the window is completely covered. However, for users that don't use a compositor, the window will not be redrawn by the engine if it was previously covered until another event triggers the redraw. This patch implements the GtkWidget draw callback to handle window exposure events. The callback doesn't actually draw anything, it just schedule a frame for drawing by the engine. The engine doesn't support exposure events, so instead, we force redraw by sending a window metrics event of the same geometry. Since the geometry didn't change, only a frame will be scheduled.