From: Kouhei S. <ko...@co...> - 2014-05-08 13:04:34
|
須藤です。 In <201...@ll...> "Re: [ruby-gnome2-devel-ja] WindowsでGTK+ 3を使ったときのテーマ" on Thu, 8 May 2014 18:00:55 +0900, "S. Kitagawa" <ch...@ll...> wrote: >>https://github.com/ruby-gnome2/ruby-gnome2/issues/235 >> >>で、WindowsでGTK+ 3を使うとテーマが当たらないんだけど、という >>話があります。それに関してWindowsで試して欲しいことがありま >>す。 >> >> #{gdk3_gem_root}/vendor/local/etc/gtk-3.0/settings.ini >> >>というファイルを作って、その内容を >> >> [Settings] >> gtk-theme-name = gtk-win32 >> >>にして、GTK+のデモアプリを立ちあげて、Windowsっぽいテーマが >>当たるかどうか確認してもらえないですか? > > Windows7で確認してみたところ、iniファイルなしでは確かにウィンドウ内の > 部品が、他のWindowsアプリと違うLinuxでよくある感じの見栄えになってし > まいますね。 > > 一方iniファイルを置いた場合では、他のWindowsアプリと統一された感じの > 見栄えになっています。 おぉ、ちゃんと効くんですね! 確認ありがとうございます! > ただWindows側の設定でデフォルト以外のテーマ(例えばWindows9x風テーマ。 > 自分は普段これを使ってます)が選択されていると表示がおかしくなります。 > ちょうどテーマが当たるところがなぜかピンク一色で塗りつぶされています(笑) > > 個人的な印象ですが、これはちょっと使い物にならないですね。Windows7で > Windows9x風テーマを使っている人も珍しいとは思いますが。 > > ちなみにGTK+2のデモアプリで確認したところ、デフォルトでテーマが有効になっ > ている感じで、しかもWindows9x風テーマを選択していても大丈夫なようです。 とすると、テーマのところにも問題があるみたいですねぇ。 https://wiki.gnome.org/Projects/GTK%2B/Roadmap を見ると、次 のリリースである3.14に「Improve Windows theme」とあるので、 次でよくなるんじゃないかと期待しています。 今回の問題はそもそもテーマがちゃんと選ばれないことなので、こ れはこれで対応しておいたほうがいいと思いました。なので、次の リリースにはiniを入れておこうと思います。 Windows環境がないのでデバッグできないんですけど、 https://git.gnome.org/browse/gtk+/tree/gtk/gtkwin32theme.c#n117 is_app_themed = (IsAppThemedFunc) GetProcAddress (uxtheme_dll, "IsAppThemed"); か https://git.gnome.org/browse/gtk+/tree/gtk/gtkwin32theme.c#n120 is_theme_active = (IsThemeActiveFunc) GetProcAddress (uxtheme_dll, "IsThemeActive"); がFALSEになっているのが悪い気がするんですよねぇ。 お、ソースを見ていて気づいたんですけど、 https://git.gnome.org/browse/gtk+/tree/gtk/gtkwin32theme.c#n408 gdk_rgba_parse (color, "pink"); Windowsじゃないときはfallbackの色としてピンクを使うようなコー ドがありますね。 Windows9x風テーマのときにピンクになるのはこれが関係あるのか も?あ、こっちにもピンクがありますね。 https://git.gnome.org/browse/gtk+/tree/gtk/gtkwin32theme.c#n302 gdk_rgba_parse (&color, "pink"); Windowsでデバッグできれば意外と簡単に直せるかもしれませんね。 直してGTK+本体に取り込んでもらえれば素敵な未来が。。。 |