forked from AuroraMiddleware/gtk
2cbe094b91
GdkContentFormatsBuilder is currently not introspectable, as it does not have a GType. We can turn it into a boxed type, but we need to implement memory management for it. The current gdk_content_formats_builder_free() function returns a newly constructed value, so we cannot use it as a GBoxedFreeFunc; additionally copying a GdkContentFormatsBuilder contents would make it a bit odd, as you could get multiple identical GdkContentFormats out of the copies. A simple approach is to model the GdkContentFormatsBuilder API to follow the GBytes one: use reference counting for memory management, and have a function to release a reference, return a GdkContentFormats, and reset the GdkContentFormatsBuilder state. For language bindings, we can provide a get_formats() function that returns the GdkContentFormats instance and resets the builder instance, leaving the reference count untouched. For C convenience we can keep gdk_content_formats_builder_free(), and make it a wrapper around gdk_content_formats_builder_get_formats(), with the guarantee that it'll free the builder instance regardless of its current reference count. https://bugzilla.gnome.org/show_bug.cgi?id=793097 https://blogs.gnome.org/otte/2018/02/03/builders/ |
||
---|---|---|
.. | ||
protocol | ||
gdkapplaunchcontext-wayland.c | ||
gdkclipboard-wayland.c | ||
gdkclipboard-wayland.h | ||
gdkcursor-wayland.c | ||
gdkdevice-wayland.c | ||
gdkdisplay-wayland.c | ||
gdkdisplay-wayland.h | ||
gdkdnd-wayland.c | ||
gdkeventsource.c | ||
gdkglcontext-wayland.c | ||
gdkglcontext-wayland.h | ||
gdkkeys-wayland.c | ||
gdkmonitor-wayland.c | ||
gdkmonitor-wayland.h | ||
gdkprimary-wayland.c | ||
gdkprimary-wayland.h | ||
gdkprivate-wayland.h | ||
gdkseat-wayland.h | ||
gdkselection-wayland.c | ||
gdkvulkancontext-wayland.c | ||
gdkvulkancontext-wayland.h | ||
gdkwayland.h | ||
gdkwaylanddevice.h | ||
gdkwaylanddisplay.h | ||
gdkwaylandglcontext.h | ||
gdkwaylandmonitor.h | ||
gdkwaylandwindow.h | ||
gdkwindow-wayland.c | ||
genprotocolfiles.py | ||
meson.build | ||
wm-button-layout-translation.c | ||
wm-button-layout-translation.h |