};
void overlay_reconfigure(struct seat *seat);
+
/* Calls overlay_hide() internally if there's no overlay to show */
void overlay_update(struct seat *seat);
+
/* This function must be called when server->grabbed_view is destroyed */
void overlay_hide(struct seat *seat);
+/* This function is called to clean up the timer on exit */
+void overlay_finish(struct seat *seat);
+
#endif
&server->scene->tree);
}
}
+
+void
+overlay_finish(struct seat *seat)
+{
+ if (seat->overlay.timer) {
+ wl_event_source_remove(seat->overlay.timer);
+ seat->overlay.timer = NULL;
+ }
+}
wl_event_source_remove(seat->workspace_osd_timer);
seat->workspace_osd_timer = NULL;
}
+ overlay_finish(seat);
input_handlers_finish(seat);
input_method_relay_finish(seat->input_method_relay);