In the third part of my recap of the GNOME 3.12 development cycle, I’ll talk about some of the changes in GTK+ that I have been involved in.
Popovers have already been discussed quite a bit. Most of the popover implementation has been done by Carlos Garnacho, generalizing his earlier work on touch selection popups that has been in GTK+ since 3.8.
One of the nice things about popovers is that they are just normal containers – you can put any widget into them, and keyboard navigation and input works like everywhere else. This is a marked contrast to menus, which are very specialized. Attempts to put entries, sliders or buttons into menus usually end badly.
I recently acquired a laptop with a touchscreen, so I can say with confidence that popovers are also much easier to use with touch than menus.
Here are some examples of popovers in gedit:
My own contribution to popovers has been to convert GtkVolumeButton to use a popover:
I also made it possible to populate popovers from a GMenuModel, giving you instant popover menus:
Popovers are still very new, so their adoption in GNOME 3.12 will be somewhat limited. But we are in the lucky position that we already have quite good design guidance for popovers, so this will probably change soon.