Fixes some status bar update issues and focus problems

This commit is contained in:
Markus Gans 2016-06-19 23:18:53 +02:00
parent 7dd7455b23
commit 8ffa221e5f
4 changed files with 13 additions and 10 deletions

View File

@ -477,7 +477,8 @@ void FButtonGroup::onFocusIn (FFocusEvent* in_ev)
in_ev->ignore();
FWidget* prev_element = getFocusWidget();
(*iter)->setFocus();
prev_element->redraw();
if ( prev_element )
prev_element->redraw();
(*iter)->redraw();
}
break;
@ -492,7 +493,8 @@ void FButtonGroup::onFocusIn (FFocusEvent* in_ev)
in_ev->ignore();
FWidget* prev_element = getFocusWidget();
focusFirstChild();
prev_element->redraw();
if ( prev_element )
prev_element->redraw();
getFocusWidget()->redraw();
}
else if ( in_ev->getFocusType() == fc::FocusPreviousWidget )
@ -500,7 +502,8 @@ void FButtonGroup::onFocusIn (FFocusEvent* in_ev)
in_ev->ignore();
FWidget* prev_element = getFocusWidget();
focusLastChild();
prev_element->redraw();
if ( prev_element )
prev_element->redraw();
getFocusWidget()->redraw();
}
}

View File

@ -1459,7 +1459,7 @@ bool FWidget::focusLastChild()
}
//----------------------------------------------------------------------
bool FWidget::setFocus(bool on)
bool FWidget::setFocus (bool on)
{
FWindow* window;
@ -1483,10 +1483,6 @@ bool FWidget::setFocus(bool on)
}
}
// unset widget focus
if ( ! on && focus )
FWidget::setFocusWidget(0);
window = FWindow::getWindowWidget(this);
// set window focus

View File

@ -379,7 +379,7 @@ class FWidget : public FObject, public FTerm
virtual bool focusFirstChild();
virtual bool focusLastChild();
virtual bool setFocus(bool);
virtual bool setFocus (bool);
virtual bool setFocus();
virtual bool unsetFocus();
bool hasFocus() const;
@ -387,7 +387,7 @@ class FWidget : public FObject, public FTerm
void setFocusable();
void unsetFocusable();
bool ignorePadding(bool);
bool ignorePadding (bool);
bool ignorePadding();
bool acceptPadding();

View File

@ -130,6 +130,10 @@ void ProgressDialog::onTimer (FTimerEvent*)
more->setEnable();
quit->setEnable();
redraw();
if ( statusBar() )
statusBar()->drawMessage();
updateTerminal();
flush_out();
}
}