Hi all,
To follow up our recent discussions about building against an external copy of libgdl (https://launchpad.net/bugs/792115)...
I have played with the code, and here is a summary of my findings:
The Inkscape fork of GDL is branched from gdl-0.7.7, which was released a loooong time ago. There have been very substantial upstream changes/bug-fixes since then. In particular, our version uses lots of deprecated/obsolete GTK calls, meaning that Inkscape will fail to build against GTK 3. We therefore need to fix this issue fairly quickly.
Our fork of GDL introduces a couple of new features. Here are the main ones I can see: * Focus switching between docked dialogs, with tab/arrow-key bindings * Ability to create a docked dialog using a pixbuf icon.
I have forwarded a patch upstream to GDL (https://bugzilla.gnome.org/show_bug.cgi?id=652248) asking if they would be able to merge any of our changes. The upstream developer was very supportive and helpful, and had a few queries. However, I'm not an expert on GDL/GTK and I'm not in the best position to comment.
I see three options for fixing the problem: 1) Build against external GDL right away --- This should be easy to do, but we'd lose our changes for a while. However, I'm not sure any of the changes represent essential Inkscape design features and we'd be able to reimplement them when they appear in the upstream API.
2) Merge our changes into upstream GDL 2.30 and copy this into the Inkscape code --- This will take a bit of fiddling around, and it still relies upon us working with forked code. I have managed to make a branch of inkscape with gdl-2.3.0+changes that compiles and runs, but it is buggy (no colour switching and some graphics glitches). Unfortunately, my GTK knowledge is not good enough for me to do this by myself. If anyone is able & willing to help, I can push the new branch.
3) Don't fix it yet! --- Wait until upstream have implemented all the changes (in GDL >=3.1.1) and then switch over. However, we have no guarantee of how long this will take, and we will be unable to support GDK+ 3 builds until we switch!
Please let me know what you think!
AV