08/04/12 15:55:11 +dBZGKmZ
>>247の件を少しまじめに調査してみました。結論から言うとテーマ側の問題のようです。
例えば下のコードを>>247のテーマで実行すると枠が描画されません。
class TestWindow : public Gtk::Window {
Gtk::Notebook m_nb;
Gtk::HBox m_hbox;
Gtk::DrawingArea m_view;
// Gtk::Label m_view;
public:
TestWindow(){
m_nb.append_page( m_view, "hoge" );
add( m_nb );
show_all_children();
resize( 300, 300 );
}
};
int main( int argc, char *argv[] ) {
Gtk::Main gmain( argc, argv );
TestWindow test;
Gtk::Main::run( test );
return 0;
}
Gtk::DrawingArea m_view をコメントアウトして Gtk::Label m_view を使うと枠が表示されます。
もう少し詳しく解説すると、枠の太さは Gtk::Widget::get_modifier_style()->get_xthickness()
と決まっているのですが、行儀の悪いテーマの場合はその値よりも太い枠を書くようです。
すると Gtk::Label のように背景が透明なWidgetなら枠がきちんと表示されるのですが、背景が
透明ではないWidgetの場合は枠が上書きされて消えてしまうようです。