I'm using the 2nd way, by using the following function in Python
for every combobox. It's not perfect (and only a workaround and not
a real solution), but as long as the GTK+-developers don't care,
that's all I can do.
"""Workaround for comboboxes for touchscreens.
Comboboxes (and menus) do not work with touchscreens, due to a bug in
GTK+3, bugnumber #33470.
There are usually 2 ways to select a combobox-entry:
1. press + move + release
This works with touchscreens in GTK+2 and partly in GTK+3 3.4, but not
in e.g. GTK+3 3.20: Press + move does not move the selection, but tries
to scroll the combobox-popup.
2. click -> popup, click -> select/popdown
This does not work on touchscreens, since (a) some touchscreens send
MotionNotify-events with 0 pixels movement after the press and (b)
GTK+ closes the combobox-popup if a MotionNotify-event occurred
during the click.
So, this workaround stacks a transparent button above the combobox, and
opens the combobox-popup on button-click.
container = widget.get_parent()
left = container.child_get_property(widget, "left-attach")
top = container.child_get_property(widget, "top-attach")
button = Gtk.Button()
button.connect("clicked", lambda w, _=None: widget.popup())
container.attach(button, left, top, 1, 1)
container.attach(widget, left, top, 1, 1)