[Scummvm-git-logs] scummvm master -> 7d9e181ad6552d7b5ee553c8d437ffead85fb8a5

sev- noreply at scummvm.org
Sun Aug 2 00:24:22 UTC 2026


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

Summary:
82353a12fd MACVENTURE: Fix Clean Up placing window items outside their window
7394130202 MACVENTURE: Keep the whole last message visible in the output console
7d9e181ad6 MACVENTURE: Show the watch cursor while processing a command


Commit: 82353a12fd43c9506445f9f2500b6afc38d67885
    https://github.com/scummvm/scummvm/commit/82353a12fd43c9506445f9f2500b6afc38d67885
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-08-02T02:24:18+02:00

Commit Message:
MACVENTURE: Fix Clean Up placing window items outside their window

cleanUp() ran its layout using the window's global on-screen bounds from
getInnerDimensions(), but object bounds from getObjBounds() are in
window-content-relative coordinates. This classified every item as
off-screen and stored global coordinates back into the relative PosX/PosY
attributes, so items ended up drawn outside the window and the window
appeared empty. Run the layout in the relative coordinate space instead.

Changed paths:
    engines/macventure/macventure.cpp


diff --git a/engines/macventure/macventure.cpp b/engines/macventure/macventure.cpp
index d4492d90d24..e191d313e9f 100644
--- a/engines/macventure/macventure.cpp
+++ b/engines/macventure/macventure.cpp
@@ -694,7 +694,8 @@ Item MacVentureEngine::removeOutlier(Layout &layout, bool flag, Common::Rect rec
 
 void MacVentureEngine::cleanUp(WindowReference reference) {
 	const WindowData &data = _gui->getWindowData(reference);
-	Common::Rect windowBounds = _gui->findWindow(reference)->getInnerDimensions();
+	Common::Rect innerDims = _gui->findWindow(reference)->getInnerDimensions();
+	Common::Rect windowBounds(0, 0, innerDims.width(), innerDims.height());
 	Common::Array<Item> items;
 
 	Layout onScreen, offScreen;


Commit: 739413020220303f49969443bc0c809f01d9a4e7
    https://github.com/scummvm/scummvm/commit/739413020220303f49969443bc0c809f01d9a4e7
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-08-02T02:24:18+02:00

Commit Message:
MACVENTURE: Keep the whole last message visible in the output console

The output console has no input line, but printText() briefly marks the
window editable to trigger the auto-scroll on new text. While editable,
appendText() reserves one extra line of scroll for an input line, which
pushed the first line of the last message out of view so only its final
line stayed visible. Pin the scroll to the real bottom of the text after
appending, via a new MacTextWindow::scrollToBottom() helper.

Changed paths:
    engines/macventure/gui.cpp
    graphics/macgui/mactextwindow.h


diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp
index 66ad534c9b9..1e799a628fe 100644
--- a/engines/macventure/gui.cpp
+++ b/engines/macventure/gui.cpp
@@ -1123,6 +1123,7 @@ void Gui::printText(const Common::String &text) {
 	_outConsoleWindow->setEditable(true);
 	_outConsoleWindow->appendText(text + '\n');
 	_outConsoleWindow->setEditable(false);
+	_outConsoleWindow->scrollToBottom();
 }
 
 void Gui::showPrebuiltDialog(PrebuiltDialogs type, const Common::String &title) {
diff --git a/graphics/macgui/mactextwindow.h b/graphics/macgui/mactextwindow.h
index 76921f4f62f..50fc85714e0 100644
--- a/graphics/macgui/mactextwindow.h
+++ b/graphics/macgui/mactextwindow.h
@@ -50,6 +50,8 @@ public:
 	void clearText();
 	void setMarkdownText(const Common::U32String &str);
 
+	void scrollToBottom() { _mactext->_scrollPos = MAX<int>(0, _mactext->getTextHeight() - getInnerDimensions().height()); }
+
 	void setEditable(bool editable) { _editable = editable; _mactext->setEditable(editable); }
 	void setActive(bool active) override { MacWindow::setActive(active); if (_editable) _mactext->setActive(active); }
 	void setSelectable(bool selectable) { _selectable = selectable; }


Commit: 7d9e181ad6552d7b5ee553c8d437ffead85fb8a5
    https://github.com/scummvm/scummvm/commit/7d9e181ad6552d7b5ee553c8d437ffead85fb8a5
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-08-02T02:24:18+02:00

Commit Message:
MACVENTURE: Show the watch cursor while processing a command

The engine ran command scripts and the following room/graphics update
synchronously without any cursor feedback, so the image just froze until
the next frame appeared. Switch to the watch cursor before running a
command and restore the arrow once it resolves, matching the original.

Changed paths:
    engines/macventure/gui.cpp
    engines/macventure/gui.h
    engines/macventure/macventure.cpp


diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp
index 1e799a628fe..983f7bc492c 100644
--- a/engines/macventure/gui.cpp
+++ b/engines/macventure/gui.cpp
@@ -1126,6 +1126,11 @@ void Gui::printText(const Common::String &text) {
 	_outConsoleWindow->scrollToBottom();
 }
 
+void Gui::setWaitCursor(bool wait) {
+	_wm.replaceCursor(wait ? Graphics::kMacCursorWatch : Graphics::kMacCursorArrow);
+	g_system->updateScreen();
+}
+
 void Gui::showPrebuiltDialog(PrebuiltDialogs type, const Common::String &title) {
 	closeDialog();
 	_dialog = new Dialog(this, type, title);
diff --git a/engines/macventure/gui.h b/engines/macventure/gui.h
index d01a9e4ee03..a9a14a9f4ae 100644
--- a/engines/macventure/gui.h
+++ b/engines/macventure/gui.h
@@ -163,6 +163,8 @@ public:
 
 	void printText(const Common::String &text);
 
+	void setWaitCursor(bool wait);
+
 	//Dialog interactions
 	void showPrebuiltDialog(PrebuiltDialogs type, const Common::String &title = "");
 	bool isDialogOpen();
diff --git a/engines/macventure/macventure.cpp b/engines/macventure/macventure.cpp
index e191d313e9f..ffee1e84d9c 100644
--- a/engines/macventure/macventure.cpp
+++ b/engines/macventure/macventure.cpp
@@ -171,6 +171,10 @@ Common::Error MacVentureEngine::run() {
 			if (_prepared) {
 				_prepared = false;
 
+				bool busy = _cmdReady || _halted;
+				if (busy)
+					_gui->setWaitCursor(true);
+
 				if (!_halted)
 					updateState(false);
 
@@ -190,6 +194,9 @@ Common::Error MacVentureEngine::run() {
 				if (_gameState == kGameStateLosing) {
 					endGame();
 				}
+
+				if (busy)
+					_gui->setWaitCursor(false);
 			}
 		}
 		refreshScreen();




More information about the Scummvm-git-logs mailing list