やすしです。

Gdk::ROOT_WINDOWを作りたいのですが、ちょっと困ってます‥。

Gtk+ の macro GDK_ROOT_WINDOW()は、Gtk+(Gdk?)の private global 変数 
gdk_root_windowを返すだけのもので、現在の Ruby/Gtkでは 
Gdk::Window::root_windowで、この値を返していると思います。

で、どうせなら Gdk::ROOT_WINDOWに gdk_root_windowの値を入れてしまったら
どうかなと思うのですが、どうでしょう?

困っているのは initialize の順番が現在

Init_gtk() -> Init_gtk_gtk() -> Init_gtk_gdk() -> gtk_init()

と、Ruby/Gtk の init.cの中で呼ばれている事なんです。

gdk_root_windowは、 gtk_init()で呼ばれる gdk_init_check()の中で 
initializeされるのですが、Ruby/Gtk側での Gdk::CONSTANTS は 
Init_gtk_gdk()の中で initializeされています。

gtk_init()を Init_*()の前に呼ぶと何かまずい事とかありますか?

# 他には、Gdk::root_windowなんて言う、GdkWindow objectを返すmethod があっ
# ても良いかな〜とも思ってますが、どうでしょう?
# Gdk::Window#foreign_new(Gdk::ROOT_WINDOW) の省略形として 
# Gdk.root_windowとか(^^;
## Gdk::Window#root_windowが、rdpに載ってない‥
--
            yashi