mirror of https://github.com/stella-emu/stella.git
removed duplicate _editMode variable
fixed missing redraws when StringListWidgets gain focus prevent focus for disabled widget
This commit is contained in:
parent
e01d8e57a5
commit
096ed424e3
|
@ -361,7 +361,7 @@ void Dialog::setFocus(Widget* w)
|
||||||
{
|
{
|
||||||
// If the click occured inside a widget which is not the currently
|
// If the click occured inside a widget which is not the currently
|
||||||
// focused one, change the focus to that widget.
|
// focused one, change the focus to that widget.
|
||||||
if(w && w != _focusedWidget && w->wantsFocus())
|
if(w && w != _focusedWidget && w->wantsFocus() && w->isEnabled())
|
||||||
{
|
{
|
||||||
// Redraw widgets for new focus
|
// Redraw widgets for new focus
|
||||||
_focusedWidget = Widget::setFocusForChain(this, getFocusList(), w, 0);
|
_focusedWidget = Widget::setFocusForChain(this, getFocusList(), w, 0);
|
||||||
|
@ -427,10 +427,10 @@ void Dialog::drawDialog()
|
||||||
|
|
||||||
FBSurface& s = surface();
|
FBSurface& s = surface();
|
||||||
|
|
||||||
|
cerr << endl << "d";
|
||||||
if(isDirty())
|
if(isDirty())
|
||||||
{
|
{
|
||||||
//cerr << "*** draw dialog " << typeid(*this).name() << " ***" << endl;
|
//cerr << "*** draw dialog " << typeid(*this).name() << " ***" << endl;
|
||||||
cerr << "d";
|
|
||||||
|
|
||||||
if(clearsBackground())
|
if(clearsBackground())
|
||||||
{
|
{
|
||||||
|
|
|
@ -122,10 +122,6 @@ void DialogContainer::render()
|
||||||
if(myDialogStack.empty())
|
if(myDialogStack.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Make sure we start in a clean state (with zero'ed buffers)
|
|
||||||
if(!myOSystem.eventHandler().inTIAMode())
|
|
||||||
myOSystem.frameBuffer().clear();
|
|
||||||
|
|
||||||
cerr << "full re-render " << typeid(*this).name() << endl;
|
cerr << "full re-render " << typeid(*this).name() << endl;
|
||||||
|
|
||||||
// Make sure we start in a clean state (with zero'ed buffers)
|
// Make sure we start in a clean state (with zero'ed buffers)
|
||||||
|
@ -174,7 +170,7 @@ void DialogContainer::removeDialog()
|
||||||
{
|
{
|
||||||
if(!myDialogStack.empty())
|
if(!myDialogStack.empty())
|
||||||
{
|
{
|
||||||
cerr << "remove dialog" << endl;
|
cerr << "remove dialog " << typeid(*myDialogStack.top()).name() << endl;
|
||||||
myDialogStack.pop();
|
myDialogStack.pop();
|
||||||
|
|
||||||
// Inform the frame buffer that it has to render all surfaces
|
// Inform the frame buffer that it has to render all surfaces
|
||||||
|
|
|
@ -100,8 +100,6 @@ void EditableWidget::receivedFocusWidget()
|
||||||
{
|
{
|
||||||
_caretTimer = 0;
|
_caretTimer = 0;
|
||||||
_caretEnabled = true;
|
_caretEnabled = true;
|
||||||
|
|
||||||
Widget::receivedFocusWidget();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -36,6 +36,8 @@ ListWidget::ListWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
_textcolor = kTextColor;
|
_textcolor = kTextColor;
|
||||||
_textcolorhi = kTextColor;
|
_textcolorhi = kTextColor;
|
||||||
|
|
||||||
|
_editMode = false;
|
||||||
|
|
||||||
_cols = w / _fontWidth;
|
_cols = w / _fontWidth;
|
||||||
_rows = h / _lineHeight;
|
_rows = h / _lineHeight;
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,6 @@ class ListWidget : public EditableWidget
|
||||||
int _currentPos{0};
|
int _currentPos{0};
|
||||||
int _selectedItem{-1};
|
int _selectedItem{-1};
|
||||||
int _highlightedItem{-1};
|
int _highlightedItem{-1};
|
||||||
bool _editMode{false};
|
|
||||||
bool _useScrollbar{true};
|
bool _useScrollbar{true};
|
||||||
|
|
||||||
ScrollBarWidget* _scrollBar{nullptr};
|
ScrollBarWidget* _scrollBar{nullptr};
|
||||||
|
|
|
@ -52,7 +52,7 @@ class OptionsDialog : public Dialog
|
||||||
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unique_ptr<VideoAudioDialog> myVideoDialog;
|
unique_ptr<VideoAudioDialog> myVideoDialog;
|
||||||
unique_ptr<EmulationDialog> myEmulationDialog;
|
unique_ptr<EmulationDialog> myEmulationDialog;
|
||||||
unique_ptr<InputDialog> myInputDialog;
|
unique_ptr<InputDialog> myInputDialog;
|
||||||
unique_ptr<UIDialog> myUIDialog;
|
unique_ptr<UIDialog> myUIDialog;
|
||||||
|
|
|
@ -35,6 +35,9 @@ class StringListWidget : public ListWidget
|
||||||
protected:
|
protected:
|
||||||
void handleMouseEntered() override;
|
void handleMouseEntered() override;
|
||||||
void handleMouseLeft() override;
|
void handleMouseLeft() override;
|
||||||
|
// display depends on _hasFocus so we have to redraw when focus changes
|
||||||
|
void receivedFocusWidget() override { setDirty(); }
|
||||||
|
void lostFocusWidget() override { setDirty(); }
|
||||||
void drawWidget(bool hilite) override;
|
void drawWidget(bool hilite) override;
|
||||||
Common::Rect getEditRect() const override;
|
Common::Rect getEditRect() const override;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue