Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kobo: Attempt to fix input on Mk. 3 (i.e., Kobo Touch A/B). #9474

Merged
merged 11 commits into from
Sep 4, 2022

Conversation

NiLuJe
Copy link
Member

@NiLuJe NiLuJe commented Sep 4, 2022

This involves actually discriminating the Touch A/B from the Touch C in
the first place ;).

Get rid of the touchscreen probe thingy, as it should now be
unnecessary, and handle the actual Mk. 3 quirk, which is that the input
frame that reports a contact lift already does the coordinates
transform for us...
Unfortunately, our own transforms are not stateful, so this requires a
bit of an ugly hack, but, oh, well, it's a prehistoric device, so, you
get what you get ;).

While I'm there, fix the mirror transforms, which were all off-by-one
(600 pixels make for a [0, 599] range of coordinates, not [1, 600]).


This change is Reviewable

This involves actually discriminating the Touch A/B from the Touch C in
the first place ;).

Get rid of the touchscreen probe thingy, as it *should* now be
unnecessary, and handle the actual Mk. 3 quirk, which is that the input
frame that reports a contact lift *already* does the coordinates
transform for us...
Unfortunately, our own transforms are not stateful, so this require a
bit of an ugly hack, but, oh, well, it's a prehistoric device, so, you
get what you get ;).

While I'm there, fix the mirror transforms, which were all off-by-one
(600 pixels make for a [0, 599] range of coordinates, not [1, 600]).
@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

Ping @Earnestly ;).

Does this fix it for you? If not, how broken is it now? Post some new logs and tell me where you physically tapped @ specific timestamps (ideally, I only need four data points, one in the vicinity of each corner ;)).

@Frenzie Frenzie added this to the 2022.09 milestone Sep 4, 2022
Copy link
Member

@Frenzie Frenzie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Makes it clearer that it takes the actual maximum x/y coordinate, and
not the dimension in pixels.
@Earnestly
Copy link

With this PR applied it seems like the touch inputs are much more skewed and a bit incomprehensible.

Documenting how I tried this as I may have done something wrong:

# Starting with a clean .adds
$ unzip -d mnt/.adds koreader-kobo-v2022.08-3-g49e5200c_2022-09-04.zip
...

$ curl -s https://patch-diff.githubusercontent.com/raw/koreader/koreader/pull/9474.patch | sudo env -C t/.adds/koreader patch -Np1 -i -
patching file frontend/device/cervantes/device.lua
patching file frontend/device/input.lua
patching file frontend/device/kobo/device.lua
patching file frontend/device/sdl/device.lua
patching file frontend/device/input.lua
patching file frontend/device/input.lua

With this patch it's not prompting me to configure the touch inputs but instead immediately loads the quickstart guide.

Here is a log where I first waited for the quickstart guide to load then touched each corner for about two seconds in a clockwise order and finally turned the device off.

+--------+
|1      2|
|        |
|        |
|        |
|4      3|
+--------+
crash.log
Original fb rotation is set @ 3
Original fb bitdepth is set @ 32bpp
Switching fb bitdepth to 8bpp & rotation to Portrait
[FBInk] Detected a Kobo Touch A/B (310 => Trilogy @ Mark 3)
[FBInk] Enabled Kobo w/o Multi-Touch quirks
[FBInk] Clock tick frequency appears to be 100 Hz
[FBInk] Screen density set to 167 dpi
[FBInk] Variable fb info: 600x800, 32bpp @ rotation: 3 (Counter Clockwise, 270°)
[FBInk] Fixed fb info: ID is "mxc_epdc_fb", length of fb mem: 2179072 bytes & line length: 2432 bytes
[FBInk] Canonical rotation: 0 (Upright, 0°)
[FBInk] Fontsize set to 16x16 (IBM (Default) base glyph size: 8x8)
[FBInk] Line length: 37 cols, Page size: 50 rows
[FBInk] Detected a change in framebuffer bitdepth (32 -> 8)
[FBInk] Reinitializing...
[FBInk] Variable fb info: 600x800, 8bpp @ rotation: 3 (Counter Clockwise, 270°)
[FBInk] Fixed fb info: ID is "mxc_epdc_fb", length of fb mem: 2179072 bytes & line length: 608 bytes
[FBInk] Canonical rotation: 0 (Upright, 0°)
[FBInk] Fontsize set to 16x16 (IBM (Default) base glyph size: 8x8)
[FBInk] Line length: 37 cols, Page size: 50 rows
[FBDepth] Screen is 600x800 (608x896 addressable, fb says 608x896)
[FBDepth] Buffer is mapped for 2179072 bytes with a scanline stride of 2432 bytes
[FBDepth] Requested canonical rota 0 translates to 3 for this device
[FBDepth] Current rotation is already 3!
[FBDepth] Switching fb to 8bpp @ rotation 3 . . .
Updating bitdepth from 32bpp to 8bpp
Sanitizing grayscale flag for 8bpp
Updating rotation from 3 (Counter Clockwise, 270°) to 3 (Counter Clockwise, 270°)
Bitdepth is now 8bpp (grayscale: 1) @ rotate: 3 (Counter Clockwise, 270°)
[FBDepth] Screen is 600x800 (608x3584 addressable, fb says 608x1792)
[FBDepth] Buffer is mapped for 2179072 bytes with a scanline stride of 608 bytes
---------------------------------------------
                launching...
  _  _____  ____                _
 | |/ / _ \|  _ \ ___  __ _  __| | ___ _ __
 | ' / | | | |_) / _ \/ _` |/ _` |/ _ \ '__|
 | . \ |_| |  _ <  __/ (_| | (_| |  __/ |
 |_|\_\___/|_| \_\___|\__,_|\__,_|\___|_|

 It's a scroll... It's a codex... It's KOReader!

 [*] Current time: 09/04/22-20:09:11
 [*] Version: v2022.08-3-g49e5200c_2022-09-04

ffi.load: blitbuffer
09/04/22-20:09:11 DEBUG FB info (post fixup) {
    ["line_length"] = 608,
    ["height_mm"] = 4294967295,
    ["mmio_len"] = 0,
    ["width_mm"] = 4294967295,
    ["fb_size"] = 486400,
    ["rotate"] = 3,
    ["type"] = 0,
    ["xres"] = 600,
    ["yres"] = 800,
    ["xres_virtual"] = 600,
    ["yres_virtual"] = 800,
    ["xoffset"] = 0,
    ["bpp"] = 8,
    ["stride_pixels"] = 608,
    ["smem_len"] = 2179072,
    ["yoffset"] = 0,
}
09/04/22-20:09:11 DEBUG FB mapped at cdata<void *>: 0x2ae35000 of 487424 bytes
09/04/22-20:09:11 DEBUG fts: Preferred MONOTONIC clock source is CLOCK_MONOTONIC
09/04/22-20:09:11 DEBUG fts: Preferred REALTIME clock source is CLOCK_REALTIME
09/04/22-20:09:11 DEBUG fts: BOOTTIME clock source is NOT supported
09/04/22-20:09:11 INFO  initializing for device Kobo_trilogy_AB
09/04/22-20:09:11 INFO  framebuffer resolution: {
    ["w"] = 600,
    ["h"] = 800,
}
[ko-input] Forked off fake event generator (pid: 1120)
09/04/22-20:09:11 WARN  Device:getKeyRepeat: EVIOCGREP ioctl failed: Function not implemented
09/04/22-20:09:11 DEBUG Kobo: checking if standby is possible ...
09/04/22-20:09:11 DEBUG Kobo: available power states standby mem
09/04/22-20:09:11 DEBUG Kobo: standby state allowed
ffi.load: libs/libmupdf.so
ffi.load: libs/libwrap-mupdf.so
09/04/22-20:09:11 INFO  Performing one-time migration for 20191129
09/04/22-20:09:11 INFO  Performing one-time migration for 20200421
ffi.load: libs/libfreetype.so.6
ffi.load: libs/libharfbuzz.so.0
ffi.load: libs/libzstd.so.1
09/04/22-20:09:12 INFO  ./cache/fontlist/fontinfo.dat [string "./cache/fontlist/fontinfo.dat"]:1: unexpected symbol near '.' initializing it
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  FreeSerif
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Nimbus Roman No9 L
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Serif
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Dingbats
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Sans
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Nimbus Mono
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Sans Devanagari UI
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Nimbus Sans L
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Sans Bengali UI
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Sans CJK SC
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Naskh Arabic
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Noto Sans Arabic UI
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Standard Symbols L
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  Droid Sans Mono
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  FreeSans
09/04/22-20:09:13 DEBUG FONTNAMES ADD:  NotoSans Nerd Font
09/04/22-20:09:13 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
09/04/22-20:09:13 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
09/04/22-20:09:13 INFO  Performing one-time migration for 20210306 (1/2)
09/04/22-20:09:13 INFO  Performing one-time migration for 20210306 (2/2)
09/04/22-20:09:13 INFO  Performing one-time migration for 20210330
09/04/22-20:09:13 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
09/04/22-20:09:13 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
ffi.load: libs/libutf8proc.so.2
09/04/22-20:09:13 DEBUG Found font: NotoSans-Bold.ttf in ./fonts/noto/NotoSans-Bold.ttf
09/04/22-20:09:13 DEBUG Found font: NotoSans-Bold.ttf in ./fonts/noto/NotoSans-Bold.ttf
09/04/22-20:09:13 DEBUG Found font: DroidSansMono.ttf in ./fonts/droid/DroidSansMono.ttf
09/04/22-20:09:13 DEBUG Allocating a 60MB budget for the global document cache
ffi.load: sqlite3
09/04/22-20:09:13 INFO  Performing one-time migration for 20210404
09/04/22-20:09:13 INFO  Performing one-time migration for 20210409
09/04/22-20:09:13 WARN  os.rename: ./cache/fontinfo.dat: No such file or directory
09/04/22-20:09:13 INFO  Performing one-time migration for 20210412
09/04/22-20:09:13 WARN  os.rename: ./cache/calibre-libraries.lua: No such file or directory
09/04/22-20:09:13 WARN  os.rename: ./cache/calibre-books.dat: No such file or directory
09/04/22-20:09:13 INFO  Performing one-time migration for 20210414
09/04/22-20:09:13 WARN  os.remove: ./cache/calibre/books.dat: No such file or directory
09/04/22-20:09:13 INFO  Performing one-time migration for 20210503 & 20210508
09/04/22-20:09:13 INFO  Performing one-time migration for 20210622
09/04/22-20:09:13 INFO  Performing one-time migration for 20210521
09/04/22-20:09:13 INFO  Performing one-time migration for 20210531
09/04/22-20:09:13 INFO  Performing one-time migration for 20210629
09/04/22-20:09:13 INFO  Performing one-time migration for 20210715
09/04/22-20:09:13 INFO  Performing one-time migration for 20210720
09/04/22-20:09:13 INFO  Performing one-time migration for 20210831
09/04/22-20:09:13 INFO  Performing one-time migration for 20210925
09/04/22-20:09:13 INFO  Performing one-time migration for 20220116
09/04/22-20:09:13 INFO  Performing one-time migration for 20220205
09/04/22-20:09:13 INFO  Performing one-time migration for 20220819
09/04/22-20:09:14 DEBUG show reader ui
09/04/22-20:09:14 DEBUG Found font: NotoSansCJKsc-Regular.otf in ./fonts/noto/NotoSansCJKsc-Regular.otf
09/04/22-20:09:14 DEBUG ImageWidget: _render'ing resources/icons/mdlight/notice-info.svg 40 40
09/04/22-20:09:14 DEBUG renderSVG resources/icons/mdlight/notice-info.svg 0.83333333333333 48 48 > 40 40 0 0
09/04/22-20:09:14 DEBUG cache image|resources/icons/mdlight/notice-info.svg|40|40
09/04/22-20:09:14 DEBUG ImageWidget: initial offsets 0 0
09/04/22-20:09:14 DEBUG show widget: table: 0x2bde4bd0
09/04/22-20:09:14 DEBUG setDirty nil from widget table: 0x2bde4bd0 w/ NO region 
09/04/22-20:09:14 DEBUG setDirty via a func from widget table: 0x2bde4bd0
09/04/22-20:09:14 DEBUG painting widget: table: 0x2b542778
09/04/22-20:09:14 DEBUG blitFrom 75 379 0 0 40 40
09/04/22-20:09:14 DEBUG _refresh: Enqueued ui update for region 68 345 464 109 
09/04/22-20:09:14 DEBUG refresh: ui-mode 68 345 464 109
09/04/22-20:09:14 DEBUG mxc_update: 464x109 region @ (68, 345) with marker 1 (WFM: 257 & UPD: 0)
09/04/22-20:09:14 DEBUG close widget: table: 0x2bde4bd0
09/04/22-20:09:14 DEBUG setDirty via a func from widget nil
09/04/22-20:09:14 DEBUG creating coroutine for showing reader
09/04/22-20:09:14 INFO  opening file ./help/quickstart-en-v2022.08-3-g49e5200c_2022-09-04.html
09/04/22-20:09:14 DEBUG CreDocument: using cre call cache
09/04/22-20:09:15 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
09/04/22-20:09:15 DEBUG ImageWidget: _render'ing resources/icons/mdlight/book.opened.svg 32 32
09/04/22-20:09:15 DEBUG renderSVG resources/icons/mdlight/book.opened.svg 0.66666666666667 48 48 > 32 32 0 0
09/04/22-20:09:15 DEBUG cache image|resources/icons/mdlight/book.opened.svg|32|32
09/04/22-20:09:15 DEBUG ImageWidget: initial offsets 0 0
09/04/22-20:09:15 DEBUG Getting list of dictionaries
09/04/22-20:09:15 DEBUG found 0 dictionaries
09/04/22-20:09:15 DEBUG CreDocument: applied cr3.ini default settings.
09/04/22-20:09:15 DEBUG CreDocument: set fallback font faces: Noto Sans CJK SC|Noto Naskh Arabic|Noto Sans Devanagari UI|Noto Sans Bengali UI|FreeSans|FreeSerif|Noto Serif|Noto Sans
09/04/22-20:09:15 DEBUG CreDocument: set adjusted fallback font sizes true
09/04/22-20:09:15 DEBUG CreDocument: set monospace font scaling 100
09/04/22-20:09:15 INFO  Loading plugins from directory: plugins
09/04/22-20:09:15 DEBUG Plugin  plugins/autofrontlight.koplugin/main.lua  has been disabled.
09/04/22-20:09:15 DEBUG Plugin  plugins/autostandby.koplugin/main.lua  has been disabled.
09/04/22-20:09:15 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
09/04/22-20:09:15 DEBUG Found font: NotoSans-Italic.ttf in ./fonts/noto/NotoSans-Italic.ttf
09/04/22-20:09:15 DEBUG japanese.koplugin deinflector: loaded inflection table with 36 rules and 569 variants
09/04/22-20:09:16 DEBUG Plugin  plugins/coverimage.koplugin/main.lua  has been disabled.
09/04/22-20:09:16 DEBUG Plugin  plugins/hello.koplugin/main.lua  has been disabled.
09/04/22-20:09:16 DEBUG BackgroundRunnerWidget: no job, not running @  1662318556
09/04/22-20:09:16 DEBUG RD loaded plugin SSH at plugins/SSH.koplugin
09/04/22-20:09:16 DEBUG RD loaded plugin autodim at plugins/autodim.koplugin
09/04/22-20:09:16 DEBUG AutoSuspend: init
09/04/22-20:09:16 DEBUG AutoSuspend: start suspend/shutdown timer at 297.105613
09/04/22-20:09:16 DEBUG AutoSuspend: scheduling next suspend check in 900
09/04/22-20:09:16 DEBUG AutoSuspend: scheduling next shutdown check in 259200
09/04/22-20:09:16 DEBUG RD loaded plugin autosuspend at plugins/autosuspend.koplugin
09/04/22-20:09:16 DEBUG RD loaded plugin autoturn at plugins/autoturn.koplugin
09/04/22-20:09:16 DEBUG AutoWarmth: scheduleMidnightUpdate
09/04/22-20:09:16 DEBUG RD loaded plugin autowarmth at plugins/autowarmth.koplugin
09/04/22-20:09:16 DEBUG RD loaded plugin backgroundrunner at plugins/backgroundrunner.koplugin
09/04/22-20:09:16 DEBUG RD loaded plugin batterystat at plugins/batterystat.koplugin
09/04/22-20:09:16 DEBUG RD loaded plugin bookshortcuts at plugins/bookshortcuts.koplugin
09/04/22-20:09:16 DEBUG RD loaded plugin calibre at plugins/calibre.koplugin
09/04/22-20:09:16 INFO  CoverBrowser: setting default display modes
09/04/22-20:09:16 WARN  BookInfo cache DB schema updated from version 0 to version 20201210
09/04/22-20:09:16 WARN  Deleting existing ./settings/bookinfo_cache.sqlite3 to recreate it
09/04/22-20:09:17 DEBUG ImageWidget: _render'ing resources/icons/mdlight/notice-info.svg 40 40
09/04/22-20:09:17 DEBUG ImageWidget: initial offsets 0 0
09/04/22-20:09:17 DEBUG show widget: table: 0x2dadbde8
09/04/22-20:09:17 DEBUG setDirty nil from widget table: 0x2dadbde8 w/ NO region 
09/04/22-20:09:17 DEBUG setDirty via a func from widget table: 0x2dadbde8
09/04/22-20:09:17 DEBUG CoverBrowser: setting FileManager display mode to: list_image_meta
09/04/22-20:09:17 DEBUG CoverBrowser: setting History display mode to: mosaic_image
09/04/22-20:09:17 DEBUG CoverBrowser: setting Collection display mode to: classic
09/04/22-20:09:17 DEBUG RD loaded plugin coverbrowser at plugins/coverbrowser.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin docsettingtweak at plugins/docsettingtweak.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin exporter at plugins/exporter.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin gestures at plugins/gestures.koplugin
09/04/22-20:09:17 DEBUG language support: registering japanese plugin
09/04/22-20:09:17 DEBUG RD loaded plugin japanese at plugins/japanese.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin keepalive at plugins/keepalive.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin kosync at plugins/kosync.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin movetoarchive at plugins/movetoarchive.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin newsdownloader at plugins/newsdownloader.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin opds at plugins/opds.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin perceptionexpander at plugins/perceptionexpander.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin profiles at plugins/profiles.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin qrclipboard at plugins/qrclipboard.koplugin
09/04/22-20:09:17 DEBUG RD loaded plugin readtimer at plugins/readtimer.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin statistics at plugins/statistics.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin systemstat at plugins/systemstat.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin terminal at plugins/terminal.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin texteditor at plugins/texteditor.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin timesync at plugins/timesync.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin vocabbuilder at plugins/vocabbuilder.koplugin
09/04/22-20:09:18 DEBUG RD loaded plugin wallabag at plugins/wallabag.koplugin
09/04/22-20:09:18 DEBUG CreDocument: set view mode page
09/04/22-20:09:18 DEBUG CreDocument: set status line property 1
09/04/22-20:09:18 DEBUG made tweak css:
*[type~="note"],
*[type~="endnote"],
*[type~="footnote"],
*[type~="rearnote"],
*[role~="doc-note"],
*[role~="doc-endnote"],
*[role~="doc-footnote"],
*[role~="doc-rearnote"]
{
    -cr-only-if: -fb2-document;
        -cr-hint: footnote-inpage;
        margin: 0 !important;
        font-size: 0.8rem !important;
}
body[name="notes"] section {
    -cr-only-if: fb2-document;
        -cr-hint: footnote-inpage;
        margin: 0 !important;
}
body[name="notes"] > section {
    -cr-only-if: fb2-document;
        font-size: 0.75rem;
}
body[name="notes"] > title {
    -cr-only-if: fb2-document;
        margin-bottom: 0;
        padding-bottom: 0.5em;
}[END]
09/04/22-20:09:18 DEBUG CreDocument: set style sheet: ./data/epub.css and appended content (649 bytes)
09/04/22-20:09:18 DEBUG CreDocument: set embedded style sheet 1
09/04/22-20:09:18 DEBUG CreDocument: set block rendering flags 0x7fffffff
09/04/22-20:09:18 DEBUG CreDocument: set render dpi 96
09/04/22-20:09:18 DEBUG CreDocument: set page margins 10 15 10 30
09/04/22-20:09:18 DEBUG CreDocument: set txt preformatted 1
09/04/22-20:09:18 DEBUG CreDocument: set smooth scaling false
09/04/22-20:09:18 DEBUG CreDocument: set nightmode images true
09/04/22-20:09:18 DEBUG CreDocument: set font face Noto Serif
09/04/22-20:09:18 DEBUG CreDocument: set header font Noto Sans
09/04/22-20:09:18 DEBUG CreDocument: set font size 22
09/04/22-20:09:18 DEBUG CreDocument: set font base weight 0 = 400
09/04/22-20:09:18 DEBUG CreDocument: set font hinting mode 2
09/04/22-20:09:18 DEBUG CreDocument: set font kerning mode 3
09/04/22-20:09:18 DEBUG CreDocument: set space width scale 95
09/04/22-20:09:18 DEBUG CreDocument: set space condensing 75
09/04/22-20:09:18 DEBUG CreDocument: set word expansion 0
09/04/22-20:09:18 DEBUG CreDocument: set cjk width scaling 100
09/04/22-20:09:18 DEBUG CreDocument: set interline space 100
09/04/22-20:09:18 DEBUG CreDocument: set gamma index 15
09/04/22-20:09:18 DEBUG CreDocument: set textlang embedded langs true
09/04/22-20:09:18 DEBUG CreDocument: set textlang hyphenation enabled true
09/04/22-20:09:18 DEBUG CreDocument: set hyphenation trust soft hyphens 0
09/04/22-20:09:18 DEBUG CreDocument: set textlang hyphenation soft hyphens only false
09/04/22-20:09:18 DEBUG CreDocument: set textlang hyphenation force algorithmic false
09/04/22-20:09:18 DEBUG CreDocument: set hyphenation left hyphen min 0
09/04/22-20:09:18 DEBUG CreDocument: set hyphenation right hyphen min 0
09/04/22-20:09:18 DEBUG CreDocument: set floating punctuation 0
09/04/22-20:09:18 DEBUG Typography lang: using fallback  en-US , might be overriden by doc language
09/04/22-20:09:18 DEBUG CreDocument: set textlang main lang en-US
09/04/22-20:09:18 DEBUG UserHyph: reset user hyphenation dict
09/04/22-20:09:18 DEBUG CreDocument: requesting DOM version: 20210904
09/04/22-20:09:18 DEBUG CreDocument: set visible page count 1
09/04/22-20:09:18 DEBUG CreDocument: loading document...
09/04/22-20:09:18 DEBUG CreDocument: loading done.
09/04/22-20:09:18 DEBUG   loading took 0.065 seconds
09/04/22-20:09:18 DEBUG Typography lang: no doc language, keeping en-US
09/04/22-20:09:18 DEBUG CreDocument: rendering document...
09/04/22-20:09:18 DEBUG CreDocument: rendering done.
09/04/22-20:09:18 DEBUG   rendering took 0.354 seconds
09/04/22-20:09:18 DEBUG validateAndFixToc(): quick scan
09/04/22-20:09:18 DEBUG validateAndFixToc(): TOC is fine
09/04/22-20:09:18 DEBUG _refresh: Enqueued partial update for region 0 0 600 800 
09/04/22-20:09:18 DEBUG setDirty partial from widget ReaderUI w/ NO region 
09/04/22-20:09:18 DEBUG ReaderStatistics: No timestamp for previous page 0
09/04/22-20:09:18 DEBUG computing and storing partial_md5_checksum
09/04/22-20:09:19 DEBUG ReaderStatistics: Initializing average time per page at 50% of the max value, i.e., 60
09/04/22-20:09:19 DEBUG _refresh: Enqueued partial update for region 0 0 600 800 
09/04/22-20:09:19 DEBUG setDirty partial from widget ReaderUI w/ NO region 
09/04/22-20:09:19 DEBUG CreDocument: set bookmarks highlight and internal history false
09/04/22-20:09:19 DEBUG _refresh: Enqueued partial update for region 0 0 600 800 
09/04/22-20:09:19 DEBUG setDirty partial from widget ReaderUI w/ NO region 
09/04/22-20:09:19 DEBUG Spinning up new ReaderUI instance table: 0x2bceaa40
09/04/22-20:09:19 DEBUG show widget: ReaderUI
09/04/22-20:09:19 DEBUG update_mode: Update refresh mode partial to full
09/04/22-20:09:19 DEBUG _refresh: Enqueued full update for region 0 0 600 800 
09/04/22-20:09:19 DEBUG setDirty full from widget ReaderUI w/ NO region 
09/04/22-20:09:19 DEBUG painting widget: ReaderUI
09/04/22-20:09:19 DEBUG CreDocument: goto page 1 flow 0
09/04/22-20:09:19 DEBUG Found font: NotoSansCJKsc-Regular.otf in ./fonts/noto/NotoSansCJKsc-Regular.otf
09/04/22-20:09:19 DEBUG painting widget: table: 0x2dae2530
09/04/22-20:09:19 DEBUG blitFrom 75 380 0 0 40 40
09/04/22-20:09:19 DEBUG _refresh: Enqueued full update for region 0 0 600 800 
09/04/22-20:09:19 DEBUG _refresh: Enqueued full update for region 0 0 600 800 
09/04/22-20:09:19 DEBUG refresh: full 0 0 600 800
09/04/22-20:09:19 DEBUG refresh: wait for completion of (previous) marker 1
09/04/22-20:09:19 DEBUG mxc_update: 600x800 region @ (0, 0) with marker 2 (WFM: 2 & UPD: 1)
09/04/22-20:09:19 DEBUG refresh: wait for completion of marker 2
09/04/22-20:09:20 DEBUG close widget: table: 0x2dadbde8
09/04/22-20:09:20 DEBUG setDirty via a func from widget nil
09/04/22-20:09:20 DEBUG Lower widget ReaderUI covers the full screen
09/04/22-20:09:20 DEBUG setDirty nil from widget ReaderUI w/ NO region 
09/04/22-20:09:20 DEBUG painting widget: ReaderUI
09/04/22-20:09:20 DEBUG CreDocument: goto page 1 flow 0
09/04/22-20:09:20 DEBUG _refresh: Enqueued ui update for region 68 373 464 54 
09/04/22-20:09:20 DEBUG refresh: ui-mode 68 373 464 54
09/04/22-20:09:20 DEBUG mxc_update: 464x54 region @ (68, 373) with marker 3 (WFM: 257 & UPD: 0)
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 564, time: 1662318566.205472
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 25, time: 1662318566.205503
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318566.205515
09/04/22-20:09:26 DEBUG key event => code: 330 (BTN_TOUCH), value: 1, time: 1662318566.205527
09/04/22-20:09:26 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318566.205549
09/04/22-20:09:26 DEBUG GestureDetector:probeClockSource: Touch event timestamps appear to use CLOCK_REALTIME
09/04/22-20:09:26 DEBUG slot 0 in tap state...
09/04/22-20:09:26 DEBUG set up hold timer
09/04/22-20:09:26 DEBUG adjusted ges: touch
09/04/22-20:09:26 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:26 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318566.224058
09/04/22-20:09:26 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318566.224099
09/04/22-20:09:26 DEBUG slot 0 in tap state...
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 563, time: 1662318566.260469
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 26, time: 1662318566.260494
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318566.260506
09/04/22-20:09:26 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318566.260540
09/04/22-20:09:26 DEBUG slot 0 in tap state...
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 27, time: 1662318566.287343
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318566.287363
09/04/22-20:09:26 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318566.287394
09/04/22-20:09:26 DEBUG slot 0 in tap state...
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 562, time: 1662318566.314350
09/04/22-20:09:26 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318566.314379
09/04/22-20:09:26 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318566.314411
09/04/22-20:09:26 DEBUG slot 0 in tap state...
09/04/22-20:09:26 DEBUG hold timer detected a hold gesture in slot 0
09/04/22-20:09:26 DEBUG slot 0 in hold state...
09/04/22-20:09:26 DEBUG adjusted ges: hold
09/04/22-20:09:26 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:26 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:26 DEBUG clear selection
09/04/22-20:09:26 DEBUG hold position in page {
    ["x"] = 37,
    ["y"] = 27,
    ["w"] = 0,
    ["h"] = 0,
    ["page"] = 1,
}
09/04/22-20:09:26 DEBUG CreDocument: get text range {
    ["text"] = "Quickstart",
    ["pos0"] = "/html/body/h1/text().0",
    ["pos1"] = "/html/body/h1/text().10",
}
09/04/22-20:09:26 DEBUG selected word: {
    ["page"] = 1,
    ["pos0"] = "/html/body/h1/text().0",
    ["pos1"] = "/html/body/h1/text().10",
    ["sbox"] = {
        ["x"] = 10,
        ["y"] = 15,
        ["w"] = 219,
        ["h"] = 45,
    },
    ["word"] = "Quickstart",
}
09/04/22-20:09:26 DEBUG getLinkFromPosition link_xpointer: 
09/04/22-20:09:26 DEBUG getLinkFromPosition a_xpointer:
09/04/22-20:09:26 DEBUG language support: improving  selection {
    ["pos0"] = "/html/body/h1/text().0",
    ["pos1"] = "/html/body/h1/text().10",
    ["text"] = "Quickstart",
    ["sboxes"] = {
        [1] = {
            ["x"] = 10,
            ["y"] = 15,
            ["w"] = 219,
            ["h"] = 45,
        },
    },
}
09/04/22-20:09:26 DEBUG language support (fallback): trying japanese plugin's WordSelection
09/04/22-20:09:26 DEBUG language plugin WordSelection returned {}
09/04/22-20:09:26 DEBUG language support: no plugin could improve the selection
09/04/22-20:09:26 DEBUG _refresh: Enqueued ui update for region 10 15 219 45 
09/04/22-20:09:26 DEBUG setDirty ui from widget ReaderUI w/ region 10 15 219 45 
09/04/22-20:09:26 DEBUG painting widget: ReaderUI
09/04/22-20:09:26 DEBUG CreDocument: goto page 1 flow 0
09/04/22-20:09:26 DEBUG refresh: ui-mode 10 15 219 45
09/04/22-20:09:26 DEBUG mxc_update: 219x45 region @ (10, 15) with marker 4 (WFM: 257 & UPD: 0)
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 561, time: 1662318567.043648
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318567.043664
09/04/22-20:09:27 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318567.043679
09/04/22-20:09:27 DEBUG slot 0 in hold state...
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318567.106951
09/04/22-20:09:27 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318567.106972
09/04/22-20:09:27 DEBUG slot 0 in hold state...
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 28, time: 1662318567.287072
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318567.287084
09/04/22-20:09:27 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318567.287097
09/04/22-20:09:27 DEBUG slot 0 in hold state...
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 562, time: 1662318567.494069
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 27, time: 1662318567.494079
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318567.494084
09/04/22-20:09:27 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318567.494095
09/04/22-20:09:27 DEBUG slot 0 in hold state...
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 37, time: 1662318567.498174
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 27, time: 1662318567.498185
09/04/22-20:09:27 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 0, time: 1662318567.498190
09/04/22-20:09:27 DEBUG key event => code: 330 (BTN_TOUCH), value: 0, time: 1662318567.498193
09/04/22-20:09:27 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318567.498202
09/04/22-20:09:27 DEBUG slot 0 in hold state...
09/04/22-20:09:27 DEBUG hold_release detected
09/04/22-20:09:27 DEBUG adjusted ges: hold_release
09/04/22-20:09:27 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:27 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:27 DEBUG dict lookup word: Quickstart {
    [1] = {
        ["x"] = 10,
        ["y"] = 15,
        ["w"] = 219,
        ["h"] = 45,
    },
}
09/04/22-20:09:27 DEBUG dict stripped word: Quickstart
09/04/22-20:09:27 DEBUG UIManager:preventStandby, counter increased to 1
09/04/22-20:09:27 DEBUG showing quick lookup window 1 : Quickstart {
    [1] = {
        ["dict"] = "Not available",
        ["lookup_cancelled"] = false,
        ["definition"] = "There are no enabled dictionaries.\
Please check the 'Dictionary settings' menu.",
        ["word"] = "Quickstart",
        ["no_result"] = true,
    },
}
09/04/22-20:09:27 DEBUG Found font: NotoSans-Regular.ttf in ./fonts/noto/NotoSans-Regular.ttf
09/04/22-20:09:27 DEBUG ImageWidget: _render'ing resources/icons/mdlight/close.svg 24 24
09/04/22-20:09:27 DEBUG renderSVG resources/icons/mdlight/close.svg 1 24 24 > 24 24 0 0
09/04/22-20:09:27 DEBUG cache image|resources/icons/mdlight/close.svg|24|24
09/04/22-20:09:27 DEBUG ImageWidget: initial offsets 0 0
09/04/22-20:09:27 DEBUG ImageWidget: _render'ing resources/icons/mdlight/edit.svg 32 32
09/04/22-20:09:27 DEBUG renderSVG resources/icons/mdlight/edit.svg 0.88888888888889 36 36 > 32 32 0 0
09/04/22-20:09:27 DEBUG cache image|resources/icons/mdlight/edit.svg|32|32
09/04/22-20:09:27 DEBUG ImageWidget: initial offsets 0 0
09/04/22-20:09:27 DEBUG Found font: NotoSans-Bold.ttf in ./fonts/noto/NotoSans-Bold.ttf
09/04/22-20:09:27 DEBUG Found font: NotoSansCJKsc-Regular.otf in ./fonts/noto/NotoSansCJKsc-Regular.otf
09/04/22-20:09:27 DEBUG setDirty via a func from widget table: 0x2d263d68
09/04/22-20:09:27 DEBUG setDirty via a func from widget table: 0x2d263d68
09/04/22-20:09:27 DEBUG show widget: table: 0x2d263d68
09/04/22-20:09:27 DEBUG setDirty nil from widget table: 0x2d263d68 w/ NO region 
09/04/22-20:09:27 DEBUG setDirty via a func from widget table: 0x2d263d68
09/04/22-20:09:27 DEBUG UIManager:allowStandby, counter decreased to 0
09/04/22-20:09:27 DEBUG painting widget: table: 0x2d2e6d30
09/04/22-20:09:27 DEBUG Found font: NotoSansCJKsc-Regular.otf in ./fonts/noto/NotoSansCJKsc-Regular.otf
09/04/22-20:09:27 DEBUG blitFrom 523 172 0 0 24 24
09/04/22-20:09:27 DEBUG blitFrom 516 217 0 0 32 32
09/04/22-20:09:27 DEBUG Found font: NotoSansArabicUI-Bold.ttf in ./fonts/noto/NotoSansArabicUI-Bold.ttf
09/04/22-20:09:27 DEBUG _refresh: Enqueued ui update for region 52 261 496 262 
09/04/22-20:09:27 DEBUG update_mode: Update refresh mode ui to partial
09/04/22-20:09:27 DEBUG _refresh: Enqueued partial update for region 40 159 520 466 
09/04/22-20:09:27 DEBUG update_mode: Update refresh mode partial to flashui
09/04/22-20:09:27 DEBUG _refresh: Enqueued flashui update for region 40 159 520 466 
09/04/22-20:09:27 DEBUG refresh: ui-mode w/ flash 40 159 520 466
09/04/22-20:09:27 DEBUG mxc_update: 520x466 region @ (40, 159) with marker 5 (WFM: 257 & UPD: 1)
09/04/22-20:09:27 DEBUG refresh: wait for completion of marker 5
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 31, time: 1662318569.396801
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 34, time: 1662318569.396826
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318569.396838
09/04/22-20:09:29 DEBUG key event => code: 330 (BTN_TOUCH), value: 1, time: 1662318569.396849
09/04/22-20:09:29 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318569.396871
09/04/22-20:09:29 DEBUG slot 0 in tap state...
09/04/22-20:09:29 DEBUG set up hold timer
09/04/22-20:09:29 DEBUG adjusted ges: touch
09/04/22-20:09:29 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:29 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:29 DEBUG MovableContainer:onMovableTouch {
    ["ges"] = "touch",
    ["pos"] = {
        ["x"] = 568,
        ["y"] = 34,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.6623185693969e+15,
}
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 33, time: 1662318569.451182
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 35, time: 1662318569.451210
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318569.451223
09/04/22-20:09:29 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318569.451258
09/04/22-20:09:29 DEBUG slot 0 in tap state...
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 34, time: 1662318569.550393
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 34, time: 1662318569.550413
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318569.550425
09/04/22-20:09:29 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318569.550456
09/04/22-20:09:29 DEBUG slot 0 in tap state...
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 35, time: 1662318569.811461
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 33, time: 1662318569.811472
09/04/22-20:09:29 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318569.811477
09/04/22-20:09:29 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318569.811490
09/04/22-20:09:29 DEBUG slot 0 in tap state...
09/04/22-20:09:29 DEBUG hold timer detected a hold gesture in slot 0
09/04/22-20:09:29 DEBUG slot 0 in hold state...
09/04/22-20:09:29 DEBUG adjusted ges: hold
09/04/22-20:09:29 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:29 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:29 DEBUG MovableContainer:onMovableHold {
    ["ges"] = "hold",
    ["pos"] = {
        ["x"] = 564,
        ["y"] = 33,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.6623185698115e+15,
}
09/04/22-20:09:30 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 33, time: 1662318570.785403
09/04/22-20:09:30 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 32, time: 1662318570.785431
09/04/22-20:09:30 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318570.785443
09/04/22-20:09:30 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318570.785472
09/04/22-20:09:30 DEBUG slot 0 in hold state...
09/04/22-20:09:30 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 566, time: 1662318570.788984
09/04/22-20:09:30 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 32, time: 1662318570.788997
09/04/22-20:09:30 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 0, time: 1662318570.789006
09/04/22-20:09:30 DEBUG key event => code: 330 (BTN_TOUCH), value: 0, time: 1662318570.789013
09/04/22-20:09:30 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318570.789031
09/04/22-20:09:30 DEBUG slot 0 in hold state...
09/04/22-20:09:30 DEBUG hold_release detected
09/04/22-20:09:30 DEBUG adjusted ges: hold_release
09/04/22-20:09:30 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:30 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:30 DEBUG MovableContainer:onMovableHoldRelease {
    ["ges"] = "hold_release",
    ["pos"] = {
        ["x"] = 567,
        ["y"] = 566,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.662318570789e+15,
}
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 29, time: 1662318572.157444
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 754, time: 1662318572.157473
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318572.157485
09/04/22-20:09:32 DEBUG key event => code: 330 (BTN_TOUCH), value: 1, time: 1662318572.157496
09/04/22-20:09:32 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318572.157516
09/04/22-20:09:32 DEBUG slot 0 in tap state...
09/04/22-20:09:32 DEBUG set up hold timer
09/04/22-20:09:32 DEBUG adjusted ges: touch
09/04/22-20:09:32 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:32 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:32 DEBUG MovableContainer:onMovableTouch {
    ["ges"] = "touch",
    ["pos"] = {
        ["x"] = 570,
        ["y"] = 754,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.6623185721575e+15,
}
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 30, time: 1662318572.346571
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 755, time: 1662318572.346599
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318572.346611
09/04/22-20:09:32 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318572.346643
09/04/22-20:09:32 DEBUG slot 0 in tap state...
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 31, time: 1662318572.427587
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 756, time: 1662318572.427614
09/04/22-20:09:32 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318572.427625
09/04/22-20:09:32 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318572.427651
09/04/22-20:09:32 DEBUG slot 0 in tap state...
09/04/22-20:09:32 DEBUG hold timer detected a hold gesture in slot 0
09/04/22-20:09:32 DEBUG slot 0 in hold state...
09/04/22-20:09:32 DEBUG adjusted ges: hold
09/04/22-20:09:32 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:32 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:32 DEBUG MovableContainer:onMovableHold {
    ["ges"] = "hold",
    ["pos"] = {
        ["x"] = 568,
        ["y"] = 756,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.6623185724277e+15,
}
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 30, time: 1662318573.112395
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318573.112430
09/04/22-20:09:33 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318573.112458
09/04/22-20:09:33 DEBUG slot 0 in hold state...
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 29, time: 1662318573.121912
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318573.121945
09/04/22-20:09:33 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318573.121976
09/04/22-20:09:33 DEBUG slot 0 in hold state...
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 570, time: 1662318573.130234
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 756, time: 1662318573.130255
09/04/22-20:09:33 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 0, time: 1662318573.130265
09/04/22-20:09:33 DEBUG key event => code: 330 (BTN_TOUCH), value: 0, time: 1662318573.130273
09/04/22-20:09:33 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318573.130291
09/04/22-20:09:33 DEBUG slot 0 in hold state...
09/04/22-20:09:33 DEBUG hold_release detected
09/04/22-20:09:33 DEBUG adjusted ges: hold_release
09/04/22-20:09:33 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:33 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:34 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 561, time: 1662318574.325464
09/04/22-20:09:34 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 738, time: 1662318574.325492
09/04/22-20:09:34 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318574.325505
09/04/22-20:09:34 DEBUG key event => code: 330 (BTN_TOUCH), value: 1, time: 1662318574.325516
09/04/22-20:09:34 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318574.325538
09/04/22-20:09:34 DEBUG slot 0 in tap state...
09/04/22-20:09:34 DEBUG set up hold timer
09/04/22-20:09:34 DEBUG adjusted ges: touch
09/04/22-20:09:34 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:34 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:34 DEBUG MovableContainer:onMovableTouch {
    ["ges"] = "touch",
    ["pos"] = {
        ["x"] = 38,
        ["y"] = 738,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.6623185743255e+15,
}
09/04/22-20:09:34 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 739, time: 1662318574.532594
09/04/22-20:09:34 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318574.532624
09/04/22-20:09:34 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318574.532658
09/04/22-20:09:34 DEBUG slot 0 in tap state...
09/04/22-20:09:34 DEBUG hold timer detected a hold gesture in slot 0
09/04/22-20:09:34 DEBUG slot 0 in hold state...
09/04/22-20:09:34 DEBUG adjusted ges: hold
09/04/22-20:09:34 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:34 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:34 DEBUG MovableContainer:onMovableHold {
    ["ges"] = "hold",
    ["pos"] = {
        ["x"] = 38,
        ["y"] = 739,
        ["w"] = 0,
        ["h"] = 0,
    },
    ["time"] = 1.6623185745327e+15,
}
09/04/22-20:09:35 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 101, time: 1662318575.018654
09/04/22-20:09:35 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318575.018674
09/04/22-20:09:35 DEBUG slot 0 in hold state...
09/04/22-20:09:35 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 740, time: 1662318575.027784
09/04/22-20:09:35 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 100, time: 1662318575.027796
09/04/22-20:09:35 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318575.027810
09/04/22-20:09:35 DEBUG slot 0 in hold state...
09/04/22-20:09:35 DEBUG input event => type: 3 (EV_ABS), code: 0 (ABS_X), value: 38, time: 1662318575.063037
09/04/22-20:09:35 DEBUG input event => type: 3 (EV_ABS), code: 1 (ABS_Y), value: 740, time: 1662318575.063047
09/04/22-20:09:35 DEBUG input event => type: 3 (EV_ABS), code: 24 (ABS_PRESSURE), value: 0, time: 1662318575.063052
09/04/22-20:09:35 DEBUG key event => code: 330 (BTN_TOUCH), value: 0, time: 1662318575.063055
09/04/22-20:09:35 DEBUG input event => type: 0 (EV_SYN), code: 0 (SYN_REPORT), value: 0, time: 1662318575.063065
09/04/22-20:09:35 DEBUG slot 0 in hold state...
09/04/22-20:09:35 DEBUG hold_release detected
09/04/22-20:09:35 DEBUG adjusted ges: hold_release
09/04/22-20:09:35 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:35 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:37 DEBUG key event => code: 116 (Power), value: 1, time: 1662318577.245949
09/04/22-20:09:37 DEBUG AutoSuspend: onInputEvent
09/04/22-20:09:37 DEBUG AutoTurn: onInputEvent
09/04/22-20:09:39 DEBUG ImageWidget: _render'ing resources/icons/mdlight/notice-info.svg 40 40
09/04/22-20:09:39 DEBUG ImageWidget: initial offsets 0 0
09/04/22-20:09:39 DEBUG setDirty via a func from widget ScreenSaver
09/04/22-20:09:39 DEBUG show widget: ScreenSaver
09/04/22-20:09:39 DEBUG _refresh: Enqueued full update for region 0 0 600 800 w/ HW dithering
09/04/22-20:09:39 DEBUG setDirty full from widget ScreenSaver w/ NO region AND w/ HW dithering
09/04/22-20:09:39 DEBUG setDirty via a func from widget table: 0x3309da40
09/04/22-20:09:39 DEBUG painting widget: ScreenSaver
09/04/22-20:09:39 DEBUG blitFrom 75 380 0 0 40 40
09/04/22-20:09:39 DEBUG _repaint: it was dithered, infecting the refresh queue
09/04/22-20:09:39 DEBUG _refresh: Enqueued full update for region 0 0 600 800 w/ HW dithering
09/04/22-20:09:39 DEBUG _refresh: Enqueued full update for region 0 0 600 800 w/ HW dithering
09/04/22-20:09:39 DEBUG refresh: full 0 0 600 800
09/04/22-20:09:39 DEBUG mxc_update: 600x800 region @ (0, 0) with marker 6 (WFM: 2 & UPD: 1)
09/04/22-20:09:39 DEBUG refresh: wait for completion of marker 6
09/04/22-20:09:40 DEBUG close widget: ScreenSaver
09/04/22-20:09:40 DEBUG setDirty via a func from widget nil
09/04/22-20:09:40 DEBUG setDirty via a func from widget nil
09/04/22-20:09:40 DEBUG Lower widget ReaderUI covers the full screen
09/04/22-20:09:40 DEBUG setDirty nil from widget ReaderUI w/ NO region 
09/04/22-20:09:40 DEBUG setDirty nil from widget table: 0x2d263d68 w/ NO region 
09/04/22-20:09:40 DEBUG close widget: table: 0x2d263d68
09/04/22-20:09:40 DEBUG setDirty via a func from widget nil
09/04/22-20:09:40 DEBUG Lower widget ReaderUI covers the full screen
09/04/22-20:09:40 DEBUG setDirty nil from widget ReaderUI w/ NO region 
09/04/22-20:09:40 DEBUG widget to be closed does not exist
09/04/22-20:09:40 DEBUG clear selection
09/04/22-20:09:40 DEBUG _refresh: Enqueued ui update for region 0 0 600 800 
09/04/22-20:09:40 DEBUG setDirty ui from widget ReaderUI w/ NO region 
09/04/22-20:09:40 DEBUG closing reader
09/04/22-20:09:40 DEBUG closing document
09/04/22-20:09:40 DEBUG ReaderFooter: unschedule autoRefreshFooter
09/04/22-20:09:40 DEBUG ReaderCoptListener.headerRefresh unscheduled
09/04/22-20:09:40 DEBUG cre cache used: none
09/04/22-20:09:40 DEBUG AutoTurn: onCloseDocument
09/04/22-20:09:40 DEBUG on close document
09/04/22-20:09:40 DEBUG close widget: ReaderUI
09/04/22-20:09:40 DEBUG Write to  ./help/quickstart-en-v2022.08-3-g49e5200c_2022-09-04.sdr/metadata.html.lua
09/04/22-20:09:40 DEBUG AutoSuspend: onCloseWidget
09/04/22-20:09:40 DEBUG AutoSuspend: unschedule suspend/shutdown timer
09/04/22-20:09:40 DEBUG AutoSuspend: unschedule leave standby task
09/04/22-20:09:40 DEBUG AutoTurn: onCloseWidget
09/04/22-20:09:40 DEBUG Tearing down ReaderUI table: 0x2bceaa40
09/04/22-20:09:40 DEBUG update_mode: Update refresh mode ui to full
09/04/22-20:09:40 DEBUG _refresh: Enqueued full update for region 0 0 600 800 

@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

Okay, it's a bit harder to grok because you did a series a holds, and the release doesn't always log transformed coordinates, unlike a tap, but it just looks like I just borked the quirk, which is "good" ;p.

@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

Which, given that last commit, no wonder, lol ;D.

That should hopefully work better, I'll push another commit with additional logging to double-check, though ;).

@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

And, yeah, this removes the probe step on fresh setups, that's expected :).

@Earnestly
Copy link

With the new patches in place everything appears to work perfectly. I can navigate through all menus and everything appears to function, including swipe gestures to turn pages, etc.

@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

Cool, many thanks for your willingness to deal with the testing, I'll finalize the details so this can hit tomorrow's nightly ;).

Copy link
Member Author

@NiLuJe NiLuJe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 2 of 4 files at r1, 1 of 1 files at r3, 3 of 3 files at r5, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @NiLuJe)

@NiLuJe NiLuJe marked this pull request as ready for review September 4, 2022 21:36
@Earnestly
Copy link

No, thank you for the rapid response, testing, code, etc. Least I could do to help

@NiLuJe NiLuJe merged commit 1b14ee3 into koreader:master Sep 4, 2022
@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

One final question for future readers, although I doubt it'll be meaningful given the age of the device, but on which FW version is it running?

@Earnestly
Copy link

  • 4.33.19608 (beb075f387, 5/31/22)

@NiLuJe
Copy link
Member Author

NiLuJe commented Sep 4, 2022

Cool, thanks (that's a good news for us, it rules out potentially different behavior on old kernels) ;).

TranHHoang added a commit to TranHHoang/koreader that referenced this pull request Oct 23, 2022
KOReader 2022.10 "Muhara"

![koreader-2022-10](https://user-images.githubusercontent.com/202757/197379886-75c933df-8236-4be2-9287-304a88778b67.png)

We skipped last month's release because I was right in the middle of moving, which serendipitously coincided with fairly drastic changes that needed more time for testing, such as a big rewrite of gestures and multitouch (koreader#9463).

Users of the Dropbox plugin will now be able to use the new short-lived tokens (koreader#9496).

<img width="40%" alt="image" src="https://user-images.githubusercontent.com/59040746/193070490-a3d477db-bd82-431b-95fd-2c4765244378.png" align="right">One of the more visible additions is the new Chinese keyboard contributed by @weijiuqiao, based on the [stroke input method](https://en.wikipedia.org/wiki/Stroke_count_method) (koreader#9572). It's not smart and it requires knowledge of stroke order. A tutorial can be found [here](https://github.com/koreader/koreader/wiki/Chinese-keyboard), part of which I will reproduce below.

<hr>

The stroke input method groups character strokes into five categories. Then any character is typed by its stroke order.
| Key | Stroke type |
| ------ | ------ |
| `一` | Horizontal or rising stroke |
| `丨` | Vertical or vertical with hook |
| `丿` | Falling left |
| `丶` | Dot or falling right |
| `𠃋` | Turning |

For example, to input 大, keys `一丿丶` are used.

Note all turning strokes are input with a single `𠃋` key as long as they are written in one go. So 马 is input with `𠃋𠃋一`.

After getting the intended character, a `分隔`(Separate) or `空格`(Space) key should be used to finish the input. Otherwise, strokes of the next character will be appended to that of the current one thus changing the character.

Besides, the keyboard layout contains a wildcard key `*` to use in place of any uncertain stroke.

Swipe north on the `分隔`(Separate) key for quick deletion of unfinished strokes.

<hr>

Logo credit: @bubapet

We'd like to thank all contributors for their efforts. Some highlights since the previous release include:

* NewsDownloader: Strip byte order mark from xml string before parsing (koreader#9468) @ad1217
* GestureDetector: Full refactor for almost-sane(TM) MT gesture handling (koreader#9463) @NiLuJe
* Kobo: Unbreak touch input on fresh setups on Trilogy (koreader#9473) @NiLuJe
* Kobo: Fix input on Mk. 3 (i.e., Kobo Touch A/B). (koreader#9474, koreader#9481) @NiLuJe
* Kindle: Attempt to deal with sticky "waking up" hibernation banners (koreader#9491) @NiLuJe
* Add "Invert page turn buttons" to Dispatcher (koreader#9494) @NiLuJe
* [UIManager] Outsource device specific event handlers (koreader#9448) @zwim
* AutoWarmth: add a choice to control warmth and/or night mode (koreader#9504) @zwim
* Allow F5 key to reload document (koreader#9510) @poire-z
* bump crengine: better SVG support with extended LunaSVG (koreader#9510) @poire-z
* CRE/ImageViewer: get scaled blitbuffer when long-press on SVG (koreader#9510) @poire-z
* RenderImage: use crengine to render SVG image data (koreader#9510) @poire-z
* Wikipedia EPUBs: keep math SVG images (koreader#9510) @poire-z
* TextViewer: add Find (koreader#9507) @hius07
* A random assortment of fixes (koreader#9513) @NiLuJe
* Add Russian Wiktionary dictionary (koreader#9517) @Vuizur
* add custom mapping for tolino buttons (koreader#9509) @hasezoey
* Profiles: add QuickMenu (koreader#9526) @hius07
* ImageViewer: Clamp zoom factor to sane values (koreader#9529, koreader#9544) @NiLuJe
* ReaderDict: fix use of dicts with ifo with DOS line endings (koreader#9536) @poire-z
* Kobo: Initial Clara 2E support (koreader#9545) @NiLuJe
* TextViewer: add navigation buttons (koreader#9539) @hius07
* ConfigDialog: show button with default values in spinwidgets (koreader#9558) @hius07
* Misc: Get rid of the legacy defaults.lua globals (koreader#9546) @NiLuJe
* Misc: Use the ^ operator instead of math.pow (koreader#9550) @NiLuJe
* DocCache: Unbreak on !Linux platforms (koreader#9566) @NiLuJe
* Kobo: Clara 2E fixes (koreader#9559) @NiLuJe
* Keyboard: add Chinese stroke-based layout (koreader#9572, koreader#9582) @weijiuqiao
* Vocabulary builder: add Undo study status (koreader#9528, koreader#9582) @weijiuqiao
* Assorted bag'o tweaks & fixes (koreader#9569) @NiLuJe
* ReaderFont: add "Font-family fonts" submenu (koreader#9583) @poire-z
* FileManager: add Select button to the file long-press menu (koreader#9571) @hius07
* Dispatcher: Fixes, Sort & QuickMenu (koreader#9531) @yparitcher
* Cloud storage: add Dropbox short-lived tokens (koreader#9496) @hius07
* GH: Extend the issue template to request verbose debug logs for non-crash issues. (koreader#9585) @NiLuJe
* Logger: Use serpent instead of dump (koreader#9588) @NiLuJe
* LuaDefaults: Look for defaults.lua in $PWD first (koreader#9596) @NiLuJe
* UIManager: Don't lose track of the original rotation on reboot/poweroff (koreader#9606) @NiLuJe
* ReaderStatus: save status summary immediately on change (koreader#9619) @hius07
* [feat] Add Thai keyboard (koreader#9620) @weijiuqiao
* Dispatcher: Fix subtle bug with modified items being added twice to the sort index (koreader#9628) @yparitcher
* Vocabulary builder: supports review in reverse order (koreader#9605) @weijiuqiao
* Exporter plugin: allow adding book md5 checksum when exporting highlights (koreader#9610) @sp4ke
* buttondialogtitle: align upper borders (koreader#9631) @hius07
* Kobo: Always use open/write/close for sysfs writes (koreader#9635) @NiLuJe
* OPDS-PS: Fix hardcoded namespace in count (koreader#9650) @bigdale123

[Full changelog](koreader/koreader@v2022.08...v2022.10) — [closed milestone issues](https://github.com/koreader/koreader/milestone/59?closed=1)

---

Installation instructions: [Android](https://github.com/koreader/koreader/wiki/Installation-on-Android-devices) • [Cervantes](https://github.com/koreader/koreader/wiki/Installation-on-BQ-devices) • [ChromeOS](https://github.com/koreader/koreader/wiki/Installation-on-Chromebook-devices) • [Kindle](https://github.com/koreader/koreader/wiki/Installation-on-Kindle-devices) • [Kobo](https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices) • [PocketBook](https://github.com/koreader/koreader/wiki/Installation-on-PocketBook-devices) • [ReMarkable](https://github.com/koreader/koreader/wiki/Installation-on-ReMarkable) • [Desktop Linux](https://github.com/koreader/koreader/wiki/Installation-on-desktop-linux) • [MacOS](https://github.com/koreader/koreader/wiki/Installation-on-MacOS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants