[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