If you've ever enabled the main loop debugging, you'll know that
actually dumping the full window stack was *hilarious*.
Just print table counts, it's often good enough to debug what's
happening in the exceedingly rare cases you need this ;).
Also, it'll actually be readable, unlike the previous insanity ^^.
Broken since b0eb0ce0: the custom callbacks for the "Reset settings"
& "Book information" buttons are not being called anymore because
patching those is done to early (before instead of after creating
the new modified dialog).
This PR makes zh_keyboard's number pad symbol mode instead of shift mode, so that numbers are shown when the keyboard is called expecting numeral input.
Sidenote for the crazy win32 people out there: it doesn't has a concept
of line-buffering, so native win32 should use "no" here, but I'm
*hoping* MinGW transparently handles this nonsense.
This allows interoperability between different readers who want to
import highlights on different devices/file systems. All that is
needed then to import highlights is to match the local books and
their path based on the checksum.
* Iterate over varargs directly via select if possible
* Use table.pack otherwise (https://github.com/koreader/koreader-base/pull/1535).
* This allows us to simplify a few Logger calls, as logger now handles nil values.
This PR adds support for a Thai keyboard. Layout mostly copied from my phone, with difference in diacritics placements: phone has only one key for all of them, while here we have a couple more. Swipe in different directions needed for inputing them.
The ultimate goal is for toast widgets (i.e., Notification when flagged as such) to:
* Not stop event propagation
* Close themselves when the event was emitted by user input.
Instead of doing event filtering in UIManager, we simply overload the onGesture & onKey* handlers in Notification to do just that, and just make sure UIManager will *send* those events to toasts, but without affecting the usual semantics of top widget selection and event propagation (which is as simple as just calling handleEvent on them unchecked ;p).
Thanks to @poire-z for the brainstorming in https://github.com/koreader/koreader/issues/9594 ;).
This also happens to fix a bug in which we might have looped on the top widget twice, because of an array vs. hash mishap ;).
The candidates array had a very very very high chance of being sparse, which effectively broke the logic.
It was mostly harmless since said logic is only here for a long and varied history of backwards compatibility ;).
specifically requested.
Using a custom message would effectively prevent the event message from
showing up, which is... bad.
(In fact, I'm half of the mind to get rid of the option to hide the
event messages, because it's a goddamned terrible idea).
Also, make sure references are actually dropped,
no matter how the widget is closed, by relying on onCloseWidget ;).
Enable the "long-press-on-close" trick on the actual Close button,
too, instead of only on the title bar's cross.
Fix: https://github.com/koreader/koreader/pull/9586#issuecomment-1272332275
This should be fairly unintrusive, but still noticeable enough without having to watch the battery gauge like a hawk, or resort to actual monitoring via kernel logs and/or usb meter and/or multimeter...