Earlier this month GTK+ 3.16 development code gained native OpenGL support. This GTK+ OpenGL support involved adding support for wrapping an OpenGL context for native windows with GLX on X11 and EGL on Wayland to use OpenGL to paint everything. A GtkGLArea widget was also added for providing OpenGL drawing access within GTK+ applications. The GtkGLArea has already seen some more improvements to better GTK's OpenGL support.
Matthias Clasen did some weekend hacking to allow GtkInspector to work across different display connections, e.g. debugging a GTK application running in Wayland while GtkInspector is running under X11 or the HTML5 Broadway back-end.
Clasen managed with his weekend hack to get things working with GTK3 demo running under X11 while the GtkInspector was running with the HTML5 Broadway back-end inside Firefox. While GtkInspector isn't used by many, this is an interesting feat on a technical level and is likely the first implementation of a GTK+ application using multiple GDK back-ends simultaneously.
I’ve been working on making GtkInspector use a different display connection. This helps isolating it from some of the changes you can trigger from inside the inspector UI. Then I thought, why not use a different backend ?!
We did enough work on GDK backend separation that it could almost work. But since we didn’t add API to actually connect to specific backends (users and applications get some control with GDK_BACKEND and gdk_set_allowed_backends()), nobody has ever used multiple backends in the same process. And things that don’t get used don’t work. So some fixes were necessary.
I’ve recently been working on OpenGL support in Gtk+, and last week it landed in master. However, the demos we have are pretty lame and are not very good to show off or even test the OpenGL support. I’ve looked around for some open source demos that used modern GL that we could use, but I didn’t find anything that we could easily use.
What I did find though, was a lot of WebGL demos that used three.js. This looked like a very nice open source library for highlevel 3d rendering. At first I had some plans to bind OpenGL to gjs so that we could run three.js, but this turned out to be a hard.
Instead I started converting three.js into C + GObject, using the Gtk+ OpenGL support and the vector/matrix library graphene that Emmanuele has been working on recently.
The GNOME flavor of Ubuntu is a newer one, although the devs have already made a few releases. It uses the stock GNOME stack and it’s had great success until now, despite the fact that it doesn't pack the latest version of the desktop environment. The developer has explained more than once why that is happening, but the good news is that people will be able to install GNOME 3.14 packages nonetheless.
The Ubuntu GNOME developers have more features to show than the Ubuntu base used, but that was to be expected, especially after the GNOME stack has been updated from the 3.10 branch to 3.12.
GTK+ apps now run not only on X11 and Wayland under Linux with native support but the mainline GTK+ Git code now also supports running Ubuntu's Mir Display Server. That's right, there's now mainline Mir support in GTK for the GNOME/GTK 3.16 release.
Beyond many GTK+ 3.16 improvements that already landed, Canonical's Robert Ancell has been leading work on mainlining the GTK+ Mir support capabilities. As of yesterday in Git, that work is now in Git for GTK+ 3.16 and all of the GTK+ 3.15.x development releases ahead.
We’ve had long-standing feature requests to turn scrollbars into overlayed indicators, for touch systems. An implementation of this idea has been merged now. We show traditional scrollbars when a mouse is detected, otherwise we fade in narrow, translucent indicators. The indicators are rendered on top of the content and don’t take up extra space. When you move the pointer over the indicator, it turns into a full-width scrollbar that can be used as such.
Even after settling on a Linux distribution to use, you still have to decide on a desktop environment. There are tons to choose from, and last week we asked you for your favorites. Then we looked at the five best Linux desktop environments. Now we're back to highlight your favorite, 11,000 votes later.
In an application that already use GAction and a normal GMenu for everything is quite easy.
But Nautilus is not using GAction neither GMenu for its menus. Not only that, Nautilus use GtkUIManager for managing the menus and GtkActions. And not only that, Nautilus merge parts of menus along all the code.