USBMS: Close all widgets before quitting

FFI finalizers can fire in unspecified orders, but for MuPDF,
we need to ensure that the context is the *very* last thing that get
destroyed.
As such, we need to make sure we close open documents properly on our
end, first.

This prevents potential crashes while switchign to USBMS inside an open
document handled by MuPDF.

Fix #7428
reviewable/pr7711/r1
NiLuJe 3 years ago
parent 8d3aacbac3
commit 99ee3763c1

@ -1,4 +1,5 @@
local Device = require("device")
local Event = require("ui/event")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
@ -60,15 +61,17 @@ function MassStorage:start(never_ask)
ok_callback = function()
-- save settings before activating USBMS:
UIManager:flushSettings()
UIManager:quit()
UIManager._exit_code = 86
UIManager:broadcastEvent(Event:new("Close"))
UIManager:quit()
end,
})
else
-- save settings before activating USBMS:
UIManager:flushSettings()
UIManager:quit()
UIManager._exit_code = 86
UIManager:broadcastEvent(Event:new("Close"))
UIManager:quit()
end
end

Loading…
Cancel
Save