From 28ce721ff522083302fecfb68425431034b95a6c Mon Sep 17 00:00:00 2001 From: iota97 Date: Sun, 12 Jan 2020 11:52:49 +0100 Subject: [PATCH 1/3] Snap resize --- UI/TouchControlLayoutScreen.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/UI/TouchControlLayoutScreen.cpp b/UI/TouchControlLayoutScreen.cpp index 65ebb654cf..4483678f89 100644 --- a/UI/TouchControlLayoutScreen.cpp +++ b/UI/TouchControlLayoutScreen.cpp @@ -260,9 +260,16 @@ bool TouchControlLayoutScreen::touch(const TouchInput &touch) { float diffX = (touch.x - startX_); float diffY = -(touch.y - startY_); + // Snap to grid + if (g_Config.bTouchSnapToGrid) { + diffX -= (int)(touch.x - startX_) % (g_Config.iTouchSnapGridSize/2); + diffY += (int)(touch.y - startY_) % (g_Config.iTouchSnapGridSize/2); + } + float movementScale = 0.02f; float newScale = startScale_ + diffY * movementScale; float newSpacing = startSpacing_ + diffX * movementScale; + if (newScale > 3.0f) newScale = 3.0f; if (newScale < 0.5f) newScale = 0.5f; if (newSpacing > 3.0f) newSpacing = 3.0f; From f8632b9142ee96cf512f33118e7831ed0ebe6037 Mon Sep 17 00:00:00 2001 From: iota97 Date: Sun, 12 Jan 2020 11:54:06 +0100 Subject: [PATCH 2/3] Remove extra newline --- UI/TouchControlLayoutScreen.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/UI/TouchControlLayoutScreen.cpp b/UI/TouchControlLayoutScreen.cpp index 4483678f89..d0d6886879 100644 --- a/UI/TouchControlLayoutScreen.cpp +++ b/UI/TouchControlLayoutScreen.cpp @@ -265,11 +265,9 @@ bool TouchControlLayoutScreen::touch(const TouchInput &touch) { diffX -= (int)(touch.x - startX_) % (g_Config.iTouchSnapGridSize/2); diffY += (int)(touch.y - startY_) % (g_Config.iTouchSnapGridSize/2); } - float movementScale = 0.02f; float newScale = startScale_ + diffY * movementScale; float newSpacing = startSpacing_ + diffX * movementScale; - if (newScale > 3.0f) newScale = 3.0f; if (newScale < 0.5f) newScale = 0.5f; if (newSpacing > 3.0f) newSpacing = 3.0f; From 53ba31aef8641b3d15a1afaca9752c1c15c46437 Mon Sep 17 00:00:00 2001 From: iota97 Date: Sun, 12 Jan 2020 14:28:51 +0100 Subject: [PATCH 3/3] Avoid divison by 0 --- UI/TouchControlLayoutScreen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UI/TouchControlLayoutScreen.cpp b/UI/TouchControlLayoutScreen.cpp index d0d6886879..8137cd6f23 100644 --- a/UI/TouchControlLayoutScreen.cpp +++ b/UI/TouchControlLayoutScreen.cpp @@ -340,7 +340,7 @@ void TouchControlLayoutScreen::CreateViews() { // ->OnChange.Handle(this, &GameSettingsScreen::OnChangeControlScaling); CheckBox *snap = new CheckBox(&g_Config.bTouchSnapToGrid, di->T("Snap"), "", new AnchorLayoutParams(leftColumnWidth, WRAP_CONTENT, 10, NONE, NONE, 228)); - PopupSliderChoice *gridSize = new PopupSliderChoice(&g_Config.iTouchSnapGridSize, 1, 256, di->T("Grid"), screenManager(), "", new AnchorLayoutParams(leftColumnWidth, WRAP_CONTENT, 10, NONE, NONE, 158)); + PopupSliderChoice *gridSize = new PopupSliderChoice(&g_Config.iTouchSnapGridSize, 2, 256, di->T("Grid"), screenManager(), "", new AnchorLayoutParams(leftColumnWidth, WRAP_CONTENT, 10, NONE, NONE, 158)); gridSize->SetEnabledPtr(&g_Config.bTouchSnapToGrid); mode_ = new ChoiceStrip(ORIENT_VERTICAL, new AnchorLayoutParams(leftColumnWidth, WRAP_CONTENT, 10, NONE, NONE, 140 + 158 + 64 + 10));