mirror of
https://github.com/clangen/musikcube.git
synced 2024-11-19 20:13:36 +00:00
Revert "Scary experimental changes to the way focus is tracked to reduce"
This reverts commit 22900b2c83
.
This commit is contained in:
parent
22900b2c83
commit
2e1ea995cf
@ -306,6 +306,7 @@ IWindowPtr LibraryLayout::FocusNext() {
|
||||
return this->transportView;
|
||||
}
|
||||
|
||||
this->transportView->Blur();
|
||||
return this->visibleLayout->FocusFirst();
|
||||
}
|
||||
|
||||
@ -318,6 +319,7 @@ IWindowPtr LibraryLayout::FocusPrev() {
|
||||
return this->transportView;
|
||||
}
|
||||
|
||||
this->transportView->Blur();
|
||||
return this->visibleLayout->FocusLast();
|
||||
}
|
||||
|
||||
@ -450,10 +452,12 @@ bool LibraryLayout::KeyPress(const std::string& key) {
|
||||
return true;
|
||||
}
|
||||
else if (this->GetFocus() == this->transportView && Hotkeys::Is(Hotkeys::Up, key)) {
|
||||
this->transportView->Blur();
|
||||
this->visibleLayout->FocusLast();
|
||||
return true;
|
||||
}
|
||||
else if (this->GetFocus() == this->transportView && Hotkeys::Is(Hotkeys::Down, key)) {
|
||||
this->transportView->Blur();
|
||||
this->visibleLayout->FocusFirst();
|
||||
return true;
|
||||
}
|
||||
|
@ -360,6 +360,7 @@ void TransportWindow::SetFocus(FocusTarget target) {
|
||||
|
||||
if (this->focus == FocusNone) {
|
||||
this->lastFocus = last;
|
||||
this->Blur();
|
||||
}
|
||||
else {
|
||||
this->Focus();
|
||||
|
@ -449,6 +449,10 @@ process:
|
||||
|
||||
void App::UpdateFocusedWindow(IWindowPtr window) {
|
||||
if (this->state.focused != window) {
|
||||
if (this->state.focused) {
|
||||
this->state.focused->Blur();
|
||||
}
|
||||
|
||||
this->state.focused = window;
|
||||
this->state.input = dynamic_cast<IInput*>(window.get());
|
||||
this->state.keyHandler = dynamic_cast<IKeyHandler*>(window.get());
|
||||
|
@ -203,6 +203,11 @@ void AppLayout::FocusShortcuts() {
|
||||
|
||||
if (this->layout) {
|
||||
this->lastFocus = this->layout->GetFocus();
|
||||
|
||||
if (this->lastFocus) {
|
||||
this->lastFocus->Blur();
|
||||
}
|
||||
|
||||
this->layout->SetFocus(IWindowPtr());
|
||||
}
|
||||
|
||||
|
@ -67,9 +67,14 @@ bool sortByFocusOrder(IWindowPtr a, IWindowPtr b) {
|
||||
}
|
||||
|
||||
static inline IWindowPtr adjustFocus(IWindowPtr oldFocus, IWindowPtr newFocus) {
|
||||
if (oldFocus) {
|
||||
oldFocus->Blur();
|
||||
}
|
||||
|
||||
if (newFocus) {
|
||||
newFocus->Focus();
|
||||
}
|
||||
|
||||
return newFocus;
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,6 @@ static int NEXT_ID = 0;
|
||||
static bool drawPending = false;
|
||||
static bool freeze = false;
|
||||
static Window* top = nullptr;
|
||||
static Window* focused = nullptr;
|
||||
|
||||
static MessageQueue messageQueue;
|
||||
static std::shared_ptr<INavigationKeys> keys;
|
||||
@ -148,12 +147,6 @@ Window::Window(IWindow *parent) {
|
||||
|
||||
Window::~Window() {
|
||||
messageQueue.Remove(this);
|
||||
if (::top == this) {
|
||||
::top = nullptr;
|
||||
}
|
||||
if (::focused == this) {
|
||||
::focused = nullptr;
|
||||
}
|
||||
this->Destroy();
|
||||
}
|
||||
|
||||
@ -814,10 +807,6 @@ bool Window::IsParentVisible() {
|
||||
|
||||
void Window::Focus() {
|
||||
if (!this->isFocused) {
|
||||
if (::focused && ::focused != this) {
|
||||
::focused->Blur();
|
||||
}
|
||||
::focused = this;
|
||||
this->isFocused = true;
|
||||
this->isDirty = true;
|
||||
this->OnFocusChanged(true);
|
||||
@ -828,9 +817,6 @@ void Window::Focus() {
|
||||
|
||||
void Window::Blur() {
|
||||
if (this->isFocused) {
|
||||
if (::focused == this) {
|
||||
::focused = nullptr;
|
||||
}
|
||||
this->isFocused = false;
|
||||
this->isDirty = true;
|
||||
this->OnFocusChanged(false);
|
||||
|
Loading…
Reference in New Issue
Block a user