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

sev- noreply at scummvm.org
Sun Dec 25 15:11:31 UTC 2022


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

Summary:
60ff6984ff GUI: Move keymap descriptions to the left if there isn't enough room
d255fbe671 GUI: Ensure that all keymap widgets fit within the scroll container


Commit: 60ff6984ff74a658475bbbdbefce2e636df440b0
    https://github.com/scummvm/scummvm/commit/60ff6984ff74a658475bbbdbefce2e636df440b0
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-12-25T16:11:27+01:00

Commit Message:
GUI: Move keymap descriptions to the left if there isn't enough room

Changed paths:
    backends/keymapper/remap-widget.cpp


diff --git a/backends/keymapper/remap-widget.cpp b/backends/keymapper/remap-widget.cpp
index a94451b27f3..57fbf0b18ed 100644
--- a/backends/keymapper/remap-widget.cpp
+++ b/backends/keymapper/remap-widget.cpp
@@ -114,29 +114,35 @@ void RemapWidget::reflowActionWidgets() {
 	Keymap *previousKeymap = nullptr;
 
 	for (uint i = 0; i < _actions.size(); i++) {
-		uint x;
-
 		ActionRow &row = _actions[i];
 
 		if (previousKeymap != row.keymap) {
 			previousKeymap = row.keymap;
 
 			// Insert a keymap separator
-			x = 2 * spacing + keyButtonWidth;
+			uint descriptionX = 2 * spacing + keyButtonWidth;
+			uint resetX = getWidth() - spacing - resetButtonWidth;
 
 			KeymapTitleRow keymapTitle = _keymapSeparators[row.keymap];
 			if (keymapTitle.descriptionText) {
-				int descriptionWidth = getWidth() - x - spacing - resetButtonWidth - spacing;
-				descriptionWidth = MAX(0, descriptionWidth);
-
-				keymapTitle.descriptionText->resize(x, y + textYOff, descriptionWidth, kLineHeight, false);
-				keymapTitle.resetButton->resize(x + descriptionWidth, y, resetButtonWidth, buttonHeight, false);
+				int descriptionWidth = resetX - descriptionX - spacing;
+				int descriptionFullWidth = g_gui.getStringWidth(keymapTitle.descriptionText->getLabel());
+
+				if (descriptionWidth < descriptionFullWidth) {
+					descriptionX -= (descriptionFullWidth - descriptionWidth);
+					descriptionWidth = descriptionFullWidth;
+				} else if (descriptionWidth < 0) {
+					descriptionWidth = 0;
+				}
+
+				keymapTitle.descriptionText->resize(descriptionX, y + textYOff, descriptionWidth, kLineHeight, false);
+				keymapTitle.resetButton->resize(resetX, y, resetButtonWidth, buttonHeight, false);
 			}
 
 			y += buttonHeight + spacing;
 		}
 
-		x = spacing;
+		uint x = spacing;
 
 		row.keyButton->resize(x, y, keyButtonWidth, buttonHeight, false);
 


Commit: d255fbe671f6d5f7effa99988131dd92845b8b5b
    https://github.com/scummvm/scummvm/commit/d255fbe671f6d5f7effa99988131dd92845b8b5b
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-12-25T16:11:27+01:00

Commit Message:
GUI: Ensure that all keymap widgets fit within the scroll container

Changed paths:
    backends/keymapper/remap-widget.cpp


diff --git a/backends/keymapper/remap-widget.cpp b/backends/keymapper/remap-widget.cpp
index 57fbf0b18ed..fe15a30231d 100644
--- a/backends/keymapper/remap-widget.cpp
+++ b/backends/keymapper/remap-widget.cpp
@@ -104,7 +104,7 @@ void RemapWidget::reflowActionWidgets() {
 	int spacing = g_gui.xmlEval()->getVar("Globals.KeyMapper.Spacing");
 	int keyButtonWidth = g_gui.xmlEval()->getVar("Globals.KeyMapper.ButtonWidth");
 	int resetButtonWidth = g_gui.xmlEval()->getVar("Globals.KeyMapper.ResetWidth");
-	int labelWidth = getWidth() - (spacing + keyButtonWidth + spacing);
+	int labelWidth = widgetsBoss()->getWidth() - (spacing + keyButtonWidth + spacing);
 	labelWidth = MAX(0, labelWidth);
 
 	uint textYOff = (buttonHeight - kLineHeight) / 2;
@@ -121,7 +121,7 @@ void RemapWidget::reflowActionWidgets() {
 
 			// Insert a keymap separator
 			uint descriptionX = 2 * spacing + keyButtonWidth;
-			uint resetX = getWidth() - spacing - resetButtonWidth;
+			uint resetX = widgetsBoss()->getWidth() - spacing - resetButtonWidth;
 
 			KeymapTitleRow keymapTitle = _keymapSeparators[row.keymap];
 			if (keymapTitle.descriptionText) {




More information about the Scummvm-git-logs mailing list