[Scummvm-git-logs] scummvm master -> adc8847982073fffdb54591039c5c746dc1b181c

npjg nathanael.gentrydb8 at gmail.com
Fri Aug 14 05:24:37 UTC 2020


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

Summary:
adc8847982 DIRECTOR: Make editable texts editable again


Commit: adc8847982073fffdb54591039c5c746dc1b181c
    https://github.com/scummvm/scummvm/commit/adc8847982073fffdb54591039c5c746dc1b181c
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-08-14T01:23:11-04:00

Commit Message:
DIRECTOR: Make editable texts editable again

Changed paths:
    engines/director/channel.cpp
    engines/director/channel.h
    engines/director/lingo/lingo-the.cpp


diff --git a/engines/director/channel.cpp b/engines/director/channel.cpp
index d8a69d329a..cf93328fde 100644
--- a/engines/director/channel.cpp
+++ b/engines/director/channel.cpp
@@ -280,9 +280,23 @@ void Channel::setClean(Sprite *nextSprite, int spriteId, bool partial) {
 		_sprite->updateCast();
 		replaceWidget();
 	}
+
+	setEditable(_sprite->_editable);
+
 	_dirty = false;
 }
 
+void Channel::setEditable(bool editable) {
+	if (_sprite->_cast && _sprite->_cast->_type == kCastText) {
+		_sprite->_cast->setEditable(editable);
+
+		if (_widget) {
+			_widget->_editable = editable;
+			g_director->_wm->setActiveWidget(_widget);
+		}
+	}
+}
+
 void Channel::replaceSprite(Sprite *nextSprite) {
 	if (!nextSprite)
 		return;
diff --git a/engines/director/channel.h b/engines/director/channel.h
index f36824c0d3..b284cd1562 100644
--- a/engines/director/channel.h
+++ b/engines/director/channel.h
@@ -56,6 +56,7 @@ public:
 	void setBbox(int l, int t, int r, int b);
 	void setCast(uint16 castId);
 	void setClean(Sprite *nextSprite, int spriteId, bool partial = false);
+	void setEditable(bool editable);
 	void replaceSprite(Sprite *nextSprite);
 	void replaceWidget();
 	bool updateWidget();
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index f8138927ca..1705f338fb 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1297,8 +1297,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		}
 		break;
 	case kTheEditableText:
-		if (sprite->_cast)
-			sprite->_cast->setEditable(d.asInt());
+		channel->setEditable(d.asInt());
 		break;
 	case kTheForeColor:
 		if (d.asInt() != sprite->_foreColor) {




More information about the Scummvm-git-logs mailing list