2
0
mirror of https://github.com/koreader/koreader synced 2024-11-18 03:25:46 +00:00
Commit Graph

289 Commits

Author SHA1 Message Date
Hans-Werner Hilse
63af71188a refactor refresh
Lots of the device-related distinction wandered into
base/ffi/framebuffer_<driver>. This eases the refresh logic in
UI manager, which basically only decides what kind of refresh
to trigger. The device specific configuration in the framebuffer
driver decides how to realize that whish.

screen.lua is gone, in its place is now the framebuffer driver.
The device abstraction decides what framebuffer driver to load.
2014-11-23 12:13:32 +00:00
NiLuJe
9bd089812b Tweaks and fixes for refresh logic
Don't increase counter for regional updates
Also some workarounds for Kobos

Try to avoid update_regions_func poisoning

Reset it at the end of repaint() even if nothing was found dirty

Ensure regional updates are always PARTIAL, in
case we get a region attached to an automatically triggered refresh, not
marked force_partial [which, hey, shouldn't happen, but apparently does
sometimes ^^]
2014-11-18 10:31:32 +01:00
Hans-Werner Hilse
45cf927ee8 Fix double-check of task list
Since commit 12a76fee33, we had a potential
bug on the event mechanism:

It introduced (besides the checkTasks method itself) a second run of the
checkTasks() method. In the second run, however, scheduled events were
not taken into consideration in how long to wait for input events
afterwards.

So when the after the first run of checkTasks() there were new scheduled
tasks added to the task queue, they were not properly scheduled and
and depended on an already existing scheduled event or an input event
to trigger.

This might have led to unexpected order of execution (though the order
is not guaranteed by the task scheduling anyway!) or to events triggering
not at all until the next input event.
2014-11-14 09:12:46 +01:00
Hans-Werner Hilse
c22dbbe3ae factor out repaint to its own method
it's gotten complex enough to isolate it
2014-11-14 09:09:50 +01:00
NiLuJe
13cbed8ea5 Fix partial refreshes on older Kobo devices
Fix #1146 (regression).
2014-11-12 19:12:22 +01:00
NiLuJe
3d5dd44a4c Don't hijack "fast" UI refresh w/ the REAGL stuff 2014-11-12 15:03:59 +01:00
NiLuJe
859031222e Simplify the H2O special-casing
re #1119

AUTO appears to be doing the right thing...
(even if that baffles me, given the state of the Kernel sources,
unless they flip some switches at compile time
[NTX_WFM_MODE_OPTIMIZED_REAGL / NO_AUTO_REAGL_MODE] ...)

Anyway, that's what nickel does, so follow its lead ;).
2014-11-11 17:08:41 +01:00
NiLuJe
d018a31b0a Me speak english good. ya! 2014-11-11 03:58:57 +01:00
NiLuJe
dbe816062b Be consistent in how we refer to stuff 2014-11-11 03:39:47 +01:00
NiLuJe
041f11cba0 Tweak some comments 2014-11-11 02:42:07 +01:00
NiLuJe
a4a50b3d0d Fix the REAGL logic.
Never use REAGL to handle UI elements. It makes for a much smoother
experience.
2014-11-11 02:28:41 +01:00
NiLuJe
656a2c7cb6 Actually do what the comment says.
Don't hijack forced partial updates (i.e., from UI elements) on always
FULL REAGL devices. It doesn't implode if we don't, and it makes for a
snappier UI.
2014-11-11 02:15:08 +01:00
NiLuJe
3ce10b697a Moar comments! 2014-11-11 01:27:44 +01:00
NiLuJe
8cfbcca7c5 More comments on the H2O weirdness... 2014-11-11 01:25:44 +01:00
NiLuJe
a44c5e99d1 Use the proper constants for Kobo's waveform modes 2014-11-11 00:48:19 +01:00
NiLuJe
a2f107075d Shot in the dark at matching the H2O's behavior... 2014-11-10 20:04:34 +01:00
Frans de Jonge
ca75b7a030 Add usage note to unschedule 2014-11-09 16:38:58 +01:00
NiLuJe
d340159de8 Simplify the whole wait_for_marker commit.
Companion commit to the same stuff in base ;).
2014-11-08 15:50:57 +01:00
NiLuJe
cd7e9c3257 First stab at revamping the wait for marker stuff
WIP, untested, can probably simplified some more.
Good news is, it should be smarter, and thus provide a smoother user
experience :).
Relies on the relevant changes in base.
2014-11-08 15:50:57 +01:00
NiLuJe
d488ca43fa Some potentially fun stuff TODO :) 2014-11-08 15:50:56 +01:00
NiLuJe
ed6f027d68 Whee, the eink driver was updated for the KT2/KV! 2014-11-08 15:50:56 +01:00
NiLuJe
76c3a3aa44 Minor comment tweaks 2014-11-08 15:50:56 +01:00
NiLuJe
b3137736c8 Don't highjack regional updates on REAGL devices
We wouldn't want those to become full updates ;).
Also apply an optionally different waveform mode for such partial,
regional updates (right now, only Kindle devices make use of this finer
grained control).
2014-11-08 15:50:56 +01:00
NiLuJe
25adccbcd6 More notes for tomorrow 2014-11-08 15:50:56 +01:00
NiLuJe
374d993355 One more thing to look into/fix... 2014-11-08 15:50:56 +01:00
NiLuJe
13b02cbad9 Request regal waveform on phoenix & dahlia
Depends on the corresponding changes in koreader-base ;)
2014-11-08 15:50:56 +01:00
NiLuJe
1c22c38a5d Review some of my waveform switcheroo logic... 2014-11-08 15:50:56 +01:00
HW
9a7834113b Merge pull request #1097 from Frenzie/master
Implement UIManager:unschedule(action). Fixes #1007.
2014-11-06 17:53:35 +01:00
Frans de Jonge
8cd80288a0 Implement UIManager:unschedule(action). Fixes #1007. 2014-11-06 12:59:00 +01:00
chrox
dd308f6be1 allow closing non-existent widget but throw a warning 2014-11-06 14:00:47 +08:00
chrox
3a1fe689e2 update multiple screen regions
This is useful when updating keyboard and inputbox.
2014-11-05 12:28:28 +08:00
Hans-Werner Hilse
3066c86e38 Refactoring hardware abstraction
This is a major overhaul of the hardware abstraction layer.
A few notes:

General platform distinction happens in
  frontend/device.lua
which will delegate everything else to
  frontend/device/<platform_name>/device.lua
which should extend
  frontend/device/generic/device.lua

Screen handling is implemented in
  frontend/device/screen.lua
which includes the *functionality* to support device specifics.
Actually setting up the device specific functionality, however,
is done in the device specific setup code in the relevant
device.lua file.

The same goes for input handling.
2014-11-02 21:19:04 +01:00
chrox
84029e9694 add modal widget type that will stay on the top of window stack
ConfirmBox and InfoMessage are default to be modal.
Now returning to filamanager after highlighting a PDF page
the confirmbox asking users to save the document will not be hidden by
the filamanager window.
And it's tested on Kindle that #791 is already been solved probably by
out refacorting of MuPDF backend.
2014-10-30 16:01:04 +08:00
chrox
9adf8ac327 also paint widget if any widget underneath is dirty 2014-09-29 14:23:38 +08:00
chrox
c74c258fc7 add filemanager icon in reader menu
now we can access the filemanager in all launcher configurations
2014-09-05 21:07:42 +08:00
chrox
40bddf0735 emulate Power button with F2 on emulator 2014-08-26 18:10:26 +08:00
Huang Xin
e4ab31de31 Merge pull request #825 from WS64/master
Add last book screensaver for Kobo, also covers to book info screen
2014-08-23 15:27:21 +08:00
WS64
26413adab5 resolve github inconsistencies 2014-08-23 08:50:51 +02:00
WS64
45546945e4 Removed screensaver functions to new lua file 2014-08-22 09:05:30 +02:00
WS64
043dc13a24 Add "last book" screensaver for Kobo
Epub only.
If someone knows how to get an jpg/png from a pdf on linux (e.g. convert by imangemagick? But i am not a linux specialist and have no idea how to get that one into koreader) I can add something for linux too.
cbz/cbr should be possible too, but I have not looked into it yet.

Do I see it right that the Kindle screensavers are handled by Kindle itself?
But on Kindle you also profit, you can see picture thumbnails now in the search results (long tap on found book)
2014-08-21 22:22:49 +02:00
chrox
948d92a3b3 fix tap on word title will crash koreader 2014-08-20 14:45:11 +08:00
chrox
c8bc9ee37c close screen framebuffer when exiting reader 2014-08-19 12:11:48 +08:00
WS64
ff4fa33608 Update uimanager.lua 2014-08-15 15:59:40 +02:00
WS64
768077aaa0 Screensaver functionality for Kobo 2014-08-14 22:18:27 +02:00
WS64
11996cb6bb Kobo: Turn light on/off according to start parameters
Kobo only.
I guess Kindle handles this himself anyway?
2014-08-12 13:11:13 +02:00
chrox
024091168f set refresh rate immediately after input custom rate 2014-08-05 12:10:32 +08:00
chrox
55554acf39 refactoring: buildin hold on menu entry to input 2014-08-05 10:23:25 +08:00
chrox
405411ac4c add menu entry for E-ink screen refresh rate 2014-07-26 22:22:52 +08:00
WS64
e88e2c3bd2 removed unnecessary variables 2014-07-16 13:51:09 +02:00
WS64
5c2b8dc66e move offset functions to screen.lua because of Kobo Aura issues 2014-07-16 09:44:27 +02:00
NiLuJe
3168ebd219 Move the waveform mode selection a bit...
Move it from the main UI loop to init, we're using static values anyways,
and a change of device at runtime is highly unlikely (:D).
2014-07-08 01:21:05 +02:00
NiLuJe
8435a79a3a Add a warning about the waveform mode constants...
Note that they're from the Kindle driver, the Kobo one might expect
slightly different values...
2014-07-08 01:04:41 +02:00
NiLuJe
9e6dd11b0e Keystrokes aren't that cheap. 2014-07-07 00:12:37 +02:00
NiLuJe
19295cc027 One more comment... 2014-07-07 00:11:45 +02:00
NiLuJe
806c2ffc00 Another hugely important commit! 2014-07-06 21:38:13 +02:00
NiLuJe
25a4fc01ea Clear up some comments... 2014-07-06 18:43:50 +02:00
NiLuJe
64566e0f3a Try to use reagl on the PW2...
That doesn't seem to work as nicely as the stock reader... :/
2014-07-06 18:02:58 +02:00
NiLuJe
603dd3bd05 Some Kidle refresh mode experiments...
Emulate (as best we can) the refresh behavior of the Kindle Touch reader
2014-07-06 17:22:36 +02:00
Qingping Hou
45f3294f8d fix(kobo suspend): ignore user input in suspend mode 2014-06-26 14:28:57 -04:00
Qingping Hou
4400468741 refactor(uimanager): use event_handlers to dispatch events 2014-06-26 14:12:44 -04:00
Qingping Hou
f57014cfc3 fix(kobo): partially fix suspend support
Tested in Kobo Aura HD.

Suspend can still be interrrupted if user touches the screen after
slided the power button and before the suspend function is called (2s delay).

Reason for this is still unkown.
2014-06-26 13:48:59 -04:00
chrox
2773ca9386 fix zsync cannot run properly in Kindle due to firewall 2014-06-25 21:32:50 +08:00
chrox
26f5a4731e add peer-to-peer file sharing plugin ZSync 2014-06-23 22:35:41 +08:00
Markismus
c390d6fca4 offset and resize Kobo Aura screen because of obscuration by black bezel 2014-06-21 18:24:37 +02:00
chrox
15baeb7867 save doc settings when receiving IntoSS or Suspend or SaveState events 2014-06-08 17:56:58 +08:00
chrox
31639cce39 check window stack before sending events
This should fix FC on Android with "Start with last opened file" checked
2014-06-07 20:16:25 +08:00
chrox
ef84aff1db make ffi/util module local 2014-06-04 17:36:18 +08:00
chrox
92219a1f1e cleanup: expand tab to 4 spaces 2014-03-13 21:52:43 +08:00
Qingping Hou
21af7b6a9f update battery state on device resume 2014-01-16 18:34:46 -05:00
chrox
92b62c907a refactoring frontlight device to more generic power device 2014-01-04 21:38:07 +08:00
chrox
326765a2d8 fix default full refresh in Kindle since the new ffi framebuffer 2013-11-27 21:38:36 +08:00
Hans-Werner Hilse
526137deda add missing require of gettext 2013-10-24 15:45:02 +02:00
Hans-Werner Hilse
fd586a56e9 missing require() of infomessage in UIManager
require() must be done locally in order to not create circular dependencies
2013-10-24 14:54:55 +02:00
HW
09cd5c4104 Make DEBUG a require()d local 2013-10-22 20:51:29 +02:00
HW
ef111b99c6 Refactored to use strictly locals 2013-10-18 22:38:07 +02:00
chrox
aac1509c21 check dimension restraint on regional refresh request 2013-10-16 20:52:32 +08:00
Giorgio Micotti
a2ff9b9a9b Final fixes for kobo suspend 2013-09-30 21:48:46 +02:00
Giorgio Micotti
ec3d23ef10 Split suspend-resume logic 2013-09-09 12:30:27 +02:00
Giorgio Micotti
be1a637c3b DO NOT MERGE initial suspend support for Kobo 2013-09-09 09:04:09 +02:00
Paulo Matias
3f3fba2fdf Big refactoring: Device handles frontlight device, ReaderFrontLight now only GUI 2013-08-12 02:13:28 -03:00
chrox
225ae9f826 disable double tap detection in keyboard widget 2013-07-31 20:02:26 +08:00
chrox
4e4df37f7b fix fast refresh waveform 2013-07-31 16:55:50 +08:00
chrox
3f672b5894 fix typo error that invalidate forced partial refresh 2013-07-23 17:10:29 +08:00
chrox
07de799237 set fast refresh mode in setDirty method 2013-07-23 14:51:38 +08:00
chrox
ee6c93a516 add regional screen refresh support
and waveform mode can be specified when calling screen refresh
2013-07-22 22:04:54 +08:00
Qingping Hou
561c7902ca move defaults.lua to root directory 2013-07-01 02:55:28 -04:00
Qingping Hou
18122fe067 add defaults.lua 2013-07-01 02:41:33 -04:00
Qingping Hou
ff7f6e0740 require gettext module in uimanager.lua 2013-04-08 03:11:12 +08:00
Qingping Hou
10d980ed87 rearranged source tree 2013-03-13 01:18:53 +08:00