diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 8833a12df..eb5796555 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -78,21 +78,32 @@ end -- ONLY used for Kindle devices function Device:intoScreenSaver() local UIManager = require("ui/uimanager") - if self.charging_mode == false and self.screen_saver_mode == false then + if self.screen_saver_mode == false then self.screen:saveCurrentBB() self.screen_saver_mode = true end UIManager:sendEvent(Event:new("FlushSettings")) + -- On FW >= 5.7.2, we sigstop awesome, but we need it to show stuff... + if os.getenv("AWESOME_STOPPED") == "yes" then + os.execute("killall -cont awesome") + end end -- ONLY used for Kindle devices function Device:outofScreenSaver() - if self.screen_saver_mode == true and self.charging_mode == false then + -- On FW >= 5.7.2, put awesome to sleep again... + if os.getenv("AWESOME_STOPPED") == "yes" then + os.execute("killall -stop awesome") + end + if self.screen_saver_mode == true then -- wait for native system update screen before we recover saved -- Blitbuffer. util.usleep(1500000) self.screen:restoreFromSavedBB() self:resume() + if self:needsScreenRefreshAfterResume() then + self.screen:refreshFull() + end end self.screen_saver_mode = false end diff --git a/platform/kindle/koreader.sh b/platform/kindle/koreader.sh index 61e871407..4f451e093 100755 --- a/platform/kindle/koreader.sh +++ b/platform/kindle/koreader.sh @@ -41,7 +41,7 @@ if [ "${INIT_TYPE}" == "upstart" ] ; then fi # Keep track of what we do with pillow... -AWESOME_STOPPED="no" +export AWESOME_STOPPED="no" PILLOW_HARD_DISABLED="no" PILLOW_SOFT_DISABLED="no" @@ -297,9 +297,9 @@ if [ "${STOP_FRAMEWORK}" == "no" -a "${INIT_TYPE}" == "upstart" ] ; then # NOTE: Try to leave the user with a slightly more useful FB content than our own last screen... cat /var/tmp/koreader-fb.dump > /dev/fb0 rm -f /var/tmp/koreader-fb.dump + lipc-set-prop com.lab126.appmgrd start app://com.lab126.booklet.home # NOTE: In case we ever need an extra full flash refresh... #eips -s w=${SCREEN_X_RES},h=${SCREEN_Y_RES} -f - lipc-set-prop com.lab126.appmgrd start app://com.lab126.booklet.home fi if [ "${PILLOW_SOFT_DISABLED}" == "yes" ] ; then logmsg "Restoring the status bar . . ."