GTK3: Use accessor functions instead of direct access

GTK+ 3 removes many implementation details and struct members from its public headers.

Quote:
While it may be painful to convert, this helps us keep API and ABI compatibility when we change internal interfaces.

See https://developer.gnome.org/gtk3/3.9/gtk-migrating-2-to-3.html#id-1.6.3.3.5