[Scummvm-git-logs] scummvm branch-2-6 -> 2c5c8ed4862f8be2aba3d3d0d2f1517169a512e8

lephilousophe noreply at scummvm.org
Sat Oct 1 13:43:49 UTC 2022


This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
6efc7edecd GUI: Do hide GridItemWidgets when nothing is to be shown
c6adcbc1dc GUI: Fix memory leak when resizing grid widget
7dca536b26 GUI: Avoid useless surface copy before scaling
392553d9b2 GUI: Redraw editable widget and move its caret when text is set by code
2c5c8ed486 GUI: Fix memory leak when loading DEMO icon


Commit: 6efc7edecd70709bf580c55f10823e3ba3d7ae63
    https://github.com/scummvm/scummvm/commit/6efc7edecd70709bf580c55f10823e3ba3d7ae63
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-01T15:19:55+02:00

Commit Message:
GUI: Do hide GridItemWidgets when nothing is to be shown

(cherry picked from commit 9af7ecdd151dd8cdcd64c57cea90366dc20ebb1e)

Changed paths:
    gui/widgets/grid.cpp


diff --git a/gui/widgets/grid.cpp b/gui/widgets/grid.cpp
index 33b51fb1c62..b86d8a63a8e 100644
--- a/gui/widgets/grid.cpp
+++ b/gui/widgets/grid.cpp
@@ -760,8 +760,6 @@ void GridWidget::updateGrid() {
 
 void GridWidget::assignEntriesToItems() {
 	// Assign entries from _visibleEntries to each GridItem in _gridItems
-	if (_visibleEntryList.empty())
-		return;
 
 	// In case we have less ContainerWidgets than the number of visible entries
 	if (_visibleEntryList.size() > _gridItems.size()) {


Commit: c6adcbc1dcaf176f1fe6263910be3dd4019241b2
    https://github.com/scummvm/scummvm/commit/c6adcbc1dcaf176f1fe6263910be3dd4019241b2
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-01T15:19:55+02:00

Commit Message:
GUI: Fix memory leak when resizing grid widget

(cherry picked from commit def0624ee9dc877175f4564f3e93e6f08a7d6c4a)

Changed paths:
    gui/widgets/grid.cpp


diff --git a/gui/widgets/grid.cpp b/gui/widgets/grid.cpp
index b86d8a63a8e..b576d4bad94 100644
--- a/gui/widgets/grid.cpp
+++ b/gui/widgets/grid.cpp
@@ -933,6 +933,8 @@ void GridWidget::reflowLayout() {
 	_extraIconHeight = _extraIconWidth / 4;
 
 	if ((oldThumbnailHeight != _thumbnailHeight) || (oldThumbnailWidth != _thumbnailWidth)) {
+		unloadSurfaces(_platformIcons);
+		unloadSurfaces(_languageIcons);
 		unloadSurfaces(_loadedSurfaces);
 		reloadThumbnails();
 		loadFlagIcons();


Commit: 7dca536b266bbc72e77a01f7581832bc2acc75c8
    https://github.com/scummvm/scummvm/commit/7dca536b266bbc72e77a01f7581832bc2acc75c8
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-01T15:19:55+02:00

Commit Message:
GUI: Avoid useless surface copy before scaling

By using the const rawSurface function instead of the surfacePtr one,
there is no need to create a copy of the const argument.

(cherry picked from commit d21b42950a11db33be0952f3fe28bdc58ce9b9d2)

Changed paths:
    gui/widget.cpp


diff --git a/gui/widget.cpp b/gui/widget.cpp
index d7ac4fdacb3..0b39e7df519 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -594,12 +594,7 @@ const Graphics::ManagedSurface *scaleGfx(const Graphics::ManagedSurface *gfx, in
 	w = nw;
 	h = nh;
 
-	Graphics::ManagedSurface tmp(*gfx);
-
-	const Graphics::ManagedSurface *tmp2 = new Graphics::ManagedSurface(tmp.surfacePtr()->scale(w, h, filtering));
-	tmp.free();
-
-	return tmp2;
+	return new Graphics::ManagedSurface(gfx->rawSurface().scale(w, h, filtering));
 }
 
 PicButtonWidget::PicButtonWidget(GuiObject *boss, int x, int y, int w, int h, const Common::U32String &tooltip, uint32 cmd, uint8 hotkey)


Commit: 392553d9b208d11cffa2dd0013436ffe467cd8af
    https://github.com/scummvm/scummvm/commit/392553d9b208d11cffa2dd0013436ffe467cd8af
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-01T15:28:39+02:00

Commit Message:
GUI: Redraw editable widget and move its caret when text is set by code

(cherry picked from commit ea560b5dabd361b3988818e4f72e52858c331963)

Changed paths:
    gui/widgets/editable.cpp
    gui/widgets/edittext.cpp


diff --git a/gui/widgets/editable.cpp b/gui/widgets/editable.cpp
index 8591911c9cf..d14d3db25eb 100644
--- a/gui/widgets/editable.cpp
+++ b/gui/widgets/editable.cpp
@@ -72,7 +72,8 @@ void EditableWidget::setEditString(const Common::U32String &str) {
 	// TODO: We probably should filter the input string here,
 	// e.g. using tryInsertChar.
 	_editString = str;
-	_caretPos = 0;
+	setCaretPos(str.size());
+	markAsDirty();
 }
 
 bool EditableWidget::tryInsertChar(byte c, int pos) {
diff --git a/gui/widgets/edittext.cpp b/gui/widgets/edittext.cpp
index 7af1d4225d4..6097d42e813 100644
--- a/gui/widgets/edittext.cpp
+++ b/gui/widgets/edittext.cpp
@@ -33,10 +33,10 @@ EditTextWidget::EditTextWidget(GuiObject *boss, int x, int y, int w, int h, cons
 	_type = kEditTextWidget;
 	_finishCmd = finishCmd;
 
+	_leftPadding = _rightPadding = 0;
+
 	setEditString(text);
 	setFontStyle(font);
-
-	_leftPadding = _rightPadding = 0;
 }
 
 EditTextWidget::EditTextWidget(GuiObject *boss, const Common::String &name, const Common::U32String &text, const Common::U32String &tooltip, uint32 cmd, uint32 finishCmd, ThemeEngine::FontStyle font)
@@ -45,10 +45,10 @@ EditTextWidget::EditTextWidget(GuiObject *boss, const Common::String &name, cons
 	_type = kEditTextWidget;
 	_finishCmd = finishCmd;
 
+	_leftPadding = _rightPadding = 0;
+
 	setEditString(text);
 	setFontStyle(font);
-
-	_leftPadding = _rightPadding = 0;
 }
 
 void EditTextWidget::setEditString(const Common::U32String &str) {
@@ -115,11 +115,15 @@ Common::Rect EditTextWidget::getEditRect() const {
 	// Calculate (right - left) difference for editRect's X-axis coordinates:
 	// (_w - 1 - _rightPadding) - (2 + _leftPadding)
 	int editWidth = _w - _rightPadding - _leftPadding - 3;
+	int editHeight = _h - 2;
 	// Ensure r will always be a valid rect
 	if (editWidth < 0) {
 		editWidth = 0;
 	}
-	Common::Rect r(2 + _leftPadding, 1, 2 + _leftPadding + editWidth, _h);
+	if (editHeight < 0) {
+		editHeight = 0;
+	}
+	Common::Rect r(2 + _leftPadding, 1, 2 + _leftPadding + editWidth, 1 + editHeight);
 
 	return r;
 }


Commit: 2c5c8ed4862f8be2aba3d3d0d2f1517169a512e8
    https://github.com/scummvm/scummvm/commit/2c5c8ed4862f8be2aba3d3d0d2f1517169a512e8
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-01T15:43:18+02:00

Commit Message:
GUI: Fix memory leak when loading DEMO icon

(cherry picked from commit 1d715c7bbb0214ffa902ded56cfe9a48aa6325e7)

Changed paths:
    gui/widgets/grid.cpp


diff --git a/gui/widgets/grid.cpp b/gui/widgets/grid.cpp
index b576d4bad94..f2c01641a76 100644
--- a/gui/widgets/grid.cpp
+++ b/gui/widgets/grid.cpp
@@ -933,6 +933,7 @@ void GridWidget::reflowLayout() {
 	_extraIconHeight = _extraIconWidth / 4;
 
 	if ((oldThumbnailHeight != _thumbnailHeight) || (oldThumbnailWidth != _thumbnailWidth)) {
+		unloadSurfaces(_extraIcons);
 		unloadSurfaces(_platformIcons);
 		unloadSurfaces(_languageIcons);
 		unloadSurfaces(_loadedSurfaces);




More information about the Scummvm-git-logs mailing list