What needs to be done?
GTK3 Backport Branch: https://gitlab.com/firox263/inkscape/-/tree/gtk4-prep-events GTK4 Transition Branch: https://gitlab.com/firox263/inkscape/-/tree/gtk4
- Replace all direct uses of GdkEvent
- Try move to event controllers where possible (not easy because GtkGestureClick doesn’t exist in GTK 3, which is basically all uses in Inkscape)
- Stop using generic containers (should be fine, only toolbars which currently use it)
- There are no deprecated structures in Inkscape!
- Well, almost…
- Need to migrate away from a few properties like use-stock
- Adapt to GdkEvent name/type changes
- It is no longer a union, so changes needed
- Adapt to libsigc++ changes
- Seems to be ridiculously more verbose for some uses
- How to keep static type parameters while keeping it readable?
- Adapt to drag and drop changes
- New API is much more sanely designed
- How much does Inkscape use drag and drop?
- Probably move from GtkEventControllerLegacy to the relevant event controllers like GtkGestureClick and what not
- Touch support for free!
- Move from deprecated GtkTreeView and friends to new fancy list widgets
- Enable OpenGL canvas drawing and/or use GtkSnapshot