Menu/toolbar event handling now tries the window with the focus first.
wxTextCtrl processes cut, copy, paste, undo, redo commands and UI updates automatically. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#endif
|
||||
|
||||
#include "wx/toolbar.h"
|
||||
#include "wx/frame.h"
|
||||
|
||||
#include "glib.h"
|
||||
#include "gdk/gdk.h"
|
||||
@@ -168,6 +169,28 @@ bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
|
||||
event.SetInt( toolIndex );
|
||||
event.SetExtraLong((long) toggleDown);
|
||||
|
||||
// First try sending the command to a window that has the focus, within a frame that
|
||||
// also contains this toolbar.
|
||||
wxFrame* frame = (wxFrame*) NULL;
|
||||
wxWindow* win = this;
|
||||
wxWindow* focusWin = (wxWindow*) NULL;
|
||||
|
||||
while (win)
|
||||
{
|
||||
if (win->IsKindOf(CLASSINFO(wxFrame)))
|
||||
{
|
||||
frame = (wxFrame*) win;
|
||||
break;
|
||||
}
|
||||
else
|
||||
win = win->GetParent();
|
||||
}
|
||||
if (frame)
|
||||
focusWin = wxFindFocusDescendant(frame);
|
||||
|
||||
if (focusWin && focusWin->GetEventHandler()->ProcessEvent(event))
|
||||
return TRUE;
|
||||
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
|
||||
return TRUE;
|
||||
|
Reference in New Issue
Block a user