[Scummvm-git-logs] scummvm master -> 93fa9318d505186bcf314cd2d8df80dfc6cd8fd8
lephilousophe
noreply at scummvm.org
Sat Apr 25 11:07:43 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
9b21baacd4 GUI: Properly chain focus change on dialog opening
93fa9318d5 GUI: Keep using _scrollPos as an integer when calculating
Commit: 9b21baacd488275fa33d82c03c51cc673cf542ea
https://github.com/scummvm/scummvm/commit/9b21baacd488275fa33d82c03c51cc673cf542ea
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2026-04-25T12:57:30+02:00
Commit Message:
GUI: Properly chain focus change on dialog opening
Release focus first, then give it to the new dialog.
This is the reverse of closeTopDialog.
Changed paths:
gui/gui-manager.cpp
diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index 02de69aa7c9..6e90f4f5b7a 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -718,11 +718,11 @@ void GuiManager::restoreState() {
}
void GuiManager::openDialog(Dialog *dialog) {
- giveFocusToDialog(dialog);
-
if (!_dialogStack.empty())
getTopDialog()->lostFocus();
+ giveFocusToDialog(dialog);
+
_dialogStack.push(dialog);
// We were already ready to redraw a new dialog
// Redraw fully to ensure a proper draw of the whole stack
Commit: 93fa9318d505186bcf314cd2d8df80dfc6cd8fd8
https://github.com/scummvm/scummvm/commit/93fa9318d505186bcf314cd2d8df80dfc6cd8fd8
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2026-04-25T13:06:27+02:00
Commit Message:
GUI: Keep using _scrollPos as an integer when calculating
Only keep it float for scrolling stuff.
Changed paths:
gui/widgets/grid.cpp
diff --git a/gui/widgets/grid.cpp b/gui/widgets/grid.cpp
index d80081287b9..1f2b517907e 100644
--- a/gui/widgets/grid.cpp
+++ b/gui/widgets/grid.cpp
@@ -737,7 +737,7 @@ bool GridWidget::calcVisibleEntries() {
bool needsReload = false;
int nFirstVisibleItem = 0, nLastVisibleItem = 0;
- int temp = lastItemBeforeY(_sortedEntryList, _scrollPos);
+ int temp = lastItemBeforeY(_sortedEntryList, (int)_scrollPos);
nFirstVisibleItem = temp;
// We want the leftmost item from the topmost visible row, so we traverse backwards
while ((nFirstVisibleItem >= 0) &&
@@ -747,7 +747,7 @@ bool GridWidget::calcVisibleEntries() {
nFirstVisibleItem++;
nFirstVisibleItem = (nFirstVisibleItem < 0) ? 0 : nFirstVisibleItem;
- nLastVisibleItem = lastItemBeforeY(_sortedEntryList, _scrollPos + _scrollWindowHeight);
+ nLastVisibleItem = lastItemBeforeY(_sortedEntryList, (int)_scrollPos + _scrollWindowHeight);
nLastVisibleItem = (nLastVisibleItem < 0) ? 0 : nLastVisibleItem;
if ((nFirstVisibleItem != _firstVisibleItem) || (nLastVisibleItem != _lastVisibleItem) || (_isGridInvalid)) {
@@ -886,10 +886,10 @@ void GridWidget::scrollToEntry(int id, bool forceToTop) {
if (forceToTop) {
newScrollPos = _sortedEntryList[i]->y + _scrollWindowPaddingY + _gridYSpacing;
} else {
- if (_sortedEntryList[i]->y < _scrollPos) {
+ if (_sortedEntryList[i]->y < (int)_scrollPos) {
// Item is above the visible view
newScrollPos = _sortedEntryList[i]->y - _scrollWindowPaddingY - _gridYSpacing;
- } else if (_sortedEntryList[i]->y > _scrollPos + _scrollWindowHeight - _gridItemHeight - _trayHeight) {
+ } else if (_sortedEntryList[i]->y > (int)_scrollPos + _scrollWindowHeight - _gridItemHeight - _trayHeight) {
// Item is below the visible view
newScrollPos = _sortedEntryList[i]->y - _scrollWindowHeight + _gridItemHeight + _trayHeight;
} else {
@@ -937,7 +937,7 @@ void GridWidget::assignEntriesToItems() {
item->setVisible(true);
GridItemInfo *entry = _visibleEntryList[k];
item->setActiveEntry(*entry);
- item->setPos(entry->x, entry->y - _scrollPos);
+ item->setPos(entry->x, entry->y - (int)_scrollPos);
item->setSize(entry->w, entry->h);
item->update();
}
@@ -1093,8 +1093,8 @@ void GridWidget::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
// Work in progress
switch (cmd) {
case kSetPositionCmd:
- if (_scrollPos != (float)data) {
- _scrollPos = (float)data;
+ if ((int)_scrollPos != (int)data) {
+ _scrollPos = data;
_fluidScroller->stopAnimation();
_scrollPos = _fluidScroller->setPosition(_scrollPos, false);
@@ -1272,7 +1272,7 @@ void GridWidget::reflowLayout() {
void GridWidget::openTrayAtSelected() {
if (_selectedEntry) {
- GridItemTray *tray = new GridItemTray(this, _x + _selectedEntry->x - _gridXSpacing / 3, _y + _selectedEntry->y + _selectedEntry->h - _scrollPos,
+ GridItemTray *tray = new GridItemTray(this, _x + _selectedEntry->x - _gridXSpacing / 3, _y + _selectedEntry->y + _selectedEntry->h - (int)_scrollPos,
_gridItemWidth + 2 * (_gridXSpacing / 3), _trayHeight, _selectedEntry->entryID, this);
tray->enableLoadButton(_selectedEntry->canLoadGame);
@@ -1304,7 +1304,7 @@ void GridWidget::setFilter(const Common::U32String &filter) {
_filter = filt;
// Reset the scrollbar and deselect everything if filter has changed
- _scrollPos = 0;
+ _scrollPos = 0.f;
_selectedEntry = nullptr;
sortGroups();
More information about the Scummvm-git-logs
mailing list