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