]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/toolbar.cpp
Fix accelerstors with down and left
[wxWidgets.git] / src / univ / toolbar.cpp
index 0e2f6fe6bfdbc66c3221ca7dede1a853fc1e749e..66e6b2162339b7b6289de47e4ba525c071fc0ec1 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "univtoolbar.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -132,7 +128,7 @@ private:
 // wxToolBar implementation
 // ============================================================================
 
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl);
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
 
 // ----------------------------------------------------------------------------
 // wxToolBar creation
@@ -653,6 +649,17 @@ bool wxToolBar::PerformAction(const wxControlAction& action,
         PerformAction( wxACTION_BUTTON_RELEASE, numArg );
 
         PerformAction( wxACTION_BUTTON_CLICK, numArg );
+                        
+        // Write by Danny Raynor to change state again.                
+        // Check button still pressed or not
+        if( tool->IsInverted() )
+        {        
+            PerformAction( wxACTION_TOOLBAR_RELEASE, numArg );      
+        }
+    
+        // Set mouse leave toolbar button range (If still in the range,
+        // toolbar button would get focus again
+        PerformAction( wxACTION_TOOLBAR_LEAVE, numArg );
     }
     else if ( action == wxACTION_TOOLBAR_PRESS )
     {