Hello,

I wanted to bring the GtkAdjustment regression bug to the attention of
Ubuntu developers.
The problem is described very well by the commenters in this bug:
http://bugzilla.gnome.org/show_bug.cgi?id=551740
Please take the time to read all of the bug comments, this is important.

In short: This change introduced in Gtk+ 2.14.0 (technically in Gtk+ 2.13.x
development versions) is a major regression, and
causes practically something like every second Gtk+ app to exhibit the
symptoms regarding GtkAdjustment and related widgets
(GtkSpinButton, GtkScale, but most notably not for scrollbars, as it is the
originally designed behavior for scrollbars.)

I'm not being alarmist. Alarmist at the most because i'm bringing this to
attention here but not "alarmist" in the sense that there's
nothing to see here and please move along.

I'm on Intrepid now (I've upgraded from Hardy 2 weeks ago), and countless
apps are broken, among those (like described in the bug)
gnome-panel, Inkscape, glade-2, Evolution, and with certainty others who use
the aforementioned API. gnome-panel and Inkscape for example
can not be used properly at all (adjusting colors in the full range isn't
possible with Inkscape anymore, the clock for gnome-panel can't be adjusted
correctly, etc.)

Given the short timespan to the release of Intrepid, i think it is VERY
unlikely all those apps will be fixed to accommodate for the change in Gtk+,
which I consider a regression and API break. Therefore, I propose to include
a patch in downstream for Ubuntu which reverts this change made
to Gtk+. It should be noted that even if this patch were to include, it
would not break applications which have been already altered to compensate
for the new behavior, basically it would mean the patch is neutral.

I've attached a patch against Gtk+ 2.14.1 which reverts the GtkAdjustment
behaviour to how it has been in Gtk+ 2.12 and prior.

--Milosz




-- 
Please note that according to the German law on data retention,
information on every electronic information exchange with me is
retained for a period of six months.
[Bitte beachten Sie, dass dem Gesetz zur Vorratsdatenspeicherung zufolge
jeder elektronische Kontakt mit mir sechs Monate lang gespeichert wird.]
Index: gtkadjustment.c
===================================================================
--- gtkadjustment.c	(revision 21455)
+++ gtkadjustment.c	(working copy)
@@ -362,7 +362,7 @@
   /* don't use CLAMP() so we don't end up below lower if upper - page_size
    * is smaller than lower
    */
-  value = MIN (value, adjustment->upper - adjustment->page_size);
+  /*value = MIN (value, adjustment->upper - adjustment->page_size);*/
   value = MAX (value, adjustment->lower);
 
   if (value != adjustment->value)
@@ -635,7 +635,7 @@
   /* don't use CLAMP() so we don't end up below lower if upper - page_size
    * is smaller than lower
    */
-  value = MIN (value, upper - page_size);
+  /*value = MIN (value, upper - page_size);*/
   value = MAX (value, lower);
 
   if (value != adjustment->value)
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss

Reply via email to