diff --git a/rainbow/Gtk/Wnd.cpp b/rainbow/Gtk/Wnd.cpp index d7be26bad..d035aad84 100644 --- a/rainbow/Gtk/Wnd.cpp +++ b/rainbow/Gtk/Wnd.cpp @@ -79,13 +79,14 @@ void Ctrl::Create(Ctrl *owner, bool popup) if(owner && owner->top) gtk_window_set_transient_for((GtkWindow *)top->window, (GtkWindow *)owner->top->window); gtk_widget_set_app_paintable(top->window, TRUE); - gtk_widget_show_all(top->window); isopen = true; top->im_context = gtk_im_multicontext_new(); gtk_im_context_set_client_window(top->im_context, gdk()); gtk_im_context_set_use_preedit(top->im_context, false); g_signal_connect(top->im_context, "commit", G_CALLBACK(IMCommit), this); + + WndShow(IsShown()); Win& w = wins.Add(); w.ctrl = this; @@ -120,13 +121,13 @@ void Ctrl::SetMouseCursor(const Image& image) Ctrl *Ctrl::GetOwner() { GuiLock __; - return NULL; + return top ? top->owner : NULL; } Ctrl *Ctrl::GetActiveCtrl() { GuiLock __; - return NULL; + return focusCtrl ? focusCtrl->GetTopCtrl() : NULL; } // Vector Ctrl::hotkey; @@ -257,6 +258,10 @@ Rect Ctrl::GetWndScreenRect() const void Ctrl::WndShow0(bool b) { GuiLock __; + if(b) + gtk_widget_show_all(top->window); + else + gtk_widget_hide_all(top->window); } void Ctrl::WndUpdate0() diff --git a/rainbow/GtkMain/main.cpp b/rainbow/GtkMain/main.cpp index 8f3db2b4b..8fa4394f5 100644 --- a/rainbow/GtkMain/main.cpp +++ b/rainbow/GtkMain/main.cpp @@ -46,9 +46,6 @@ struct MyApp : TopWindow { virtual void MouseMove(Point p, dword keyflags) { pos = p; - DDUMP(pos); - DDUMP(IsVisible()); - DDUMP(IsOpen()); Refresh(); }