Allow Backspace to work as back button

reviewable/pr8721/r1
poire-z 2 years ago
parent ccc49036aa
commit 16e3b2f0ac

@ -434,7 +434,7 @@ function FileManager:setupLayout()
if Device:hasKeys() then
self.key_events.Home = { {"Home"}, doc = "go home" }
-- Override the menu.lua way of handling the back key
self.file_chooser.key_events.Back = { {"Back"}, doc = "go back" }
self.file_chooser.key_events.Back = { {Device.input.group.Back}, doc = "go back" }
if not Device:hasFewKeys() then
-- Also remove the handler assigned to the "Back" key by menu.lua
self.file_chooser.key_events.Close = nil

@ -21,7 +21,7 @@ local ReaderBack = EventListener:new{
function ReaderBack:init()
if Device:hasKeys() then
self.ui.key_events.Back = { {"Back"}, doc = "Reader back" }
self.ui.key_events.Back = { {Device.input.group.Back}, doc = "Reader back" }
end
-- Regular function wrapping our method, to avoid re-creating
-- an anonymous function at each page turn

@ -51,7 +51,7 @@ function TweakInfoWidget:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "cancel" }
Close = { {Device.input.group.Back}, doc = "cancel" }
}
end

@ -137,6 +137,7 @@ local Input = {
Cursor = { "Up", "Down", "Left", "Right" },
PgFwd = { "RPgFwd", "LPgFwd" },
PgBack = { "RPgBack", "LPgBack" },
Back = { "Back" },
Alphabet = {
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
@ -248,6 +249,10 @@ function Input:init()
end
logger.info("loaded custom event map", custom_event_map)
end
if G_reader_settings:isTrue("backspace_as_back") then
table.insert(self.group.Back, "Backspace")
end
end
--[[--

@ -434,6 +434,21 @@ common_settings.back_in_reader = {
genGenericMenuEntry(_("Go to previous read page"), "back_in_reader", "previous_read_page"),
},
}
if Device:hasKeyboard() then
common_settings.backspace_as_back = {
text = _("Backspace works as back button"),
checked_func = function()
return G_reader_settings:isTrue("backspace_as_back")
end,
callback = function()
G_reader_settings:flipNilOrFalse("backspace_as_back")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
end,
}
end
common_settings.opening_page_location_stack = {
text = _("Add opening page to location history"),
checked_func = function()

@ -60,6 +60,8 @@ local order = {
"back_to_exit",
"back_in_filemanager",
"back_in_reader",
"backspace_as_back",
"----------------------------",
"android_volume_keys",
"android_camera_key",
"android_haptic_feedback",

@ -101,6 +101,7 @@ local order = {
"back_to_exit",
"back_in_filemanager",
"back_in_reader",
"backspace_as_back",
"----------------------------",
"page_turns_non_touch",
"android_volume_keys",

@ -50,7 +50,7 @@ function BBoxWidget:init()
}
end
if Device:hasKeys() then
self.key_events.Close = { {"Back"}, doc = "close windows" }
self.key_events.Close = { {Device.input.group.Back}, doc = "close windows" }
self.key_events.Select = { {"Press"}, doc = "confirm adjust" }
end
end

@ -538,7 +538,7 @@ function BookMapWidget:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close page" },
Close = { {Input.group.Back}, doc = "close page" },
ScrollRowUp = {{"Up"}, doc = "scroll up"},
ScrollRowDown = {{"Down"}, doc = "scrol down"},
ScrollPageUp = {{Input.group.PgBack}, doc = "prev page"},

@ -20,7 +20,7 @@ local ButtonDialog = InputContainer:new{
function ButtonDialog:init()
if Device:hasKeys() then
local close_keys = Device:hasFewKeys() and { "Back", "Left" } or "Back"
local close_keys = Device:hasFewKeys() and { "Back", "Left" } or Device.input.group.Back
self.key_events = {
Close = { { close_keys }, doc = "close button dialog" }
}

@ -34,7 +34,7 @@ local ButtonDialogTitle = InputContainer:new{
function ButtonDialogTitle:init()
if self.dismissable then
if Device:hasKeys() then
local close_keys = Device:hasFewKeys() and { "Back", "Left" } or "Back"
local close_keys = Device:hasFewKeys() and { "Back", "Left" } or Device.input.group.Back
self.key_events = {
Close = { { close_keys }, doc = "close button dialog" }
}

@ -873,7 +873,7 @@ function ConfigDialog:init()
end
if Device:hasKeys() then
-- set up keyboard events
local close_keys = Device:hasFewKeys() and { "Back", "Left" } or "Back"
local close_keys = Device:hasFewKeys() and { "Back", "Left" } or Device.input.group.Back
self.key_events.Close = { { close_keys }, doc = "close config menu" }
end
if Device:hasDPad() then

@ -73,7 +73,7 @@ function ConfirmBox:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "cancel" }
Close = { {Device.input.group.Back}, doc = "cancel" }
}
end
end

@ -82,7 +82,7 @@ function DateTimeWidget:init()
(self.is_date and 0.8 or 0.6))
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close date widget" }
Close = { {Device.input.group.Back}, doc = "close date widget" }
}
end
if Device:isTouchDevice() then

@ -93,7 +93,7 @@ function DictQuickLookup:init()
self.key_events = {
ReadPrevResult = {{Input.group.PgBack}, doc = "read prev result"},
ReadNextResult = {{Input.group.PgFwd}, doc = "read next result"},
Close = { {"Back"}, doc = "close quick lookup" }
Close = { {Input.group.Back}, doc = "close quick lookup" }
}
end
if Device:isTouchDevice() then

@ -66,7 +66,7 @@ function DoubleSpinWidget:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close doublespin widget" }
Close = { {Device.input.group.Back}, doc = "close doublespin widget" }
}
end
if Device:isTouchDevice() then

@ -206,7 +206,7 @@ function FootnoteWidget:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "cancel" },
Close = { {Device.input.group.Back}, doc = "cancel" },
Follow = { {"Press"}, doc = "follow link" },
}
end

@ -84,7 +84,7 @@ function FrontLightWidget:init()
}
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close frontlight" }
Close = { {Device.input.group.Back}, doc = "close frontlight" }
}
end
if Device:isTouchDevice() then

@ -81,7 +81,7 @@ local ImageViewer = InputContainer:new{
function ImageViewer:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close viewer" },
Close = { {Device.input.group.Back}, doc = "close viewer" },
ZoomIn = { {Device.input.group.PgBack}, doc = "Zoom In" },
ZoomOut = { {Device.input.group.PgFwd}, doc = "Zoom out" },
}

@ -283,7 +283,7 @@ function KeyValuePage:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close page" },
Close = { {Input.group.Back}, doc = "close page" },
NextPage = {{Input.group.PgFwd}, doc = "next page"},
PrevPage = {{Input.group.PgBack}, doc = "prev page"},
}

@ -925,7 +925,7 @@ function Menu:init()
if Device:hasKeys() then
-- set up keyboard events
self.key_events.Close = { {"Back"}, doc = "close menu" }
self.key_events.Close = { {Input.group.Back}, doc = "close menu" }
if Device:hasFewKeys() then
self.key_events.Close = { {"Left"}, doc = "close menu" }
end

@ -73,7 +73,7 @@ function MultiConfirmBox:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "cancel" }
Close = { {Device.input.group.Back}, doc = "cancel" }
}
end
end

@ -50,7 +50,7 @@ function PageBrowserWidget:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close page" },
Close = { {Device.input.group.Back}, doc = "close page" },
ScrollRowUp = {{"Up"}, doc = "scroll up"},
ScrollRowDown = {{"Down"}, doc = "scrol down"},
ScrollPageUp = {{Input.group.PgBack}, doc = "prev page"},

@ -50,7 +50,7 @@ function RadioButtonWidget:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close widget" }
Close = { {Device.input.group.Back}, doc = "close widget" }
}
end
if Device:isTouchDevice() then

@ -15,7 +15,7 @@ local ScreenSaverWidget = InputContainer:new{
function ScreenSaverWidget:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close widget" },
Close = { {Device.input.group.Back}, doc = "close widget" },
}
end
if Device:isTouchDevice() then

@ -27,7 +27,7 @@ function SkimToWidget:init()
local screen_height = Screen:getHeight()
if Device:hasKeys() then
self.key_events.Close = { { "Back" }, doc = "close skimto page" }
self.key_events.Close = { {Device.input.group.Back}, doc = "close skimto page" }
end
if Device:isTouchDevice() then
self.ges_events = {

@ -65,7 +65,7 @@ function SpinWidget:init()
end
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close spin widget" }
Close = { {Device.input.group.Back}, doc = "close spin widget" }
}
end
if Device:isTouchDevice() then

@ -71,7 +71,7 @@ function TextViewer:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close text viewer" }
Close = { {Device.input.group.Back}, doc = "close text viewer" }
}
end

@ -474,7 +474,7 @@ function TouchMenu:init()
}
}
self.key_events.Back = { {"Back"}, doc = "back to upper menu or close touchmenu" }
self.key_events.Back = { {Input.group.Back}, doc = "back to upper menu or close touchmenu" }
if Device:hasFewKeys() then
self.key_events.Back = { {"Left"}, doc = "back to upper menu or close touchmenu" }
end

@ -672,7 +672,7 @@ function VirtualKeyPopup:init()
self.key_events.PressKey = { {"Press"}, doc = "select key" }
end
if Device:hasKeys() then
self.key_events.Close = { {"Back"}, doc = "close keyboard" }
self.key_events.Close = { {Device.input.group.Back}, doc = "close keyboard" }
end
local offset_x = 2*keyboard_frame.bordersize + keyboard_frame.padding + parent_key.keyboard.key_padding

@ -430,7 +430,7 @@ function CalendarView:init()
if Device:hasKeys() then
self.key_events = {
Close = { {"Back"}, doc = "close page" },
Close = { {Input.group.Back}, doc = "close page" },
NextMonth = {{Input.group.PgFwd}, doc = "next page"},
PrevMonth = {{Input.group.PgBack}, doc = "prev page"},
}

Loading…
Cancel
Save