On 09/26/2011 09:15 AM, Jiří Techet wrote:


In general it would be best just to try to substitute GTK version in
configure, see what happens and start fixing the errors. I'm really
tempted to try it myself but I'm not sure if I'll have enough time for
that in the following few months. Also for changes like that it would
be better to have git in place for easier merges once the work is
done.

My personal feeling is that the sooner some support for GTK 3 is
added, the better. Of course first, until it is stable and working as
expected, it could be an experimental configure option which ordinary
mortals would be discouraged to use. Meanwhile thanks to the ifdefs
the old GTK 2 code should work as before. And maybe the conversion
will be quite easy - it's just you never know unless you try it, so
it's better to try it to know :-).


I did start a little bit with this in my geany repository.

Some observations:

1) Need to get rid of direct access of struct members[1].

2) Geany should support at minimum GTK+ 2.18 so that we can use gtk_widget_get_allocation() if we want to (cleanly) pass GSEAL_ENABLE builds. This actually wouldn't be needed strictly for GTK+ 3 since I think the old size allocation stuff is entirely gone.

3) The GeanyWrapLabel, I'm fairly sure can be #if'd out entirely for GTK+ 3.

4) The gdkkeysyms.h thing is easily solved by adding a #if to include gdkkeysyms-compat.h when using GTK+ 3.0.

5) Need to upgrade to Scintilla 2.29[2] since it supports GTK+ 3.0 (IIRC it still supports down to GTK+ 2.8 as well).

6) As you said, the configure.ac would need and option to enable this, to switch the package checks for gtk+-3.0 as well as another place where it collects the version of gtk+-2.0 using pkg-config.

7) Probably lots of other stuff I haven't discovered yet, since I haven't actually got Geany to build with GTK+ 3 yet.

In my opinion, I don't think it would *too* difficult to support GTK+ 2.1x all the way through 3.x at the same time.

[1] https://github.com/codebrainz/geany/commit/d2ba07b5ae9153f937adcb00337a66a309b66d67 [2] https://github.com/codebrainz/geany/commit/35e21eb65d4559685461007e1f39a75ef2c32178

Cheers,
Matthew Brush
_______________________________________________
Geany-devel mailing list
Geany-devel@uvena.de
https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel

Reply via email to