DEV Community

Gary Kramlich
Gary Kramlich

Posted on • Originally published at patreon.com

Why Pidgin 3 Skipped GTK 3

This article was originally posted on Patreon and has been brought over here to get all of the Pidgin Development/History posts into one single place.

Every once in a while people will ask when we're going to release a GTK3 version of Pidgin and they get very surprised when I say never! The simple reason for that is that we've already moved to GTK4.

When the Pidgin 3 branch was originally created eons ago, there wasn't a GTK3, so it was still all hand build GTK2 via C code. Somewhere around 2010 (I couldn't find an exact commit when this happened) we started porting the Pidgin 3 branch to GTK3, but it wasn't a clean port.

At the time not all distributions had GTK3 so we still needed to leave support for GTK2. As you may have guessed, this meant a lot of duplicated code was floating around and everything was still very GTK2 like. It wouldn't be until December of 2015 that we officially dropped GTK2 support from the Pidgin 3 branch.

So work continued migrating stuff to be more GTK3 like by using new widgets and more importantly using GtkBuilder ui files to build the interface. The primary reasoning for the ui files is that we're much more likely to find designers and user experience people that know GtkBuilder than ones that are fluent in C and know the GTK api.

In February of 2022 we started the port to GTK4. This time we were doing a full port to GTK4 only and completely removing GTK3. This decision was made because we knew we still had a lot of development left to do and we didn't want to release a new major version of Pidgin on a maintenance only toolkit.

It took a little under seven months, but in August of 2022 we merged the GTK4 branch into our development branch. Since then we've continued migrating more things to GtkBuilder as well as modernizing more of the user interface.

However we still have a bit of work to do as GTK 4.10 is deprecating GtkTreeView and GtkComboBox and there's a number of other things we need to handle in the user interface. But regardless we're in a much better spot now than if we had continued moving forward with GTK3.

I hope you're enjoying these posts! Remember they go live for patrons at 9AM CST on Mondays and go public at 12AM CST on Thursdays! If you'd like to support my work, you can join find a list of ways to do so here.

Top comments (0)