Skip to content

Write highlights into PDF: revisited#12509

Merged
hius07 merged 22 commits into
koreader:masterfrom
hius07:write-hl-into-pdf
Sep 14, 2024
Merged

Write highlights into PDF: revisited#12509
hius07 merged 22 commits into
koreader:masterfrom
hius07:write-hl-into-pdf

Conversation

@hius07

@hius07 hius07 commented Sep 12, 2024

Copy link
Copy Markdown
Member

1

2

3

4

Closes #12500.


This change is Reviewable

@Frenzie

Frenzie commented Sep 12, 2024

Copy link
Copy Markdown
Member

Lowecase on/off is normally only for the bottom menu btw. The screenshots look nice
👍

@hius07

hius07 commented Sep 12, 2024

Copy link
Copy Markdown
Member Author

5

@hius07

hius07 commented Sep 12, 2024

Copy link
Copy Markdown
Member Author

CircleCI warnings:

WARN could not load liblipclua: module 'liblipclua' not found:

ERROR Failed to initialize terminal plugin: plugins/terminal.koplugin/main.lua:108: wrong number of arguments to 'insert'

WARN Error when loading plugins/coverbrowser.koplugin/main.lua common/lua-ljsqlite3/init.lua:109: ';' expected near '='

ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02bbea7f0 still has count 1 (id ./data/tessdata/eng.traineddatapunc-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02bbea860 still has count 1 (id ./data/tessdata/eng.traineddataword-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02bbea910 still has count 1 (id ./data/tessdata/eng.traineddatanumber-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02c1a4650 still has count 1 (id ./data/tessdata/eng.traineddatabigram-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02c1a4c90 still has count 1 (id ./data/tessdata/eng.traineddatafreq-dawg)
make: unlink: base/thirdparty/kpvcrlib/crengine/cr3gui/data/tessdata: Is a directory

@hius07

hius07 commented Sep 12, 2024

Copy link
Copy Markdown
Member Author

Interesting feature would be scanning a pdf file for existing embedded highlights and creating our corresponding annotations. Dunno if MuPDF can do it.
@benoit-pierre ?

@benoit-pierre

Copy link
Copy Markdown
Member

CircleCI warnings:

WARN could not load liblipclua: module 'liblipclua' not found:

Expected.

ERROR Failed to initialize terminal plugin: plugins/terminal.koplugin/main.lua:108: wrong number of arguments to 'insert'

Not sure about that one (I've just nuked the plugin locally after getting tired of it preventing KOReader' startup on Android).

WARN Error when loading plugins/coverbrowser.koplugin/main.lua common/lua-ljsqlite3/init.lua:109: ';' expected near '='

Expected (lack of proper isolation when running tests).

ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02bbea7f0 still has count 1 (id ./data/tessdata/eng.traineddatapunc-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02bbea860 still has count 1 (id ./data/tessdata/eng.traineddataword-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02bbea910 still has count 1 (id ./data/tessdata/eng.traineddatanumber-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02c1a4650 still has count 1 (id ./data/tessdata/eng.traineddatabigram-dawg)
ObjectCache(0x7f1a4fd36200)::~ObjectCache(): WARNING! LEAK! object 0x55f02c1a4c90 still has count 1 (id ./data/tessdata/eng.traineddatafreq-dawg)
make: unlink: base/thirdparty/kpvcrlib/crengine/cr3gui/data/tessdata: Is a directory

I investigated that one, and there did not seem to be a real leak, might look into it again after #12497.

@NiLuJe

NiLuJe commented Sep 12, 2024

Copy link
Copy Markdown
Member

WARN could not load liblipclua: module 'liblipclua' not found:

Normal, kindle codepath.

ERROR Failed to initialize terminal plugin: plugins/terminal.koplugin/main.lua:108: wrong number of arguments to 'insert'

Might actually be a bug, but I don't recall if there are still terminal PRs in flight about that ;).

WARN Error when loading plugins/coverbrowser.koplugin/main.lua common/lua-ljsqlite3/init.lua:109: ';' expected near '='

Also expected, ye olde' busted.

@NiLuJe

NiLuJe commented Sep 12, 2024

Copy link
Copy Markdown
Member

Welp, I was too slow ;p.

@benoit-pierre

benoit-pierre commented Sep 12, 2024

Copy link
Copy Markdown
Member

Interesting feature would be scanning a pdf file for existing embedded highlights and creating our corresponding annotations. Dunno if MuPDF can do it. @benoit-pierre ?

Using those to iterate over a page's annotations (like we already do in getMarkupAnnotation):

/*
	Returns a borrowed reference to the first annotation on
	a page, or NULL if none.

	The caller should fz_keep this if it intends to hold the
	pointer. Unless it fz_keeps it, it must not fz_drop it.
*/
pdf_annot *pdf_first_annot(fz_context *ctx, pdf_page *page);

/*
	Returns a borrowed reference to the next annotation
	on a page, or NULL if none.

	The caller should fz_keep this if it intends to hold the
	pointer. Unless it fz_keeps it, it must not fz_drop it.
*/
pdf_annot *pdf_next_annot(fz_context *ctx, pdf_annot *annot);

@Frenzie

Frenzie commented Sep 12, 2024

Copy link
Copy Markdown
Member

I've just nuked the plugin locally after getting tired of it preventing KOReader' startup on Android

You can simply disable it btw. (Unless that's what you meant by "nuke")

@hius07

hius07 commented Sep 12, 2024

Copy link
Copy Markdown
Member Author

Using those to iterate over a page's annotations (like we already do in getMarkupAnnotation):

Thanks, looks like I cannot do it in frontend, new methods in mupdf.lua are required. Postponing so far.

@benoit-pierre

Copy link
Copy Markdown
Member

I've just nuked the plugin locally after getting tired of it preventing KOReader' startup on Android

You can simply disable it btw.

That does not help on that first startup, which is when the shell detection fails.

(Unless that's what you meant by "nuke")

Nope. :P

@Frenzie

Frenzie commented Sep 12, 2024

Copy link
Copy Markdown
Member

Might actually be a bug, but I don't recall if there are still terminal PRs in flight about that ;).

#12384 remains in a bit of limbo atm.

@Frenzie

Frenzie commented Sep 12, 2024

Copy link
Copy Markdown
Member

That does not help on that first startup, which is when the shell detection fails.

Fair enough, but while it doesn't seem to be working quite right for me atm (and I think it used to?), it doesn't have any such effects.

@NiLuJe NiLuJe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good, just a few questions basically ;).

Reviewed 8 of 10 files at r1, 1 of 2 files at r3, 1 of 1 files at r4, all commit messages.
Reviewable status: all files reviewed, 9 unresolved discussions (waiting on @hius07)


frontend/apps/filemanager/filemanagermenu.lua line 948 at r4 (raw file):

    end

    UIManager:close(self.menu_container)

What's the rationale for moving this after the ConfirmBox?


frontend/apps/reader/modules/readerhighlight.lua line 560 at r4 (raw file):

            text_func = function()
                local text = self.highlight_write_into_pdf and _("on") or _("off")
                if (not self.highlight_write_into_pdf) == (not G_reader_settings:isTrue("highlight_write_into_pdf")) then

Is there a quirk I'm missing that wouldn't allow writing this as

if self.highlight_write_into_pdf == G_reader_settings:isTrue("highlight_write_into_pdf" then

instead?


frontend/apps/reader/modules/readerhighlight.lua line 661 at r4 (raw file):

                    callback = function()
                        UIManager:show(ConfirmBox:new{
                            text = _("Are you sure you want to delete all highlights from pdf file?"),

We might want to explain that this currently only applies to KOReader highlights.


frontend/apps/reader/modules/readerhighlight.lua line 2426 at r4 (raw file):

                self.highlight_write_into_pdf = config:isTrue("highlight_write_into_pdf") -- true or false
            else
                self.highlight_write_into_pdf = G_reader_settings:readSetting("highlight_write_into_pdf") -- true or nil

Ah. That could be the quirk I was looking for above ;).

Maybe use G_reader_settings:readSetting("highlight_write_into_pdf") or false to avoid the inconsistency?


frontend/apps/reader/modules/readerhighlight.lua line 2452 at r4 (raw file):

    self.ui.doc_settings:saveSetting("highlight_drawer", self.view.highlight.saved_drawer)
    self.ui.doc_settings:saveSetting("highlight_color", self.view.highlight.saved_color)
    self.ui.doc_settings:saveSetting("highlight_write_into_pdf", self.highlight_write_into_pdf)

Which would imply we always write this in doc_settings (which I'm fine with, mind you, just mentioning that in passing ;)).


frontend/apps/reader/modules/readermenu.lua line 378 at r4 (raw file):

    end

    self:onTapCloseMenu()

Same question as in FMMenu ;).


frontend/apps/reader/modules/readermenu.lua line 409 at r4 (raw file):

    if FileManager.instance then
        FileManager.instance:onClose()
    end

Closing FM before the nextTick was really really important, IIRC ;).

Code quote:

    local FileManager = require("apps/filemanager/filemanager")
    if FileManager.instance then
        FileManager.instance:onClose()
    end

frontend/ui/data/onetime_migration.lua line 711 at r4 (raw file):

end

-- 20240912, Write highlights to PDF: revisited

Missing the PR link in the comment ;).


frontend/ui/elements/common_settings_menu_table.lua line 569 at r4 (raw file):

local metadata_folder_help_text = table.concat(metadata_folder_help_table, "\n")

local hash_filemod_warn = T(_("%1 requires calculating partial file hashes of documents which may slow down file browser navigation. Any file modifications (such as embedding annotations into PDF files or downloading from calibre) may change the partial hash, thereby losing track of any highlights, bookmarks, and progress data. Embedding PDF annotations can be set at menu Typeset - Highlights - Write highlights into PDF."), metadata_folder_str.hash)

nit: The fancy arrows → were nicer ;).

Code quote:

local hash_filemod_warn = T(_("%1 requires calculating partial file hashes of documents which may slow down file browser navigation. Any file modifications (such as embedding annotations into PDF files or downloading from calibre) may change the partial hash, thereby losing track of any highlights, bookmarks, and progress data. Embedding PDF annotations can be set at menu Typeset - Highl

@hius07 hius07 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Reviewable status: 7 of 10 files reviewed, 8 unresolved discussions (waiting on @NiLuJe)


frontend/apps/filemanager/filemanagermenu.lua line 948 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

What's the rationale for moving this after the ConfirmBox?

Old code: the menu widget goes closed, if a user decides to "Restart anyway", UImanager:close is called once more on closed widget.
My code: ConfirmBox appears, the menu is kept open. If a user decides to "exit", he has an opened menu for that. If a user decides to "Restart anyway", the menu closes only once.


frontend/apps/reader/modules/readerhighlight.lua line 661 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

We might want to explain that this currently only applies to KOReader highlights.

Done.


frontend/apps/reader/modules/readerhighlight.lua line 2426 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

Ah. That could be the quirk I was looking for above ;).

Maybe use G_reader_settings:readSetting("highlight_write_into_pdf") or false to avoid the inconsistency?

On clean install, G_ setting is absent (nil), and doc_ setting will be absent until a user changes it to "off", then it becomes false.


frontend/apps/reader/modules/readerhighlight.lua line 2452 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

Which would imply we always write this in doc_settings (which I'm fine with, mind you, just mentioning that in passing ;)).

The doc_ setting appears in sdr only when a user changes it (choosing "On" or "Off" that is the per document setting). Until then it remains nil.


frontend/apps/reader/modules/readermenu.lua line 409 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

Closing FM before the nextTick was really really important, IIRC ;).

We should not have FileManager.instance when we have ReaderUi.instance, right?
If it appears somehow, we should fix the bug at the source.


frontend/ui/data/onetime_migration.lua line 711 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

Missing the PR link in the comment ;).

Done


frontend/ui/elements/common_settings_menu_table.lua line 569 at r4 (raw file):

Previously, NiLuJe (NiLuJe) wrote…

nit: The fancy arrows → were nicer ;).

Done

@hius07

hius07 commented Sep 13, 2024

Copy link
Copy Markdown
Member Author

Maybe use G_reader_settings:readSetting("highlight_write_into_pdf") or false to avoid the inconsistency?

The purpose is to have both G_ and doc_ highlight_write_into_pdf absent on clean install, until a user changes them in the menu.

@NiLuJe

NiLuJe commented Sep 13, 2024

Copy link
Copy Markdown
Member

The purpose is to have both G_ and doc_ highlight_write_into_pdf absent on clean install, until a user changes them in the menu.

I got that. I'm not a fan of it in practice myself because it leads to wonkier runtime tests like what I quoted, but I get the reasoning ;).

(No strong feelings about it, though, there are many many many instances of similar behavior in the codebase ;)).

@NiLuJe NiLuJe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reviewed 3 of 3 files at r5, all commit messages.
Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @hius07)


frontend/apps/reader/modules/readermenu.lua line 409 at r4 (raw file):

Previously, hius07 wrote…

We should not have FileManager.instance when we have ReaderUi.instance, right?
If it appears somehow, we should fix the bug at the source.

Oops, I somehow thought this was a FM menu, not a Reader one, my bad ;).

FWIW, this has been in there since the inception of the exitOrRestart methods waaaay back in #2772 ;).

@poire-z poire-z left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not familiar with all that, looks ok, trusting you.

@hius07 hius07 merged commit bf290e0 into koreader:master Sep 14, 2024
@hius07 hius07 deleted the write-hl-into-pdf branch September 14, 2024 12:21
@hius07 hius07 added this to the 2024.08 milestone Sep 14, 2024
NiLuJe added a commit to NiLuJe/koreader that referenced this pull request Oct 25, 2024
That callback is used for custom exit paths (e.g., OTA).

Regression in koreader#12509
NiLuJe added a commit that referenced this pull request Oct 26, 2024
That callback is used for custom exit paths (e.g., OTA).

Regression in #12509
Commodore64user pushed a commit to Commodore64user/KOReader_fork that referenced this pull request Nov 13, 2024
That callback is used for custom exit paths (e.g., OTA).

Regression in koreader#12509
wbstx added a commit to wbstx/koreader that referenced this pull request Nov 29, 2024
KOReader 2024.11 "Slang"

![koreader-2024-11-slangie](https://github.com/user-attachments/assets/cb9e68bf-aa0f-47c7-a093-46fbf8bb19c3)

Some of you on Android may have had dictionary issues. That should be fixed now.

Connecting to Wi-Fi should be more reliable on platforms where we manage it ourselves, most notably Kobo (koreader/lj-wpaclient#11).

Color is now supported when reflowing (koreader#12085).

This month's logo was contributed by @Sonnenfee

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

* Certain network features will now work in Flatpak (<flathub/rocks.koreader.KOReader#52>) @kii-chan-reloaded
* 'Use left and right keys for page turning' option added (koreader#12174) @Commodore64user
* Text editor: enhancement (koreader#12176) @hius07
  (1) Speed up adding/deleting chars (by avoiding a call of expensive splitToChars), noticeable on big files.
  (2) Indicate select mode: wider cursor.
* Annotations: more fixes (koreader#12181) @hius07
  (1) Allows annotations with equal datetime fields.
  (2) Allows page bookmarks with equal page numbers.
* kopt: color support (koreader#12085) @benoit-pierre
* bump base (updated build system) & fix macOS CI (koreader#12187) @benoit-pierre
* AltStatusBar/Footer: add the read timer value (koreader#12002) @zwim
* bump translations (koreader#12193) @pazos
* CRE call cache: don't wrap setViewMode (koreader#12194) @poire-z
* bump crengine: various fixes and optimizations (koreader#12200) @poire-z
* Add author option for alt status bar (koreader/crengine#575) (koreader#12197) @trash-pandy
* Page turns: invert vertical tap zones (koreader#12195) @hius07
* Annotations: pageno honors reference pages and hidden flows (koreader#12214) @hius07
* ToggleSwitch: fix long-press (koreader#12215) @hius07
* SDL: Return true in NetworkMgr:isConnected on !hasWifiToggle platforms (koreader#12217) @NiLuJe
* Kobo: Refactor various aspects of the Kaleido/MTK support (koreader#12221) @NiLuJe
* ReaderAnnotation: fix doesMatch func (koreader#12231) @hius07
* bump base (koreader#12241) @benoit-pierre
* NetworkMgr: Attempt to handle wpa_supplicant rescans better (koreader#12236) @NiLuJe
* miscellaneous build system changes (koreader#12242) @benoit-pierre
* make: handle old build data directory (koreader#12259) @benoit-pierre
* ReaderFooter: improve (koreader#12243) @hius07
* Annotations: fix exporting (koreader#12261) @hius07
* make: install missing `cr3.css`… (koreader#12262) @benoit-pierre
* [fix] NetworkMgr: apply HTTP proxy setting on startup (koreader#12260) @Frenzie
* Kobo: Track frontlight state more accurately on suspend/resume (koreader#12256) @NiLuJe
* Make W-Fi scan more reliable (koreader#12265, koreader/lj-wpaclient#11) @NiLuJe
* ReaderAnnotation: fix doesMatch func 2 (koreader#12270) @hius07
* make: fix android update sdcv (koreader#12275) @benoit-pierre
* [plugin] Reader footer: check if header resp. footer are available (koreader#12264) @zwim
* ReadHistory: On remove, trust the index from FileManagerHistory if possible (koreader#12253) @NiLuJe
* ReaderUI: add `seamless` argument to switchDocument (koreader#12290) @ziz57
* Fix early unhighlight after Add to vocab builder (koreader#12288) @poire-z
* [CoverBrowser.MosaicMenu] Increase the thickness of the mosaic’s focus underline (koreader#12189) @Commodore64user
* doc: update building documentation (koreader#12295) @benoit-pierre
* NetworkMgr: fix debug trace (koreader#12297) @benoit-pierre
* Panel zoom: Properly handle `renderPage()` not rendering the whole page (koreader#12296) @fbriere
* PowerD: Keep track of frontlight state change by interactive callers for suspend/resume purposes (koreader#12283) @NiLuJe
* InputDialog and MultiInputDialog: improve enter and edit callback handling, and implement addWidget (koreader#12289) @ziz57
* ReaderSearch: "All text" improve (koreader#12287) @hius07
* Show/Hide Virtual keyboard and more keyboard shortcuts (koreader#12162) @Commodore64user
* bump base; mostly thirdparty bumps (koreader#12311) @benoit-pierre
* Document: Do not cache panel-zoom tiles to disk and fix their caching and rendering (koreader#12303) @NiLuJe
* Disable the legacy ReaderRotation module (koreader#12309) @NiLuJe
* bump luajit (koreader#12317) @benoit-pierre
* [AutoWarmth] Delay front light actions after resume (koreader#12315) @zwim
* Allow numbers in measure text: fixes a crash in table of contents when debugging on (koreader#12310) @zwim
* ReaderFooter: Add page-turn item (koreader#12249) @Commodore64user
* luajit launcher: out of tree build + don't rebuild luajit (koreader#12285) @benoit-pierre
* BookInfo: rating, review (koreader#12313) @hius07
* fix missing android APK asset (koreader#12333) @benoit-pierre
* ImageWidget: Don't attempt to pan if we haven't rendered the bb yet (koreader#12331) @NiLuJe
* OTM: Unbreak koreader#11999  (koreader#12337) @NiLuJe
* Kobo: Refactor suspend in order to be able to catch input events sent during the 2s window of ntx madness (koreader#12330) @NiLuJe
* [Menu] Remove title bar buttons from layout on hasSymKey or hasScreenKB (koreader#12328) @Commodore64user
* [doc] Build: update Android instructions to openjdk-17-jdk (koreader#12345) @Frenzie
* Support 'Ctrl' shortcuts on hasKeyboard (koreader#12347) @Commodore64user
* Annotations: fix page numbers (koreader#12324) @hius07
* Bug Fix: DPad conflict on Kindle Keyboard (koreader#12341) @Commodore64user
* Nit: Make some cache keys prettier (koreader#12354) @NiLuJe
* Dispatcher: minor wording fixes (koreader#12356) @hius07
* kodev rework (koreader#12338) @benoit-pierre
* czmq & libzmq: update to 4.2.1 & 4.3.5 respectively (koreader#12350) @benoit-pierre
* [TextViewer] Add hamburger menu to FocusManager and Menu key (koreader#12365) @Commodore64user
* ci: fix test / coverage (koreader#12367) @benoit-pierre
* A couple of tiny fixes (koreader#12359) @NiLuJe
* android: tweak update rule (koreader#12370) @benoit-pierre
* doc: update Android build instructions (koreader#12368) @benoit-pierre
* Display menu preview of italic-only fonts (koreader#12351) @charrarr
* ReaderStatus, Book status widget: cleanup (koreader#12343) @hius07
* ci/macos: fix homebrew packages install (koreader#12382) @benoit-pierre
* Fix terminal broken cursor and backspace (koreader#12375) @zwim
* Screensaver: add option to rotate to fit screen (koreader#12366) @charrarr
* Minor keyboard corrections (koreader#12372) @Commodore64user
* Touch menu: always go up to correct parent page (koreader#12378) @hius07
* Collections: fix context menu (koreader#12383) @hius07
* PDF: no "Contrast set to" notification on opening (koreader#12391) @hius07
* Closing Bookmark details dialog with X should also refresh list entry (koreader#12390) @fbriere
* Add numerical key_codes to event_map on kindle 3 (koreader#12358) @Commodore64user
* FocusManager: Fix focus_flags check in moveFocusTo, and deal with the fallout (koreader#12361) @NiLuJe
* Various notification, text editor and footnote popup minor fixes (koreader#12406) @poire-z
* Bug: Account for local reading order direction adjustments. (koreader#12388) @Commodore64user
* android: add custom `adb logcat` formatter (koreader#12385) @benoit-pierre
* kodev: improve `kodev prompt` (koreader#12408) @benoit-pierre
* kodev: fix `./kodev run android…` (koreader#12407) @benoit-pierre
* Readerfont: Current font on top in menu; New fonts from current session on top in font test doc (koreader#12410) @jonnyl2
* Fix a couple of potentially spurious footer refreshes (koreader#12422) @NiLuJe
* FileManager: Handle the FlushSettings event (koreader#12425) @NiLuJe
* PageBrowser: fix drawing of thicker thumbnail frame on tap (koreader#12432) @poire-z
* FileManagerSetDefaults: Handle strings that we default to nil (koreader#12433) @NiLuJe
* Input: Ignore ABS_X, ABS_Y & ABS_PRESSURE for snow_protocol (koreader#12427) @NiLuJe
* Add color highlight menu (koreader#11044) @smasher816
* Exporter: choose highlight styles to be exported (koreader#12431) @hius07
* ReaderView: Don't crash on pre-koreader#11044 highlights without a color field (koreader#12438) @NiLuJe
* Terminal fixes (koreader#12369) @ziz57
* Dispatcher/DeviceListener: Temporarily turn on Accelerometer/GSensor for 5 sec (koreader#12419) @jonnyl2
* fix bug preventing export to joplin; (koreader#12446) @bitterlox
* bump base: blitbuffer, android build, crengine (koreader#12451) @poire-z
* InputText: Unbreak onTapTextBox on an already in-focus field (koreader#12449) @NiLuJe
* Update el_popup.lua (koreader#12463) @ichnilatis-gr
* [Dispatcher] add [missing] conditions to dispatcher items (koreader#12453) @Commodore64user
* ReaderView: Fix a couple of edge-cases in onReaderFooterVisibilityChange (koreader#12466) @NiLuJe
* misc: Move cleanupSelectedText to util (koreader#12477) @NiLuJe
* ReaderHighlight: Fix an old typo in the OCR help string (koreader#12479) @NiLuJe
* Highlights popup dialog: add "Color" and "Details" buttons (koreader#12461) @hius07
* ButtonDialogTitle: remove (koreader#12394) @hius07
* [Dispatcher] new events for selecting links (koreader#12474) @Commodore64user
* Doc: Update quickstartguide on kindle non touch (koreader#12426) @Commodore64user
* [NT] Call GotoViewRel for page up/down on useDPadAsActionKeys devices (koreader#12495) @cccslater
* bump base (koreader#12503) @benoit-pierre
* Defaults: Deprecate DKOPTREADER_CONFIG_DOC_LANGS_TEXT (koreader#12504) @NiLuJe
* ReaderAnnotation: skip old highlights with invalid xpointers (koreader#12494) @hius07
* Cloud Sync: handles potentially incompatible backup and incoming dbs (koreader#12470) @weijiuqiao
* VocabBuilder.koplugin: Better handling word context (koreader#12469) @weijiuqiao
* Write highlights into PDF: revisited (koreader#12509) @hius07
* SyncService: Only require online connectivity when using Dropbox (koreader#12520) @NiLuJe
* Chore: Don't cache static data tables (ui/elements, ui/data, kb layouts & co) (koreader#12519) @NiLuJe
* Fix page gap inconsistencies between doc open & config change (koreader#12507) @NiLuJe
* Kindle: Restore hall effect sensor state on startup (koreader#12521) @NiLuJe
* VocabBuilder.koplugin: save dict headword as entry (koreader#12530) @weijiuqiao
* Add PocketBook Verse Pro Color (PB634K3) (koreader#12476) @ElimGarak1
* Onyx Boox Go 10.3 support (koreader#12533) @hugleo
* Statistics: fix null terminated strings, add toggle stats (koreader#12547) @hius07
* input: drop use of `ffi/input` (koreader#12486) @benoit-pierre
* ci/circle: fix tests parallelism (koreader#12551) @benoit-pierre
* input: fix kobo init (koreader#12553) @benoit-pierre
* [ReaderFooter] update status bar in real time when inverting page turning (koreader#12424) @Commodore64user
* input: fix pocketbook init (koreader#12555) @benoit-pierre
* use new `ffi.loadlib` helper (koreader#12545) @benoit-pierre
* input: fix loading of `fbink_input` library (koreader#12560) @benoit-pierre
* Fix typos in quickstart (koreader#12566) @cheywood
* File search: improve (koreader#12549) @hius07
* [DictQuickLookup] shortcuts for editing searches (koreader#12539) @Commodore64user
* Profiles: auto-execute on events (koreader#12564) @hius07
* Exporter: export to book folder, register to Dispatcher (koreader#12569) @hius07
* sdl: use our compiled version for the AppImage (koreader#12575) @benoit-pierre
* Add kobov4 & kobov5 targets (koreader#12568) @NiLuJe
* android: switch to monolibtic mode (koreader#12576) @benoit-pierre
* android: fix apkanalyzer location (koreader#12563) @benoit-pierre
* Disabled rotation map for Android devices where "hw media keys follow gravity" (koreader#12557) @jkl16
* Quickstart guide kindle illustrations (koreader#12577) @Commodore64user
* [plugin] Exporter: fix typo (koreader#12592) @Frenzie
* Dispatcher: values' range consistent with bottom menu (koreader#12580) @hius07
* metadata translations for fdroid/flathub (koreader#12581) @pazos
* ProgressWidget: fix misalignment (koreader#12526) @wbstx
* Add wifi support to Cervantes Touch Light devices (koreader#12148) @jsanpe
* ReaderTypeset: fix margins info (koreader#12609) @hius07
* DocSettingsTweak: apply to books with status (koreader#12606) @hius07
* Menu widget: rotation handler (koreader#12573) @hius07
* Profiles: add "on rotation" auto-execute event (koreader#12612) @hius07
* ReaderHighlight: adjustable "Edit highlight" dialog position (koreader#12599) @hius07
* KOSync/Kobo: Explicitly kill Wi-Fi on suspend (koreader#12616) @NiLuJe
* Kobo: Minor simplification after koreader#12616 (koreader#12629) @NiLuJe
* bump luajit-launcher (koreader#12630) @benoit-pierre
* Terminal: Minor cleanups (koreader#12631) @NiLuJe
* Menu widget: draw focus on focused item (koreader#12583) @hius07
* Cloud storage: fix sorting non-English filenames (koreader#12644) @hius07
* Text editor: show current line number (koreader#12632) @hius07
* InputText: fix Terminal plugin input (koreader#12652) @hius07
* ReaderFont test: Error correction -- new fonts were not rendering in own font (koreader#12646) @jonnyl2
* ReaderHighlight: fix color for extended highlight in pdf (koreader#12654) @hius07
* Kindle Scribe: fix elseif for orientation code (koreader#12663) @mergen3107
* Menu: Fix fallout from koreader#12583 on hasDPad devices (koreader#12657) @NiLuJe
* Misc: Some more FocusManager fallout (koreader#12667) @NiLuJe
* plugin messages (koreader#12636) @pazos
* And deprecation to autofrontlight (koreader#12619) @pazos
* Add deprecation for unmaintained targets (koreader#12620) @pazos
* Profiles: more auto-exec triggers (koreader#12651) @hius07
* PatchManagement: prettify menu (koreader#12668) @hius07
* Fix KOReader spelling in the code (koreader#12670) @mergen3107
* Update Building.md - meson install from backports (koreader#12680) @mergen3107
* OTA: Make the final ConfirmBox undismissable (koreader#12676) @NiLuJe
* Text editor: rotate (koreader#12658) @hius07
* Profiles: more auto-exec triggers 2 (koreader#12691) @hius07
* Add authentication request and cookies management for news (koreader#12496) @bateast
* calibre: always use custom fast parser (koreader#12714, koreader#12715) @pazos
* Add Nextcloud Notes to exporter plugin (koreader#12301) @kotnik
* [plugin] Wallabag: remove empty file when download fails (koreader#12723) @fenuks
* [plugin] Wallabag: separate option to delete ‘on hold’ articles (koreader#12722) @fenuks
* kopt: fix OCR segmentation mode (koreader#12726) @benoit-pierre
* bump base (koreader#12727) @benoit-pierre
   Most notably dropbear: update to 2024.85 (koreader/koreader-base#1964)
* bump android-luajit-launcher (koreader#12734) @pazos
* ci/circle: manually cap build jobs (koreader#12751) @benoit-pierre
* Adjust Minimum Font Size in Terminal Emulator (koreader#12752) @pphszx
* ReaderHighlight: Highlight menu, change 'Delete' to Trash can icon (koreader#12758) @jonnyl2

* @trash-pandy made their first contribution in koreader#12197
* @fbriere made their first contribution in koreader#12296
* @charrarr made their first contribution in koreader#12351
* @smasher816 made their first contribution in koreader#11044
* @bitterlox made their first contribution in koreader#12446
* @cccslater made their first contribution in koreader#12495
* @cheywood made their first contribution in koreader#12566
* @jkl16 made their first contribution in koreader#12557
* @wbstx made their first contribution in koreader#12526
* @jsanpe made their first contribution in koreader#12148
* @fenuks made their first contribution in koreader#12723
* @pphszx made their first contribution in koreader#12752

**Full Changelog**: koreader/koreader@v2024.07...v2024.11 — [closed milestone issues](https://github.com/koreader/koreader/milestone/74?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)
0xstillb pushed a commit to 0xstillb/koreader-thai that referenced this pull request May 9, 2026
0xstillb pushed a commit to 0xstillb/koreader-thai that referenced this pull request May 9, 2026
That callback is used for custom exit paths (e.g., OTA).

Regression in koreader#12509
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.

Write highlight to PDF: uncentered pop-up window

5 participants