[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