From 53f8c2af90be4b33b598f6fd88802dbc7906f363 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Fri, 3 Jan 2025 17:33:53 +0100 Subject: [PATCH] InputDialog: set class default for keyboard_visible to false (#12994) --- frontend/ui/widget/inputdialog.lua | 1 - frontend/ui/widget/inputtext.lua | 2 ++ frontend/ui/widget/virtualkeyboard.lua | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/ui/widget/inputdialog.lua b/frontend/ui/widget/inputdialog.lua index 5600910bd..8ab3340af 100644 --- a/frontend/ui/widget/inputdialog.lua +++ b/frontend/ui/widget/inputdialog.lua @@ -614,7 +614,6 @@ function InputDialog:onShowKeyboard(ignore_first_hold_release) end -- NOTE: There's no VirtualKeyboard widget instantiated at all when readonly, -- and our input widget handles that itself, so we don't need any guards here. - -- (In which case, isKeyboardVisible will return `nil`, same as if we had a VK instantiated but *never* shown). self._input_widget:onShowKeyboard(ignore_first_hold_release) -- There's a bit of a chicken or egg issue in init where we would like to check the actual keyboard's visibility state, -- but the widget might not exist or be shown yet, so we'll just have to keep this in sync... diff --git a/frontend/ui/widget/inputtext.lua b/frontend/ui/widget/inputtext.lua index 8a080cddf..6c75a0bd1 100644 --- a/frontend/ui/widget/inputtext.lua +++ b/frontend/ui/widget/inputtext.lua @@ -777,6 +777,8 @@ function InputText:isKeyboardVisible() if self.keyboard then return self.keyboard:isVisible() end + -- NOTE: Never return `nil`, to avoid inheritance issues in (Multi)InputDialog's keyboard_visible flag. + return false end function InputText:lockKeyboard(toggle) diff --git a/frontend/ui/widget/virtualkeyboard.lua b/frontend/ui/widget/virtualkeyboard.lua index 37de4bd4a..cf2ff3bb1 100644 --- a/frontend/ui/widget/virtualkeyboard.lua +++ b/frontend/ui/widget/virtualkeyboard.lua @@ -781,7 +781,7 @@ end local VirtualKeyboard = FocusManager:extend{ name = "VirtualKeyboard", - visible = nil, + visible = false, lock_visibility = false, covers_footer = true, modal = true,