]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/htmlwin.cpp
better focus handling (blind fix)
[wxWidgets.git] / src / html / htmlwin.cpp
index 9db304ff227e1b7d41951b8f0a2b501c2edaa1d9..30164dc55da4899988aa9ec251085c0f05210fa8 100644 (file)
 #endif
 
 #ifndef WXPRECOMP
-#include "wx/wx.h"
+    #include "wx/log.h"
+    #include "wx/intl.h"
+    #include "wx/dcclient.h"
+    #include "wx/frame.h"
 #endif
 
 #include "wx/html/htmlwin.h"
 #include "wx/html/forcelnk.h"
 #include "wx/html/htmlproc.h"
-#include "wx/log.h"
-#include "wx/arrimpl.cpp"
 #include "wx/list.h"
+
+#include "wx/arrimpl.cpp"
 #include "wx/listimpl.cpp"
 
 //-----------------------------------------------------------------------------
@@ -306,10 +309,15 @@ bool wxHtmlWindow::LoadPage(const wxString& location)
     {
         int c = m_History->GetCount() - (m_HistoryPos + 1);
 
-        m_HistoryPos++;
-        for (int i = 0; i < c; i++)
-            m_History->Remove(m_HistoryPos);
-        m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
+        if (m_HistoryPos < 0 || 
+            (*m_History)[m_HistoryPos].GetPage() != m_OpenedPage ||
+            (*m_History)[m_HistoryPos].GetAnchor() != m_OpenedAnchor)
+        {
+            m_HistoryPos++;
+            for (int i = 0; i < c; i++)
+                m_History->RemoveAt(m_HistoryPos);
+            m_History->Add(new wxHtmlHistoryItem(m_OpenedPage, m_OpenedAnchor));
+        }
     }
 
     if (m_OpenedPageTitle == wxEmptyString)