wayland: Add global object depedency tracking

Some features need certain globals to initialize. In order to deal with
these dependencies, add a way to postpone closures that depend on a
certain set of globals, that later will be invoked when required
globals are all received.

https://bugzilla.gnome.org/show_bug.cgi?id=719819
This commit is contained in:
Jonas Ådahl
2015-05-18 14:55:08 +08:00
parent 181e4399f6
commit 4e9be39518
2 changed files with 149 additions and 5 deletions

View File

@ -74,6 +74,13 @@ struct _GdkWaylandDisplay
GList *async_roundtrips;
/* Keep track of the ID's of the known globals and their corresponding
* names. This way we can check whether an interface is known, and
* remove globals given its ID. This table is not expected to be very
* large, meaning the lookup by interface name time is insignificant. */
GHashTable *known_globals;
GList *on_has_globals_closures;
struct wl_cursor_theme *scaled_cursor_themes[GDK_WAYLAND_THEME_SCALES_COUNT];
gchar *cursor_theme_name;
int cursor_theme_size;