mirror of
https://github.com/cookiengineer/audacity
synced 2025-07-03 14:13:11 +02:00
Help for debugging of some event handling
This commit is contained in:
parent
2cd3a5d751
commit
9bfd66b06c
@ -2762,6 +2762,10 @@ void AudacityProject::NextFrame()
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// This is not strictly needed, except when trying to debug focus changes themselves,
|
||||
// and therefore the main window misses the deactivation event
|
||||
UpdateLastFocus();
|
||||
}
|
||||
|
||||
void AudacityProject::PrevFrame()
|
||||
@ -2791,6 +2795,10 @@ void AudacityProject::PrevFrame()
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// This is not strictly needed, except when trying to debug focus changes themselves,
|
||||
// and therefore the main window misses the deactivation event
|
||||
UpdateLastFocus();
|
||||
}
|
||||
|
||||
void AudacityProject::NextWindow()
|
||||
|
@ -2147,14 +2147,8 @@ void AudacityProject::OnActivate(wxActivateEvent & event)
|
||||
// remember which child had the focus. Then, when we receive the
|
||||
// activate event, we restore that focus to the child or the track
|
||||
// panel if no child had the focus (which probably should never happen).
|
||||
if (!mActive) {
|
||||
// We only want to remember the last focused window if FindFocus() returns
|
||||
// a window within the current project frame.
|
||||
wxWindow *w = FindFocus();
|
||||
if (wxGetTopLevelParent(w) ==this) {
|
||||
mLastFocusedWindow = w;
|
||||
}
|
||||
}
|
||||
if (!mActive)
|
||||
UpdateLastFocus();
|
||||
else {
|
||||
SetActiveProject(this);
|
||||
if (mLastFocusedWindow) {
|
||||
@ -2173,6 +2167,16 @@ void AudacityProject::OnActivate(wxActivateEvent & event)
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void AudacityProject::UpdateLastFocus()
|
||||
{
|
||||
// We only want to remember the last focused window if FindFocus() returns
|
||||
// a window within the current project frame.
|
||||
wxWindow *w = FindFocus();
|
||||
if (wxGetTopLevelParent(w) ==this) {
|
||||
mLastFocusedWindow = w;
|
||||
}
|
||||
}
|
||||
|
||||
bool AudacityProject::IsActive()
|
||||
{
|
||||
return mActive;
|
||||
|
@ -312,6 +312,7 @@ class AUDACITY_DLL_API AudacityProject final : public wxFrame,
|
||||
void OnUpdateUI(wxUpdateUIEvent & event);
|
||||
|
||||
void OnActivate(wxActivateEvent & event);
|
||||
void UpdateLastFocus();
|
||||
void OnMouseEvent(wxMouseEvent & event);
|
||||
void OnIconize(wxIconizeEvent &event);
|
||||
void OnSize(wxSizeEvent & event);
|
||||
|
@ -178,7 +178,7 @@ public:
|
||||
#endif
|
||||
}
|
||||
|
||||
int FilterEvent(wxEvent& event)
|
||||
int FilterEvent(wxEvent& event) override
|
||||
{
|
||||
// Quickly bail if this isn't something we want.
|
||||
wxEventType type = event.GetEventType();
|
||||
|
Loading…
x
Reference in New Issue
Block a user