[Scummvm-git-logs] scummvm master -> 156e0c1f585f0143fdf1407888aedb5df3968a5d

sev- noreply at scummvm.org
Fri Apr 18 21:31:28 UTC 2025


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

Summary:
685f9619bd VIDEO: QTVR: Always try to switch cursor
0c93d96b76 DIRECTOR: Force cursor to change when it is dirty
3416a5aea1 VIDEO: QTVR: Process Quit event
d03868162a DIRECTOR: XTRAS: Pass Quit event to QTVR decoder
156e0c1f58 DIRECTOR: XTRAS: Do not pass events when QTVR video is invisible


Commit: 685f9619bdbcc008314d189deae51230086c3fdc
    https://github.com/scummvm/scummvm/commit/685f9619bdbcc008314d189deae51230086c3fdc
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-04-18T22:49:30+02:00

Commit Message:
VIDEO: QTVR: Always try to switch cursor

Since we do not know if it was altered by Director, always switch
cursor on mouse hover

Changed paths:
    video/qtvr_decoder.cpp


diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 5548471cc44..fdc4e170759 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -1477,9 +1477,6 @@ void QuickTimeDecoder::cleanupCursors() {
 }
 
 void QuickTimeDecoder::setCursor(int curId) {
-	if (_currentQTVRCursor == curId)
-		return;
-
 	_currentQTVRCursor = curId;
 
 	if (!_dataBundle) {


Commit: 0c93d96b769d41bbba2f23fbde308bd53ed4dda2
    https://github.com/scummvm/scummvm/commit/0c93d96b769d41bbba2f23fbde308bd53ed4dda2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-04-18T22:51:30+02:00

Commit Message:
DIRECTOR: Force cursor to change when it is dirty

QTVR movies may change cursor without Director aware of it,
thus, we always enforce the cursror change when it is marked
dirty via `cursor` Lingo command.

Changed paths:
    engines/director/score.cpp


diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index b41814f1b77..7c579a5726c 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -740,7 +740,7 @@ void Score::renderFrame(uint16 frameId, RenderMode mode) {
 	playQueuedSound(); // this is currently only used in FPlayXObj
 
 	if (_cursorDirty) {
-		renderCursor(_movie->getWindow()->getMousePos());
+		renderCursor(_movie->getWindow()->getMousePos(), true);
 		_cursorDirty = false;
 	}
 	uint32 end = g_system->getMillis(false);


Commit: 3416a5aea157b3a97de156f771b05b2e6a79b8d9
    https://github.com/scummvm/scummvm/commit/3416a5aea157b3a97de156f771b05b2e6a79b8d9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-04-18T23:21:27+02:00

Commit Message:
VIDEO: QTVR: Process Quit event

We want to stop timers here, so the potential cursor update is not
referring to a freed object. Prevents crashing when quitting
Director movies with QTVR panoramas

Changed paths:
    video/qt_decoder.h
    video/qtvr_decoder.cpp


diff --git a/video/qt_decoder.h b/video/qt_decoder.h
index 024d1af7581..2b2b7570829 100644
--- a/video/qt_decoder.h
+++ b/video/qt_decoder.h
@@ -87,6 +87,7 @@ public:
 	void handleMouseMove(int16 x, int16 y);
 	void handleMouseButton(bool isDown, int16 x = -1, int16 y = -1, bool repeat = false);
 	void handleKey(Common::KeyState &state, bool down, bool repeat = false);
+	void handleQuit();
 
 	Common::Point getLastClick() { return _mouseDrag; }
 
diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index fdc4e170759..13e7cba69b9 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -1013,6 +1013,13 @@ void QuickTimeDecoder::setClickedHotSpot(int id) {
 // INTERACTIVITY
 //////////////////////////////
 
+void QuickTimeDecoder::handleQuit() {
+	if (_repeatTimerActive) {
+		_repeatTimerActive = false;
+		g_system->getTimerManager()->removeTimerProc(&repeatCallback);
+	}
+}
+
 void QuickTimeDecoder::handleMouseMove(int16 x, int16 y) {
 	if (_qtvrType == QTVRType::OBJECT)
 		handleObjectMouseMove(x, y);


Commit: d03868162a211d7427a5f2ea98d058a79cc7bd7b
    https://github.com/scummvm/scummvm/commit/d03868162a211d7427a5f2ea98d058a79cc7bd7b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-04-18T23:21:42+02:00

Commit Message:
DIRECTOR: XTRAS: Pass Quit event to QTVR decoder

Changed paths:
    engines/director/lingo/xtras/qtvrxtra.cpp


diff --git a/engines/director/lingo/xtras/qtvrxtra.cpp b/engines/director/lingo/xtras/qtvrxtra.cpp
index 9eda78d2329..97c49e5ef80 100644
--- a/engines/director/lingo/xtras/qtvrxtra.cpp
+++ b/engines/director/lingo/xtras/qtvrxtra.cpp
@@ -1163,6 +1163,9 @@ bool QtvrxtraWidget::processEvent(Common::Event &event) {
 	case Common::EVENT_MOUSEMOVE:
 		_xtra->_video->handleMouseMove(event.mouse.x - _xtra->_rect.left, event.mouse.y - _xtra->_rect.top);
 		return true;
+	case Common::EVENT_QUIT:
+		_xtra->_video->handleQuit();
+		return false;
 	case Common::EVENT_KEYDOWN:
 	case Common::EVENT_KEYUP: {
 		int zoomState = _xtra->_video->getZoomState();


Commit: 156e0c1f585f0143fdf1407888aedb5df3968a5d
    https://github.com/scummvm/scummvm/commit/156e0c1f585f0143fdf1407888aedb5df3968a5d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-04-18T23:29:28+02:00

Commit Message:
DIRECTOR: XTRAS: Do not pass events when QTVR video is invisible

Changed paths:
    engines/director/lingo/xtras/qtvrxtra.cpp


diff --git a/engines/director/lingo/xtras/qtvrxtra.cpp b/engines/director/lingo/xtras/qtvrxtra.cpp
index 97c49e5ef80..4c02599926e 100644
--- a/engines/director/lingo/xtras/qtvrxtra.cpp
+++ b/engines/director/lingo/xtras/qtvrxtra.cpp
@@ -1143,6 +1143,9 @@ QtvrxtraWidget::QtvrxtraWidget(QtvrxtraXtraObject *xtra, Graphics::MacWidget *pa
 }
 
 bool QtvrxtraWidget::processEvent(Common::Event &event) {
+	if (!_xtra->_visible)
+		return false;
+
 	switch (event.type) {
 	case Common::EVENT_LBUTTONDOWN:
 		if (_xtra->_mouseDownHandler.empty()) {




More information about the Scummvm-git-logs mailing list