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
This commit is contained in:
NiLuJe
2021-05-17 23:59:32 +02:00
parent 8d3aacbac3
commit 99ee3763c1

View File

@@ -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