Horrible GTK3 / GNOME UI design is leaking into Ubuntu Mate applications in 20.04

See this thread, there is a GTK fork in the making.

https://forum.xfce.org/viewtopic.php?id=14023

This became necessary to save MATE, Xfce, LXDE and other traditional desktops when GTK4 arrives.

https://forum.xfce.org/viewtopic.php?pid=58384#p58384

From https://developer.gnome.org/gtk4/3.98/ch32s02.html:

First, menus are going to be eliminated and replaced with popovers:

The GTK developers wrote:

These widgets were heavily relying on X11-centric concepts such as override-redirect windows and grabs, and were hard to adjust to other windowing systems.

Menus can already be replaced using GtkPopoverMenu in GTK 3. Additionally, GTK 4 introduces GtkPopoverMenuBar to replace menubars. These new widgets can only be constructed from menu models, so the porting effort involves switching to menu models and actions.

"X11-centric concepts." Oh yeah. Like no other windowing system has ever supported menus. Reality check: Wrong! Practically every windowing system on the planet has menu support, even ancient Mac OS and the Apple Lisa. Even Wayland, which is supposed to be relatively bloat-free, has support for the window types required to draw menus.

Next, and possibly even worse, toolbars are going to be removed:

The GTK developers wrote:

Toolbars were using outdated concepts such as requiring special toolitem widgets. Toolbars should be replaced by using a GtkBox with regular widgets instead and the "toolbar" style class.

I don't care if there's a "toolbar" style class -- based on the GNOME-style user interfaces these days, I'd have to imagine even the style class is going eventually.

Somebody even decided to remove GtkContainer and GtkBin . They didn't even give a reason for that one:

The GTK developers wrote:

The abstract base class GtkContainer for general containers has been removed. The former subclasses are now derived directly from GtkWidget, and have class-specific add() and remove() functions.

Isn't the whole reason for object-oriented programming to avoid re-inventing the wheel? I mean, come on. Now all former container widgets must implement all that code that used to be implemented in GtkContainer.

There are even more examples of annoying little things they've done in that article I linked to. I just don't have time to rattle them all off.

6 Likes