With the release of Xojo 2017 Release 2 we have updated our Linux Desktop framework to use GTK+ 3 instead of GTK+ 2. For those not familiar with Linux, GTK+ is a User Interface (i.e. UI) toolkit, much like Cocoa is for macOS and Win32 controls (or WinForms.NET or WPF) is for Windows. GTK+ 2 has been supplying the user interface for Xojo Desktop apps for Linux since we first targeted Linux over a decade ago. It has since been deprecated in favor of GTK+ 3 for quite some time now and GTK+ 2 is typically not installed by default on most Linux distros these days, which makes deploying Xojo Desktop apps on Linux more painful. Unfortunately GTK+ 3 is not ABI compatible with GTK+ 2 so we could not migrate to using GTK+ 3 without completely ditching GTK+ 2.
Let’s take a closer look at what this means for your Linux apps:
Target | 2017r1.1 (and prior) requirements | 2017r2 requirements |
---|---|---|
Linux console/web apps | Ubuntu 10.04, CentOS 6.0, etc. | No change |
Linux (x86, x86-64) Desktop apps | Ubuntu 10.04, CentOS 6.0, etc.
|
Ubuntu 12.04, CentOS 7.0, etc.
|
Linux Pi (ARM) Desktop apps | Raspian Wheezy
|
Raspian Wheezy (no change)
|
Besides the benefit of not having to tell your end users to install GTK+ 2 on their particular Linux distro, here are some other notable items affected by the GTK+ 3 transition:
Feature | GTK+ 2 | GTK+ 3 |
---|---|---|
HiDPI |
|
|
Controls |
|
|
TextField |
|
|
While there’s a short list of actual differences, there have been numerous changes underneath made during this transition. For example, features that we had to custom code because GTK+ 2 did not offer them but GTK+ 3 did. Updating to GTK+ 3 is the final piece to our cross-platform HiDPI support for Desktop apps. Until the day comes when we have to say goodbye to GTK+ 3 (GTK+ 4 is already in the works), we welcome its inclusion in Xojo with a long overdue “Hello”!