Discussion:
[Geany-Users] [Geany-Plugins] Please consider adding GTK3 support for your plugin(s)
(too old to reply)
Colomban Wendling
2013-03-18 14:02:12 UTC
Permalink
Hi dear plugins developers,

Now Geany and Geany-Plugins 1.23 are out, I merged support for GTK3 in
Geany, and added initial support for building Geany-Plugins against a
GTK3 build of Geany.

As you might know, GTK3 has some incompatibilities with GTK2, and GTK3
code often requires some adjustments to work with GTK3. Since it is not
possible to load both GTK2 and GTK3 in the same program, a GTK3 build of
Geany requires plugins also built against GTK3.

So, I'd like to ask you to consider adjusting your plugins so they build
with GTK3 too. Note that *we don't mean to remove GTK2 support*, so
adjusting your plugin should make it work with *both* GTK2 and GTK3.

The plugins that currently don't build against GTK3 are:

* Addons
* Debugger
* DevHelp
* GeanyDoc
* GeanyInsertNum
* GeanyLaTeX
* GeanyLipsum
* GeanyLua
* GeanyMacro
* GeanyMiniScript
* GeanyNumberedBookmarks
* GeanyPrj
* GeanyVC
* GProject
* Markdown
* MultiTerm
* Pretty Printer
* Scope
* Spellcheck
* TreeBrowser

There are also some plugins that do build against GTK3, but that may
require adjustments to render perfectly[1]:

* CodeNav
* GeanyExtraSel
* GeanySendmail
* GeanyPG
* GeniusPaste
* ShiftColumn
* Tableconvert
* Updatechecker
* XMLSnippets


If you need any assistance to add GTK3 support for your plugin or have
any question about it, feel free to contact me.


Regards,
Colomban


[1] GTK3 behaves a little differently than GTK2 on some matters,
particularly with some widget packing. It is however totally possible
(and not hard) to get packing rules that work exactly the same on both
GTK2 and GTK3.
Colomban Wendling
2013-03-18 16:12:00 UTC
Permalink
Post by Colomban Wendling
Hi dear plugins developers,
Now Geany and Geany-Plugins 1.23 are out, I merged support for GTK3 in
Geany, and added initial support for building Geany-Plugins against a
GTK3 build of Geany.
As you might know, GTK3 has some incompatibilities with GTK2, and GTK3
code often requires some adjustments to work with GTK3. Since it is not
possible to load both GTK2 and GTK3 in the same program, a GTK3 build of
Geany requires plugins also built against GTK3.
So, I'd like to ask you to consider adjusting your plugins so they build
with GTK3 too. Note that *we don't mean to remove GTK2 support*, so
adjusting your plugin should make it work with *both* GTK2 and GTK3.
[...]
I forgot to mention that Geany now have a header called gtkcompat.h that
gets included by geanyplugin.h which gives some GTK2/3 compatibility.
This means you don't have to do the conditionals yourself for some
things if you depend on Geany 1.24 (current Git):

* Key names for GDK_* are available under GTK3 too (e.g. without the
GDK_KEY_ prefix).

* GtkComboBoxText API is available even with GTK < 2.24.

* gtk_widget_set_can_default(),
gtk_widget_is_toplevel(),
gtk_widget_is_sensitive(),
gtk_widget_has_focus(),
gtk_widget_get_sensitive(),
gtk_widget_set_has_window() and
gtk_widget_set_can_focus()
are available even with GTK < 2.18.

* gtk_widget_get_mapped() is available even with GTK < 2.20.

* gtk_widget_get_allocated_height() and
gtk_widget_get_allocated_width() are available on GTK2.


Regards,
Colomban
Nate Bargmann
2013-03-18 16:25:30 UTC
Permalink
While it's likely that distros will want to drop support for GTK 2 as
soon as they can, there seems to be some issue on the part of GNOME
independent GTK apps regarding GTK3:

http://igurublog.wordpress.com/2012/11/05/gnome-et-al-rotting-in-threes/

and:

http://www.linuxuser.co.uk/opinion/a-linux-conspiracy-theory

Perhaps the most telling statement is:

Beyond just GNOME apps and tools being stripped of options, Red Hat
employee and lead GNOME developer William Jon McCann was caught opening
a bug report on the independent Transmission BitTorrent client telling
the developers that its panel notification feature should be removed.
Why? Merely because GNOME 3 no longer supports a panel: “Transmission
has an option in the Desktop tab of the preferences to ‘Show
Transmission icon in the notification area’. This should probably be
removed.” Transmission developer Charles replied, “So now we can have
three builds of Transmission that decide at compile time whether to use
AppIndicator, GtkStatusIcon or nothing at all… Removing it altogether,
as you suggest, will hurt Xfce users.” McCann replied, “I guess you have
to decide if you are a GNOME app, an Ubuntu app, or an Xfce app
unfortunately… And I have no idea what Xfce is or does, sorry. It is my
hope that you are a GNOME app.” Charles’s reply to this: “*speechless*”.


I like Geany since it is light and works seamlessly with XFCE. Will the
Geany be forced to choose between GNOME and everyone else by moving to
GTK3? Please investigate this carefully.

- Nate
--
"The optimist proclaims that we live in the best of all
possible worlds. The pessimist fears this is true."

Ham radio, Linux, bikes, and more: http://www.n0nb.us
Colomban Wendling
2013-03-18 16:45:06 UTC
Permalink
Post by Nate Bargmann
While it's likely that distros will want to drop support for GTK 2 as
soon as they can, there seems to be some issue on the part of GNOME
http://igurublog.wordpress.com/2012/11/05/gnome-et-al-rotting-in-threes/
http://www.linuxuser.co.uk/opinion/a-linux-conspiracy-theory
Beyond just GNOME apps and tools being stripped of options, Red Hat
employee and lead GNOME developer William Jon McCann was caught opening
a bug report on the independent Transmission BitTorrent client telling
the developers that its panel notification feature should be removed.
Why? Merely because GNOME 3 no longer supports a panel: “Transmission
has an option in the Desktop tab of the preferences to ‘Show
Transmission icon in the notification area’. This should probably be
removed.” Transmission developer Charles replied, “So now we can have
three builds of Transmission that decide at compile time whether to use
AppIndicator, GtkStatusIcon or nothing at all… Removing it altogether,
as you suggest, will hurt Xfce users.” McCann replied, “I guess you have
to decide if you are a GNOME app, an Ubuntu app, or an Xfce app
unfortunately… And I have no idea what Xfce is or does, sorry. It is my
hope that you are a GNOME app.” Charles’s reply to this: “*speechless*”.
*sight*. I didn't read your links yet but if a GNOME developer can say
"you need to choose between GNOME and something else" and "I have no
idea what Xfce uses or does" GNOME is leading in an even worse direction
than I though…
Post by Nate Bargmann
I like Geany since it is light and works seamlessly with XFCE. Will the
Geany be forced to choose between GNOME and everyone else by moving to
GTK3?
But don't worry, we are not a GNOME application and won't remove stuff
just because some crazy GNOME guy think that don't fit. Adding support
for GTK3 in Geany is not to become GNOME, but simply to keep up to date
with current version of our platform library (GTK), and so not to get
rushed in a few years when GTK2 will start to die.

We will still support GTK2 for a long time (see, currently we only
depend on GTK 2.16).
We won't follow the crazy removal of everything that is happening more
and more in GNOME3.
Post by Nate Bargmann
Please investigate this carefully.
I don't see what we would have to investigate: the toolkit we use got a
new major version and we added support to it, that's it. GNOME don't
have anything to tell us about, and in the even they do, we'll just tell
them it's not their business.

Using GTK3 (or GNOME) doesn't make one sign a "we will follow your way
of thinking" agreement.

Regards,
Colomban (happy gnome-panel 3 user for now)
Nate Bargmann
2013-03-18 17:15:07 UTC
Permalink
* On 2013 18 Mar 11:46 -0500, Colomban Wendling wrote:

Thanks, Colomban.
Post by Colomban Wendling
Using GTK3 (or GNOME) doesn't make one sign a "we will follow your way
of thinking" agreement.
Keep up the good work.

- Nate
--
"The optimist proclaims that we live in the best of all
possible worlds. The pessimist fears this is true."

Ham radio, Linux, bikes, and more: http://www.n0nb.us
Loading...