Skip to content

Fix introspection for GdkEventTouchpadPinch and GdkEventTouchpadSwipe.

Ghost User requested to merge (removed):phase-field into gtk-3-22

When using type annotations, the ABI of type being annotated and a new type introduced from annotation should match.

In case of enumerations, the most common ABI, and probably the only one currently used in practice with gtk, corresponds to -fno-short-enums compiler option. It uses int as the underlying type of enum, bumping it up to unsigned int, long int or unsigned long int, in that order, when necessary.

Thus, when annotating a field of integer type with an enum type, it is never correct to annotate field smaller than int, because it changes the ABI from perspective on introspection.

The gint8 phase field in GdkEventTouchpadSwipe and GdkEventTouchpadPinch structures have been previously annotated in such a way, and this change removes this annotation to restore ABI compatibility.

Size of structures before (which does not match C):

>>> Gdk.EventTouchpadPinch.__info__.get_size()
104
>>> Gdk.EventTouchpadSwipe.__info__.get_size()
88

Size of structures after (which does match C):

>>> Gdk.EventTouchpadPinch.__info__.get_size()
96
>>> Gdk.EventTouchpadSwipe.__info__.get_size()
80

Fixes issue #57 (closed).

Merge request reports