[Scummvm-git-logs] scummvm master -> 10c673c7577649d6e83f8572c31363c4dcfd03c9

sev- noreply at scummvm.org
Tue Oct 7 10:11:12 UTC 2025


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:
c8217f990a GRAPHICS: MACGUI: Use scroll logic in MacText for MacTextWindow
10c673c757 GRAPHICS: MACGUI: Avoid text flicker when scrolling MacTextWindow


Commit: c8217f990acc890fe43330ce689602416a8ee695
    https://github.com/scummvm/scummvm/commit/c8217f990acc890fe43330ce689602416a8ee695
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-07T12:07:27+02:00

Commit Message:
GRAPHICS: MACGUI: Use scroll logic in MacText for MacTextWindow

Changed paths:
    graphics/macgui/mactextwindow.cpp
    graphics/macgui/mactextwindow.h


diff --git a/graphics/macgui/mactextwindow.cpp b/graphics/macgui/mactextwindow.cpp
index fed9c160b9f..fd55ea104cd 100644
--- a/graphics/macgui/mactextwindow.cpp
+++ b/graphics/macgui/mactextwindow.cpp
@@ -65,7 +65,6 @@ void MacTextWindow::init() {
 
 	_inputIsDirty = true;
 
-	_scrollPos = 0;
 	_editable = true;
 	_selectable = true;
 
@@ -124,7 +123,7 @@ void MacTextWindow::appendText(const Common::U32String &str, const MacFont *macF
 	_inputIsDirty = true;	//force it to redraw input
 
 	if (_editable) {
-		_scrollPos = MAX<int>(0, _mactext->getTextHeight() - getInnerDimensions().height());
+		_mactext->_scrollPos = MAX<int>(0, _mactext->getTextHeight() - getInnerDimensions().height());
 	}
 
 	if (_wm->_mode & kWMModeWin95)
@@ -259,7 +258,7 @@ void MacTextWindow::calcScrollBar() {
 		maxText = MAX<int>(_mactext->getTextHeight(), displayHeight);
 
 	float scrollSize = (float)maxScrollbar * (float)displayHeight / (float)maxText;
-	float scrollPos = (float)_scrollPos * (float)maxScrollbar / (float)maxText;
+	float scrollPos = (float)_mactext->_scrollPos * (float)maxScrollbar / (float)maxText;
 	setScroll(scrollPos, scrollSize);
 }
 
@@ -315,14 +314,14 @@ bool MacTextWindow::processEvent(Common::Event &event) {
 
 	if (event.type == Common::EVENT_WHEELUP) {
 		//setHighlight(kBorderScrollUp);
-		scroll(-2);
+		_mactext->scroll(-2);
 		calcScrollBar();
 		return true;
 	}
 
 	if (event.type == Common::EVENT_WHEELDOWN) {
 		//setHighlight(kBorderScrollDown);
-		scroll(2);
+		_mactext->scroll(2);
 		calcScrollBar();
 		return true;
 	}
@@ -335,10 +334,10 @@ bool MacTextWindow::processEvent(Common::Event &event) {
 		} else if (event.type == Common::EVENT_LBUTTONUP) {
 			switch (click) {
 			case kBorderScrollUp:
-				scroll(-1);
+				_mactext->scroll(-1);
 				break;
 			case kBorderScrollDown:
-				scroll(1);
+				_mactext->scroll(1);
 				break;
 			default:
 				return false;
@@ -366,20 +365,6 @@ bool MacTextWindow::processEvent(Common::Event &event) {
 	return MacWindow::processEvent(event);
 }
 
-void MacTextWindow::scroll(int delta) {
-	_scrollPos += delta * kConScrollStep;
-
-	if (_editable)
-		_scrollPos = CLIP<int>(_scrollPos, 0, _mactext->getTextHeight() - kConScrollStep);
-	else
-		_scrollPos = CLIP<int>(_scrollPos, 0, MAX<int>(0, _mactext->getTextHeight() - getInnerDimensions().height()));
-
-	_contentIsDirty = true;
-	_borderIsDirty = true;
-
-	_mactext->scroll(delta);
-}
-
 void MacTextWindow::undrawInput() {
 	for (uint i = 0; i < _inputTextHeight; i++)
 		_mactext->removeLastLine();
diff --git a/graphics/macgui/mactextwindow.h b/graphics/macgui/mactextwindow.h
index 2aa95481277..1d1285115d7 100644
--- a/graphics/macgui/mactextwindow.h
+++ b/graphics/macgui/mactextwindow.h
@@ -98,7 +98,6 @@ public:
 private:
 	void init();
 
-	void scroll(int delta);
 	void calcScrollBar();
 
 	void undrawInput();
@@ -109,8 +108,6 @@ public:
 	bool _editable;
 	bool _selectable;
 
-	int _scrollPos;
-
 private:
 	MacText *_mactext;
 	const MacFont *_font;


Commit: 10c673c7577649d6e83f8572c31363c4dcfd03c9
    https://github.com/scummvm/scummvm/commit/10c673c7577649d6e83f8572c31363c4dcfd03c9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-07T12:07:27+02:00

Commit Message:
GRAPHICS: MACGUI: Avoid text flicker when scrolling MacTextWindow

Changed paths:
    graphics/macgui/mactextwindow.cpp
    graphics/macgui/macwindow.cpp


diff --git a/graphics/macgui/mactextwindow.cpp b/graphics/macgui/mactextwindow.cpp
index fd55ea104cd..c8925ace3b0 100644
--- a/graphics/macgui/mactextwindow.cpp
+++ b/graphics/macgui/mactextwindow.cpp
@@ -329,14 +329,17 @@ bool MacTextWindow::processEvent(Common::Event &event) {
 	if (click == kBorderScrollUp || click == kBorderScrollDown) {
 		if (event.type == Common::EVENT_LBUTTONDOWN) {
 			setHighlight(click);
+			_mactext->scroll(0);
 			calcScrollBar();
 			return true;
 		} else if (event.type == Common::EVENT_LBUTTONUP) {
 			switch (click) {
 			case kBorderScrollUp:
+				setHighlight(kBorderNone);
 				_mactext->scroll(-1);
 				break;
 			case kBorderScrollDown:
+				setHighlight(kBorderNone);
 				_mactext->scroll(1);
 				break;
 			default:
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index 10bf2302fcf..7225b67b22c 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -325,8 +325,13 @@ void MacWindow::drawBorder() {
 		return;
 	}
 
-	if (_highlightedPart == kBorderScrollUp || _highlightedPart == kBorderScrollDown)
+	if (_highlightedPart == kBorderScrollUp || _highlightedPart == kBorderScrollDown) {
+		_macBorder.drawScrollBar(g);
+
+		_highlightedPart = kBorderNone;
+
 		setHighlight(kBorderNone);
+	}
 }
 
 void MacWindow::drawBorderFromSurface(ManagedSurface *g, uint32 flags) {




More information about the Scummvm-git-logs mailing list