タイトルに書かれているように、Gtk 3.10(Ubuntu 14.04上)のhbox/vbox内では、Gtk 3.20(Archlinux上)と同じコードが動作します。バグを再現する最小限のコードは、(私のHaskellの恩赦)以下の通りです:Gtk 3.10はgtk_box_set_child_packingを無視します
import Graphics.Widget -- my graphics library, which uses the FFI to import Gtk functions
main = runApplication $ do
a <- (subwidget.text) "aaa"; b <- (subwidget.text) "bbb"
setDynamic a (packing.expands) Fitting
c <- box2 Horizontal a b
window "Main window" c <| do visible =- True
このコードはコンパイルされ、2つのGtkのバージョンで動作しますが、Gtkの3.10バージョンでは、二行目を無視しているようだと、両方の子ウィジェットを示していhboxに均等に展開されます。 Gtk 3.20バージョンは期待されていることを行い、残りのスペースを取って最初のウィジェットを左にパックし、2番目のウィジェットを残していることを示しています。それ以外に、Gtkのどちらのバージョンからもエラーは報告されていません。
何が変更されたのか理解できますか?私はドキュメントを読みましたが、私はこの動作について合理的な説明を見つけられませんでした。