git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11456 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
 
 void wxAppBase::SetActive(bool active, wxWindow * WXUNUSED(lastFocus))
 {
 
 void wxAppBase::SetActive(bool active, wxWindow * WXUNUSED(lastFocus))
 {
+    if ( active == m_isActive )
+        return;
+
+
+    wxActivateEvent event(wxEVT_ACTIVATE_APP, active);
+    event.SetEventObject(this);
+
+    (void)ProcessEvent(event);
 
         g_sendActivateEvent = -1;
 
         wxTheApp->SetActive(activate, (wxWindow *)g_focusWindowLast);
         g_sendActivateEvent = -1;
 
         wxTheApp->SetActive(activate, (wxWindow *)g_focusWindowLast);
-
-        wxActivateEvent event(wxEVT_ACTIVATE_APP, activate, GetId());
-        event.SetEventObject(this);
-
-        (void)GetEventHandler()->ProcessEvent(event);
     }
 
     wxCursor cursor = m_cursor;
     }
 
     wxCursor cursor = m_cursor;
 
         g_sendActivateEvent = -1;
 
         wxTheApp->SetActive(activate, (wxWindow *)g_focusWindowLast);
         g_sendActivateEvent = -1;
 
         wxTheApp->SetActive(activate, (wxWindow *)g_focusWindowLast);
-
-        wxActivateEvent event(wxEVT_ACTIVATE_APP, activate, GetId());
-        event.SetEventObject(this);
-
-        (void)GetEventHandler()->ProcessEvent(event);
     }
 
     wxCursor cursor = m_cursor;
     }
 
     wxCursor cursor = m_cursor;