]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/config.cpp
Fixed doubled-up key effects in wxTextCtrl by resetting m_lastMsg to 0
[wxWidgets.git] / src / common / config.cpp
index 47cf94f498f0856c203c6e6e7a86e3c4f6e8bc39..66e8d2017f6e066198dd3c16d45e54162aa8d3ea 100644 (file)
@@ -25,7 +25,7 @@
 
 #include  <wx/confbase.h>
 
-#ifdef wxUSE_CONFIG
+#if wxUSE_CONFIG
 
 #ifdef    __BORLANDC__
   #pragma hdrstop
@@ -226,16 +226,21 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer,
                                  const wxString& strEntry)
 {
   m_pContainer = (wxConfigBase *)pContainer;
-  wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
 
-  // special case of "/keyname" when there is nothing before "/"
-  if ( strPath.IsEmpty() && ((!strEntry.IsEmpty()) && strEntry[0] == wxCONFIG_PATH_SEPARATOR ))
+  // the path is everything which precedes the last slash
+  wxString strPath = strEntry.BeforeLast(wxCONFIG_PATH_SEPARATOR);
+
+  // except in the special case of "/keyname" when there is nothing before "/"
+  if ( strPath.IsEmpty() &&
+       ((!strEntry.IsEmpty()) && strEntry[0] == wxCONFIG_PATH_SEPARATOR) )
+  {
     strPath = wxCONFIG_PATH_SEPARATOR;
+  }
 
   if ( !strPath.IsEmpty() ) {
     // do change the path
     m_bChanged = TRUE;
-    m_strName = strEntry.Right(wxCONFIG_PATH_SEPARATOR);
+    m_strName = strEntry.AfterLast(wxCONFIG_PATH_SEPARATOR);
     m_strOldPath = m_pContainer->GetPath();
     m_strOldPath += wxCONFIG_PATH_SEPARATOR;
     m_pContainer->SetPath(strPath);