From dfe5bf1ef7e47035826e37d3626767e2b7c14df0 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Mon, 27 Apr 2026 21:47:51 +0200 Subject: [PATCH] Mirror upstream keyboard changes --- src/components/themes/BaseTheme.cpp | 5 ++++- src/components/themes/BaseTheme.h | 8 ++++++-- src/components/themes/lyra/Lyra3CoversTheme.h | 4 +++- src/components/themes/lyra/LyraTheme.cpp | 5 ++++- src/components/themes/lyra/LyraTheme.h | 4 +++- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/components/themes/BaseTheme.cpp b/src/components/themes/BaseTheme.cpp index 51d0212f..11441bcb 100644 --- a/src/components/themes/BaseTheme.cpp +++ b/src/components/themes/BaseTheme.cpp @@ -907,11 +907,14 @@ void BaseTheme::drawKeyboardKey(const GfxRenderer& renderer, Rect rect, const ch if (isSelected) { if (inactiveSelection) { renderer.drawRect(rect.x, rect.y, rect.width, rect.height, 2, true); + } else if (keyType == KeyboardKeyType::Disabled) { + renderer.fillRectDither(rect.x, rect.y, rect.width, rect.height, Color::LightGray); } else { renderer.fillRect(rect.x, rect.y, rect.width, rect.height, true); } } else if (keyType == KeyboardKeyType::Shift || keyType == KeyboardKeyType::Mode || keyType == KeyboardKeyType::Del || - keyType == KeyboardKeyType::Space || keyType == KeyboardKeyType::Ok) { + keyType == KeyboardKeyType::Space || keyType == KeyboardKeyType::Ok || + keyType == KeyboardKeyType::Disabled) { renderer.drawRect(rect.x, rect.y, rect.width, rect.height); } diff --git a/src/components/themes/BaseTheme.h b/src/components/themes/BaseTheme.h index bb172499..b5c97031 100644 --- a/src/components/themes/BaseTheme.h +++ b/src/components/themes/BaseTheme.h @@ -65,11 +65,13 @@ struct ThemeMetrics { bool keyboardBottomAligned; bool keyboardCenteredText; int keyboardVerticalOffset; + int keyboardTextFieldWidthPercent; + int keyboardWidthPercent; }; enum UIIcon { Folder, Text, Image, Book, File, Recent, Settings, Transfer, Library, Wifi, Hotspot, Weather }; -enum class KeyboardKeyType { Normal, Shift, Mode, Reveal, Space, Del, Ok }; +enum class KeyboardKeyType { Normal, Shift, Mode, Reveal, Space, Del, Ok, Disabled }; // Default theme implementation (Classic Theme) // Additional themes can inherit from this and override methods as needed @@ -107,7 +109,9 @@ constexpr ThemeMetrics values = {.batteryWidth = 15, .keyboardBottomKeySpacing = 5, .keyboardBottomAligned = true, .keyboardCenteredText = false, - .keyboardVerticalOffset = -13}; + .keyboardVerticalOffset = -13, + .keyboardTextFieldWidthPercent = 85, + .keyboardWidthPercent = 90}; } class BaseTheme { diff --git a/src/components/themes/lyra/Lyra3CoversTheme.h b/src/components/themes/lyra/Lyra3CoversTheme.h index b0f3d031..5d2bd974 100644 --- a/src/components/themes/lyra/Lyra3CoversTheme.h +++ b/src/components/themes/lyra/Lyra3CoversTheme.h @@ -40,7 +40,9 @@ constexpr ThemeMetrics values = {.batteryWidth = 16, .keyboardBottomKeySpacing = 5, .keyboardBottomAligned = true, .keyboardCenteredText = false, - .keyboardVerticalOffset = -7}; + .keyboardVerticalOffset = -7, + .keyboardTextFieldWidthPercent = 85, + .keyboardWidthPercent = 90}; } class Lyra3CoversTheme : public LyraTheme { diff --git a/src/components/themes/lyra/LyraTheme.cpp b/src/components/themes/lyra/LyraTheme.cpp index 73293497..069e65f7 100644 --- a/src/components/themes/lyra/LyraTheme.cpp +++ b/src/components/themes/lyra/LyraTheme.cpp @@ -759,11 +759,14 @@ void LyraTheme::drawKeyboardKey(const GfxRenderer& renderer, Rect rect, const ch if (isSelected) { if (inactiveSelection) { renderer.fillRoundedRect(rect.x, rect.y, rect.width, rect.height, cornerRadius, Color::LightGray); + } else if (keyType == KeyboardKeyType::Disabled) { + renderer.fillRoundedRect(rect.x, rect.y, rect.width, rect.height, cornerRadius, Color::LightGray); } else { renderer.fillRoundedRect(rect.x, rect.y, rect.width, rect.height, cornerRadius, Color::Black); } } else if (keyType == KeyboardKeyType::Shift || keyType == KeyboardKeyType::Mode || keyType == KeyboardKeyType::Del || - keyType == KeyboardKeyType::Space || keyType == KeyboardKeyType::Ok) { + keyType == KeyboardKeyType::Space || keyType == KeyboardKeyType::Ok || + keyType == KeyboardKeyType::Disabled) { renderer.drawRoundedRect(rect.x, rect.y, rect.width, rect.height, 1, cornerRadius, true); } diff --git a/src/components/themes/lyra/LyraTheme.h b/src/components/themes/lyra/LyraTheme.h index 4ad4b82d..31de32e2 100644 --- a/src/components/themes/lyra/LyraTheme.h +++ b/src/components/themes/lyra/LyraTheme.h @@ -38,7 +38,9 @@ constexpr ThemeMetrics values = {.batteryWidth = 16, .keyboardBottomKeySpacing = 5, .keyboardBottomAligned = true, .keyboardCenteredText = false, - .keyboardVerticalOffset = -7}; + .keyboardVerticalOffset = -7, + .keyboardTextFieldWidthPercent = 85, + .keyboardWidthPercent = 90}; } class LyraTheme : public BaseTheme {