]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/window.cpp
added GetStdIcon support to wxRenderer
[wxWidgets.git] / src / mgl / window.cpp
index 09f69f1dd7bc31b08d558be9f5e6be191887122a..b79394efbc7489b4df5257f3c65c8a8cc1cd3a7a 100644 (file)
@@ -117,7 +117,6 @@ bool wxCreateMGL_WM()
     
 #if wxUSE_SYSTEM_OPTIONS
     // FIXME_MGL -- so what is The Proper Way?
-    width=800, height=600;
     if ( wxSystemOptions::HasOption(wxT("mgl.screen-width") )
         width = wxSystemOptions::GetOptionInt(wxT("mgl.screen-width"));
     if ( wxSystemOptions::HasOption(wxT("mgl.screen-height") )
@@ -199,7 +198,13 @@ static ibool wxWindowMouseHandler(window_t *wnd, event_t *e)
     MGL_wmCoordGlobalToLocal(win->GetHandle(), 
                              e->where_x, e->where_y, &where.x, &where.y);
 
-    if ( !win->IsEnabled() ) return FALSE;
+    for (wxWindowMGL *w = win; w; w = w->GetParent())
+    {
+        if ( !w->IsEnabled() ) 
+            return FALSE;
+        if ( w->IsTopLevel() )
+            break;
+    }
     
     wxEventType type = wxEVT_NULL;
     wxMouseEvent event;
@@ -626,6 +631,8 @@ bool wxWindowMGL::Create(wxWindow *parent,
 
 void wxWindowMGL::SetFocus()
 {
+    if ( gs_focusedWindow == this ) return;
+
     if ( gs_focusedWindow )
         gs_focusedWindow->KillFocus();
     
@@ -658,7 +665,7 @@ void wxWindowMGL::SetFocus()
     
     wxFocusEvent event(wxEVT_SET_FOCUS, GetId());
     event.SetEventObject(this);
-    AddPendingEvent(event);
+    GetEventHandler()->ProcessEvent(event);
 }
 
 void wxWindowMGL::KillFocus()
@@ -679,7 +686,7 @@ void wxWindowMGL::KillFocus()
 
     wxFocusEvent event(wxEVT_KILL_FOCUS, GetId());
     event.SetEventObject(this);
-    AddPendingEvent(event);
+    GetEventHandler()->ProcessEvent(event);
 }
 
 // ----------------------------------------------------------------------------
@@ -1096,6 +1103,12 @@ void wxWindowMGL::HandlePaint(MGLDevCtx *dc)
         return;
     }
     
+#if 0 // FIXME_MGL -- debugging stuff!
+    dc->setColorRGB(255,0,255);
+    dc->fillRect(-1000,-1000,2000,2000);
+    wxUsleep(100);
+#endif
+
     MGLRegion clip;
     dc->getClipRegion(clip);
     m_updateRegion = wxRegion(clip);