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

View File

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

View File

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

View File

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