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

criezy criezy at scummvm.org
Tue Jul 24 01:42:16 CEST 2018


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

Summary:
f7a4b74130 GUI: Fix container widgets not receiving events
211ef61fdf GUI: Set ScrollContainer single step to kLineHeight instead of 1 pixel
bd98c6f045 GUI: Handle continous scrolling in ScrollContainer
7b0402fbb0 GUI: Fix scrollbar bottom arrow being displayed as up arrow after mouse up


Commit: f7a4b74130fa1f02c64811dd4d14f257512e861b
    https://github.com/scummvm/scummvm/commit/f7a4b74130fa1f02c64811dd4d14f257512e861b
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00

Commit Message:
GUI: Fix container widgets not receiving events

Changed paths:
    gui/widget.cpp
    gui/widgets/scrollcontainer.cpp


diff --git a/gui/widget.cpp b/gui/widget.cpp
index 1dfd069..2ac73dd 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -748,7 +748,10 @@ bool ContainerWidget::containsWidget(Widget *w) const {
 }
 
 Widget *ContainerWidget::findWidget(int x, int y) {
-	return findWidgetInChain(_firstWidget, x, y);
+	Widget *w = findWidgetInChain(_firstWidget, x, y);
+	if (w)
+		return w;
+	return this;
 }
 
 void ContainerWidget::removeWidget(Widget *widget) {
diff --git a/gui/widgets/scrollcontainer.cpp b/gui/widgets/scrollcontainer.cpp
index 7994c00..33f7e7f 100644
--- a/gui/widgets/scrollcontainer.cpp
+++ b/gui/widgets/scrollcontainer.cpp
@@ -153,7 +153,10 @@ bool ScrollContainerWidget::containsWidget(Widget *w) const {
 Widget *ScrollContainerWidget::findWidget(int x, int y) {
 	if (_verticalScroll->isVisible() && x >= _w - _verticalScroll->getWidth())
 		return _verticalScroll;
-	return Widget::findWidgetInChain(_firstWidget, x + _scrolledX, y + _scrolledY);
+	Widget *w = Widget::findWidgetInChain(_firstWidget, x + _scrolledX, y + _scrolledY);
+	if (w)
+		return w;
+	return this;
 }
 
 Common::Rect ScrollContainerWidget::getClipRect() const {


Commit: 211ef61fdf1f833267788511d5bcb354db78ee45
    https://github.com/scummvm/scummvm/commit/211ef61fdf1f833267788511d5bcb354db78ee45
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00

Commit Message:
GUI: Set ScrollContainer single step to kLineHeight instead of 1 pixel

The single step is the amount of scroll done when clicking once on
the scrollbar up or down arrow. It used to be 1 entry, but for the
ScrollContainer 1 entry is 1 pixel, which was too litle. Now the
single step can be set to a multiple entries.

Changed paths:
    gui/widgets/scrollbar.cpp
    gui/widgets/scrollbar.h
    gui/widgets/scrollcontainer.cpp


diff --git a/gui/widgets/scrollbar.cpp b/gui/widgets/scrollbar.cpp
index 38cdc6f..c45b4e0 100644
--- a/gui/widgets/scrollbar.cpp
+++ b/gui/widgets/scrollbar.cpp
@@ -47,6 +47,7 @@ ScrollBarWidget::ScrollBarWidget(GuiObject *boss, int x, int y, int w, int h)
 	_numEntries = 0;
 	_entriesPerPage = 0;
 	_currentPos = 0;
+	_singleStep = 1;
 
 	_repeatTimer = 0;
 }
@@ -60,12 +61,12 @@ void ScrollBarWidget::handleMouseDown(int x, int y, int button, int clickCount)
 
 	if (y <= UP_DOWN_BOX_HEIGHT) {
 		// Up arrow
-		_currentPos--;
+		_currentPos -= _singleStep;
 		_repeatTimer = g_system->getMillis() + kRepeatInitialDelay;
 		_draggingPart = kUpArrowPart;
 	} else if (y >= _h - UP_DOWN_BOX_HEIGHT) {
 		// Down arrow
-		_currentPos++;
+		_currentPos += _singleStep;
 		_repeatTimer = g_system->getMillis() + kRepeatInitialDelay;
 		_draggingPart = kDownArrowPart;
 	} else if (y < _sliderPos) {
@@ -93,9 +94,9 @@ void ScrollBarWidget::handleMouseWheel(int x, int y, int direction) {
 		return;
 
 	if (direction < 0) {
-		_currentPos--;
+		_currentPos -= _singleStep;
 	} else {
-		_currentPos++;
+		_currentPos += _singleStep;
 	}
 
 	// Make sure that _currentPos is still inside the bounds
@@ -146,9 +147,9 @@ void ScrollBarWidget::handleTickle() {
 			const int old_pos = _currentPos;
 
 			if (_part == kUpArrowPart)
-				_currentPos -= 3;
+				_currentPos -= 3 * _singleStep;
 			else if (_part == kDownArrowPart)
-				_currentPos += 3;
+				_currentPos += 3 * _singleStep;
 
 			checkBounds(old_pos);
 
diff --git a/gui/widgets/scrollbar.h b/gui/widgets/scrollbar.h
index a1181b9..9fdc94c 100644
--- a/gui/widgets/scrollbar.h
+++ b/gui/widgets/scrollbar.h
@@ -60,6 +60,7 @@ public:
 	int		_numEntries;
 	int		_entriesPerPage;
 	int		_currentPos;
+	int		_singleStep;
 
 public:
 	ScrollBarWidget(GuiObject *boss, int x, int y, int w, int h);
diff --git a/gui/widgets/scrollcontainer.cpp b/gui/widgets/scrollcontainer.cpp
index 33f7e7f..3c2e7aa 100644
--- a/gui/widgets/scrollcontainer.cpp
+++ b/gui/widgets/scrollcontainer.cpp
@@ -73,6 +73,7 @@ void ScrollContainerWidget::recalc() {
 	_verticalScroll->_numEntries = h;
 	_verticalScroll->_currentPos = _scrolledY;
 	_verticalScroll->_entriesPerPage = _limitH;
+	_verticalScroll->_singleStep = kLineHeight;
 	_verticalScroll->setPos(_w - scrollbarWidth, _scrolledY+1);
 	_verticalScroll->setSize(scrollbarWidth, _limitH -2);
 }


Commit: bd98c6f045dab0c87ebdc08a542ef8486b740bea
    https://github.com/scummvm/scummvm/commit/bd98c6f045dab0c87ebdc08a542ef8486b740bea
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00

Commit Message:
GUI: Handle continous scrolling in ScrollContainer

When keeping the scrollbar up or down arrow pressed in a
ScrollContainer is now scrolls continously, as it was
already doing in the ListWidget.

Changed paths:
    gui/widgets/scrollbar.h


diff --git a/gui/widgets/scrollbar.h b/gui/widgets/scrollbar.h
index 9fdc94c..ad7e83f 100644
--- a/gui/widgets/scrollbar.h
+++ b/gui/widgets/scrollbar.h
@@ -72,6 +72,7 @@ public:
 	void handleMouseEntered(int button)	{ setFlags(WIDGET_HILITED); }
 	void handleMouseLeft(int button)	{ clearFlags(WIDGET_HILITED); _part = kNoPart; markAsDirty(); }
 	void handleTickle();
+	bool wantsFocus() { return true; }
 
 	// FIXME - this should be private, but then we also have to add accessors
 	// for _numEntries, _entriesPerPage and _currentPos. This again leads to the question:


Commit: 7b0402fbb0dc9fa5759b7f059ada915d72677e4d
    https://github.com/scummvm/scummvm/commit/7b0402fbb0dc9fa5759b7f059ada915d72677e4d
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2018-07-24T00:27:11+01:00

Commit Message:
GUI: Fix scrollbar bottom arrow being displayed as up arrow after mouse up

Changed paths:
    gui/ThemeEngine.cpp


diff --git a/gui/ThemeEngine.cpp b/gui/ThemeEngine.cpp
index d38a03f..867960c 100644
--- a/gui/ThemeEngine.cpp
+++ b/gui/ThemeEngine.cpp
@@ -839,7 +839,7 @@ void ThemeEngine::drawDD(DrawData type, const Common::Rect &r, uint32 dynamic, b
 		return;
 
 	if (kDrawDataDefaults[type].parent != kDDNone && kDrawDataDefaults[type].parent != type)
-		drawDD(kDrawDataDefaults[type].parent, r);
+		drawDD(kDrawDataDefaults[type].parent, r, dynamic);
 
 	Common::Rect area = r;
 	area.clip(_screen.w, _screen.h);





More information about the Scummvm-git-logs mailing list