]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/window.cpp
added a preImage of the selection in order to avoid unnecessary events being triggered
[wxWidgets.git] / src / mgl / window.cpp
index 08ad332bceaa9fccf834b2fca46142d52493afb2..830b19167d6990126a95893ed3f4fc350bc2c8bf 100644 (file)
@@ -127,8 +127,6 @@ static void wxWindowPainter(window_t *wnd, MGLDC *dc)
         MGLDevCtx ctx(dc);
         w->HandlePaint(&ctx);
     }
-    // FIXME_MGL -- root window should be a regular window so that
-    // enter/leave and activate/deactivate events work correctly
 }
 
 static ibool wxWindowMouseHandler(window_t *wnd, event_t *e)
@@ -468,6 +466,11 @@ END_EVENT_TABLE()
 
 void wxWindowMGL::Init()
 {
+    // First of all, make sure window manager is up and running. If it is
+    // not the case, initialize it in default display mode
+    if ( !g_winMng )
+        wxTheApp->SetDisplayMode(wxDisplayModeInfo(wxSize(640, 480), 16));
+
     // generic:
     InitBase();
 
@@ -926,11 +929,15 @@ void wxWindowMGL::DoSetSize(int x, int y, int width, int height, int sizeFlags)
         }
     }
 
-    DoMoveWindow(x, y, width, height);
+    if ( m_wnd->x != x || m_wnd->y != y || 
+         (int)m_wnd->width != width || (int)m_wnd->height != height )
+    {
+        DoMoveWindow(x, y, width, height);
 
-    wxSizeEvent event(wxSize(width, height), GetId());
-    event.SetEventObject(this);
-    GetEventHandler()->ProcessEvent(event);
+        wxSizeEvent event(wxSize(width, height), GetId());
+        event.SetEventObject(this);
+        GetEventHandler()->ProcessEvent(event);
+    }
 }
 
 void wxWindowMGL::DoSetClientSize(int width, int height)