@flexiondotorg @clefebvre @raveit65 @posophe @willysr @obache
So, it's time to gradually move to GTK+3. GTK+2 isn't maintained too well both upstream and in distros. GTK+2 versions of libs we use in various parts of MATE (vte, gtksourceview, wnck...) aren't maintained at all, and some distro maintainers already plan to remove them (see here for example).
Let's start with mate-system-monitor. It's free from build and runtime dependencies on GTK+-related MATE packages, and GTK+3 build of it is already shipped in Mint and Fedora. So far I've seen a couple of reports about it, but I've managed to fix the issues in 1.12.1 (I hope so). Well, except for #41 which is actually a stupid bug in GTK+ 3.10 so it's not fixable at our level...
So, I think we can do it for 1.14 release.
Things to do in the code:
The last item means we first need to decide on minimum GTK+3 version to use. I vote for 3.14 as LMDE 2 (which is based on Debian Jessie) has only 3.14.
Please post your opinions on minimum GTK+3 version in regard to your distros.
Also distro maintainers will need to replace build/runtime deps on GTK+2 packages with their GTK+3 counterparts. For example, in Debian/Ubuntu/Mint it's as follows:
libgtk2.0-dev -> libgtk-3-dev
libgtkmm-2.4-dev -> libgtkmm-3.0-dev
libwnck-dev -> libwnck-3-dev
Next Slackware will use GTK+3-3.18.x so we are quite safe at least for the next 2-3 years :)
as the GTK+3 counterparts, they are already included in the GTK+3 branch
I'm ready to use gtk3, gtkmm3 and nwck3.
@obache: please also mention which minimum GTK+3 version is ok.
I have GTK3+ 3.16.7 now, newer than 3.14.
well, Rhel-7.2 is updated to gtk+-3.14, which is my min. version for all distros where i build packages.
drop all deprecated GTK+3 code.
drop all deprecated GTK+3 code.
I guess you mean replace ;)
Waiting for @posophe's comments 😄
@stefano-k Please comment on this. The only thing here I want clarification on is drop all GTK2 code because I always thought the plan was to retain GTK2 support, but I might be wrong about that.
Well that's one of key points. We get rid of old code and #ifdef hell, making it easier to maintain and easier to pick fixes from upstream.
I can give enough examples where gtk2 code prevent us to fix major isues. For example:
Eom --> port to libeas will fix broken python support with gtk3
Font-viewer --> port to sushi will fix broken display of many fonts.
Well, we need to move on...
Since @posophe didn't post a reply, I've decided to look at OpenSUSE's GTK+3 versions myself:
I'm pretty sure 13.1 is reaching EOL before we release MATE 1.14, so I guess we can safely assume that setting GTK+ 3.14 as minimum required GTK+3 version is alright for OpenSUSE.
Oops ! Sorry, I didn't see the post (was in my Spam folder for any weird reason). Just a precision : even if it would be great to support 13.2, neither me nor the other maintainer are able to provide a real support for this version of openSUSE.
Ok good then 😄
Ok guys, you can test it in #77 now 😄
I've just build it and will it later. The only thing is about a depreciated function i.e 'GtkStock'
Deprecated GtkStock we won't fix, because this will remove icons from buttons and menus.
Which is a general look and feel of Mate.
This will stay until it is removed from Gtk3.
Maybe it is possible to add this deprecated toolkit functions (and some others) to libmate-desktop?
That's why gnome3 looks so ugly.
next fedora release will come with gtk+-3.20 which has major changes for gtk3 apps, not only a complete breakage of themes.
And i don't know if i can ship mate applications build with gtk3 there, in this early development phase.
So, in worse case i need to change apps back to gtk2 which i have already switched to gtk3.
So, we want to leave the gtk2 code in for a while until i know how mate apps (gtk3) works with gtk+-3.20.
But default is now to build with gtk3.
Yes, so I'll have to revert the commit which removed GTK+2 code - just in case...
next Slackware will use 3.18 i guess since it's Beta already.
Ok, after a hard work i can say that our themes will work with GTK+-3.20,
so it's save to remove the gtk2 code which will make our work much more easier.