[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