Re: GTK version compatibility



Gowri Kandasamy wrote:

Does applications built on GTK 2.2  work  with gtk2.6  ?

Generally yes. However, there are some incompatibilities in undocumented
internals between 2.2 and later versions, which sometimes may affect
compatibility of applications to particular GTK+ versions, even if they
perfectly adhere to GTK+ APIs and docs.

For instance, the orders of at least some signals were changed in 2.4.
An application which is API-wise compatible to all GTK+ 2.x versions
doesn't necessarily run on all GTK+ 2.x versions if it just relies on
handled signal A to be emitted before handled signal B.

Application bugs which base on this are difficult to locate, since it's
not always obvious that your handler of signal A assumes that it's been
called before handler of signal B. You may easily have written a handler
without realizing this implicit requirement.

Generally, there are chances to run into his sort of trouble if any
signal handler of any widget accesses (reads or writes) data or
properties from or to other widgets or changes states of other widgets
which have custom signal handlers as well.

If you're lucky then your application, which runs perfectly on GTK+ 2.2,
either crashes rather quickly or obviously operates on wrong data or
target widgets on GTK+ >= 2.4, if this incompatibility applies to it. If
you're unlucky the program may appear to run fine but internally
confound data, which may stay undiscovered for quite some time.

Workarounds for this sort of problem are new custom variables, possibly
global ones, especially flag variables, to be used in handlers.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]