[Scummvm-git-logs] scummvm master -> 9bb9c0d58eea71292d05b4e5515c48ba53d1f194
bgK
bastien.bouclet at gmail.com
Tue Jun 13 07:23:56 CEST 2017
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9bb9c0d58e GUI: Focus the first 'focusable' widget when rebuilding dialogs
Commit: 9bb9c0d58eea71292d05b4e5515c48ba53d1f194
https://github.com/scummvm/scummvm/commit/9bb9c0d58eea71292d05b4e5515c48ba53d1f194
Author: Bastien Bouclet (bastien.bouclet at gmail.com)
Date: 2017-06-13T07:21:34+02:00
Commit Message:
GUI: Focus the first 'focusable' widget when rebuilding dialogs
Fixes Trac#9838.
Changed paths:
gui/dialog.cpp
gui/dialog.h
gui/launcher.cpp
gui/options.cpp
diff --git a/gui/dialog.cpp b/gui/dialog.cpp
index d0e5755..24b3db4 100644
--- a/gui/dialog.cpp
+++ b/gui/dialog.cpp
@@ -88,13 +88,7 @@ void Dialog::open() {
_visible = true;
g_gui.openDialog(this);
- Widget *w = _firstWidget;
- // Search for the first objects that wantsFocus() (if any) and give it the focus
- while (w && !w->wantsFocus()) {
- w = w->_next;
- }
-
- setFocusWidget(w);
+ setDefaultFocusedWidget();
}
void Dialog::close() {
@@ -142,6 +136,16 @@ void Dialog::setFocusWidget(Widget *widget) {
_focusedWidget = widget;
}
+void Dialog::setDefaultFocusedWidget() {
+ Widget *w = _firstWidget;
+ // Search for the first objects that wantsFocus() (if any) and give it the focus
+ while (w && !w->wantsFocus()) {
+ w = w->_next;
+ }
+
+ setFocusWidget(w);
+}
+
void Dialog::releaseFocus() {
if (_focusedWidget) {
_focusedWidget->lostFocus();
diff --git a/gui/dialog.h b/gui/dialog.h
index 0e06eff..cf734a8 100644
--- a/gui/dialog.h
+++ b/gui/dialog.h
@@ -107,6 +107,8 @@ protected:
Widget *findWidget(const char *name);
void removeWidget(Widget *widget);
+ void setDefaultFocusedWidget();
+
void setResult(int result) { _result = result; }
int getResult() const { return _result; }
};
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index f60fecf..3ed1236 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -217,7 +217,7 @@ void LauncherDialog::rebuild() {
clean();
build();
reflowLayout();
- setFocusWidget(_firstWidget);
+ setDefaultFocusedWidget();
}
void LauncherDialog::open() {
diff --git a/gui/options.cpp b/gui/options.cpp
index 8dcb199..3ff0276 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -437,7 +437,7 @@ void OptionsDialog::rebuild() {
build();
reflowLayout();
_tabWidget->setActiveTab(currentTab);
- setFocusWidget(_firstWidget);
+ setDefaultFocusedWidget();
}
void OptionsDialog::open() {
More information about the Scummvm-git-logs
mailing list