Ubuntu 11.04で Gtk2のテストが失敗する問題
以前買った GTK本をいまさら読んでいるのですが、ただ Cで書くのも
面白くないので Perlでも書いてみようと思って Gtk2をインストール
しようとしたのですが、テストでこけたのでそれについて。
失敗するテスト
失敗するのは t/GtkScrolledWindow.tです。
% prove -b -t t/GtkScrolledWindow.t # Failed test 'The object isa Gtk2::HScrollbar' # at t/GtkScrolledWindow.t line 40. # The object isn't a 'Gtk2::HScrollbar' it's a 'Glib::Object::_Unregistered::OsScrollbar' # Failed test 'The object isa Gtk2::VScrollbar' # at t/GtkScrolledWindow.t line 41. # The object isn't a 'Gtk2::VScrollbar' it's a 'Glib::Object::_Unregistered::OsScrollbar' # Looks like you fa
こんな具合に期待したオブジェクトが取得できていない、という結果が得られます。
問題点
Ubuntu 11.04でスクロールバーが変わったことが問題でした。
Ubuntu 11.04からは overlay-scrollbarというスクロールバーに
切り替わっており、スクロールバーに関するオブジェクトを取得しようと
すると, HScrollbarや VScrollbarではなく OsScrollbarというオブジェクトが
返ってきたというわけです。
解決策
/etc/X11/Xsession.dに以下のようなファイルを作成し、ログインしなおせば
overlay-scrollbarが無効化されます。これにより Gtk2のテストもパスする
ようになります。私の場合はファイル名は 80overlayscrollbars としました。
export LIBOVERLAY_SCROLLBAR=0
私は overlay-scrollbarがあまり好ましくなかったので、
ちょうど良かったです。