GTK5 wish list

From Inkscape Wiki
Jump to navigation Jump to search

A page to track what we would like in GTK5.

Gio::Actions

Gio::Actions are very useful but there are some things that would make them more useful:

  • The ability to include a description of what the action does. For GUI based use of actions, this could be used as a tooltip. We use the same action in a variety of ways that require this information (command palette, buttons, menu items). We have an ugly work-around to ensure that the same description is used everywhere.
  • More widgets that use actions. For example, there is no reason that a spinbutton couldn't be tied to an integer or double action.
  • Better coordination between Gio::Actions and Gio::SimpleAction. We are constantly having to cast actions to simple actions:
    • One can determine if an action is enabled or not but one can only set an action to be enabled or disabled using a simple action.
    • Looking up an action from an action map returns an action which then must be cast to a simple action.

Gio::Menu and Gio::MenuModel

  • These classes allow arbitrary attributes but only a limited set get copied over to a Gtk menu. In particular, it would be useful to be able to set a CSS class.
  • The ability to change the "Label" associated with an action. We have in the past include a description of what will be done/redone with our Undo/Redo menu items. One can still do this by replacing the Gio::Menu item associated with the action but it is difficult to keep it properly in sync across multiple window (which may have actions tied to different maps as in the case of windows containing different documents).

Widget Sharing

  • Currently the only widgets are those inside Gtk and those inside Inkscape. Creating a community space inside Gtk5 for more experimental, or more focused widget sets would be very useful. Especially if the core Gtk widget set is being simplified further. Large project like Inkscape and Gimp could then share their more complicated widgets, and Gnome's other projects had optional extensions to the vanilla set of widgets. This would probably require a bit of infrastructure and not so much a Gtk code request.