2016-05-03 16 views
0

タイトルに書かれているように、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のどちらのバージョンからもエラーは報告されていません。

何が変更されたのか理解できますか?私はドキュメントを読みましたが、私はこの動作について合理的な説明を見つけられませんでした。

答えて

1

私のハスケルコードはgtk_hbox_newを呼び出していましたが、これは明らかにドキュメントで非推奨になっています。私はgtk_box_newに切り替えました。そして、子ウィジェットは両方のGtkバージョンで正しくレイアウトされています。

関連する問題