[Geany-Devel] [PATCH geany-plugins 02/10] insertnum: Fix GTK+3 support

Dimitar Zhekov dimitar.zhekov at xxxxx
Sat Apr 6 12:04:15 UTC 2013


On Sat, 6 Apr 2013 10:47:25 +1100
Lex Trotman <elextr at gmail.com> wrote:

> On 6 April 2014 04:40, Dimitar Zhekov <dimitar.zhekov at gmail.com> wrote:
> 
> > On Fri,  5 Apr 2013 08:58:21 +0200
> > Quentin Glidic <sardemff7+geany at sardemff7.net> wrote:
> >
> > >  geanyinsertnum/src/insertnum.c | 4 ++--
> > > -     GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
> > > +     gtk_widget_set_can_default(button, TRUE);
> >
> > >  geanyinsertnum/src/insertnum.c | 14 +++++++-------
> > > -     combo = GTK_COMBO_BOX(gtk_combo_box_entry_new_text());
> > > +     combo = GTK_COMBO_BOX(gtk_combo_box_text_new_with_entry());
> > > -     gtk_combo_box_append_text(combo, "2");
> > > +     gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "2");
> > > ...
> >
> > Thank you, Quentin, but...
> >
> > Using gtkcompat requires either Geany >= 20130818 or gtk+ >= 2.24.
> >
> 
> I'm not sure I understand your Geany version number, is it a future date,
> and if so why 18 Aug?

Sorry, I meant ~20130313, when gtkcompat was added.

> Gtkcompat is supposed to handle compatibility for GTK back to 2.16 IIUC,
> If it doesn't thats a bug :).  Geany's GTK minimum requirement hasn't been
> increased from 2.16 but it now also can be built with gtk3.  The intention
> is to encourage plugins to do the same. We are not losing support for gtk2.

Yes, I understand that, and it provides compatibility as far as I can
tell without actually using it.

> > Since I care more about the backwards compatibility than for gtk+3,
> > my plans are to update insertnum when gtkcompat becomes part of geany-
> > plugins,
> 
> I guess it isn't clearly explained, gtkcompat.h is part of Geany, not the
> plugins, but they can use it since its only a header file.  Its in Geany's
> Git.  It doesn't become part of geany plugins.

It's explained well enough. The plugins are not only able, but expected
to use it, because it's automatically included by plugindata.h. But that
assumes they are build against Geany 2013-03-11, or with a new gtk+.

The problem is, my company is certified for information securily, and
getting approval for a new version of any external software is a PITA.
On the other hand, anything written by the employees, like my plugins,
is OK by default - we are hired to write software, after all... :)

(Of course, I'm not using the company machines to write any GPL-ed
software - only to compile and use it.)

> > or when we increase the gtk+ requirements of Geany to gtk+ >=
> > 2.24, or after 2 years - whichever comes first.
> 
> Not sure why you want gtk 2.24?

Because GtkComboBoxText is from 2.24 (althought it's [re]defined in
gtkcompat.h for any gtk < 3.0, with an explanation why).

> Anyway its your choice of course, user
> complaints that it doesn't work with gtk3 will be pointed to you :)

My package manager shows 2795 depending on gtk+2, and 345 packages
depending on gtk+3, which was released on 2011-07-28. :)

Anyway, I was too categorical. The old hack of #defining GTK_COMPAT_H
before including geanyplugin.h, and manually writing any compatibility
code, will probably work fine with all Geany versions. That'll look a
bit ugly, and IMHO, letting the plugins decide whether to include
"gtkcompat.h" would be better...

-- 
E-gards: Jimmy


More information about the Devel mailing list