gnucash future: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Sat Aug 22 14:34:27 EDT 2026
Updated via https://github.com/Gnucash/gnucash/commit/625887b8 (commit)
via https://github.com/Gnucash/gnucash/commit/c0db031b (commit)
via https://github.com/Gnucash/gnucash/commit/f9f9e630 (commit)
via https://github.com/Gnucash/gnucash/commit/c3a7be18 (commit)
via https://github.com/Gnucash/gnucash/commit/d1eb9b4b (commit)
via https://github.com/Gnucash/gnucash/commit/a6c2d024 (commit)
from https://github.com/Gnucash/gnucash/commit/b76358c0 (commit)
commit 625887b8fa2f5b5278caa5406ae5b2e4907a60e9
Merge: b76358c050 c0db031bb1
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Aug 22 11:29:41 2026 -0700
Merge John Ralls's 'win32-webview2' into future
commit c0db031bb11da76f47575af9ac2a5292d2ccda76
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Aug 15 12:52:44 2026 -0700
[html] Implement Open Link in a new Window menu item on WebView2.
This web page context menu item, always ignored on the WebKit
implementation, opened a new native WebView2 window with an
error message because it couldn't interpret the Gnucash-special
URL. Implement GnuCash special URL handling for register and price
type URLs and remove the menu item for multicolumn report
subreports because they must open in the same tab as the master
report.
Note that this does not implement handling the context menu item
in WebKit2.
Assisted-by: Claude Code Sonnet 5
Signed-off: John Ralls <jralls at ceridwen.us>
commit f9f9e63045fa6ebdfb5d576470a3473a1133a74c
Author: John Ralls <jralls at ceridwen.us>
Date: Sat Aug 15 12:24:11 2026 -0700
[html] Change the meaning of new_window in show_url.
New meaning is open the url in a new GncMainWindow. The old meaning
was the currently open report tab can't handle this link type so it
needs to open in a separate tab. The hint to override the type test
was never passed and the effect was a single function call immediately
after the test; there was no need for a variable, local or otherwise.
commit c3a7be182040fb0b380ffeb66f88987731a33c2d
Author: John Ralls <jralls at ceridwen.us>
Date: Sun Jan 18 09:47:50 2026 -0800
Remove the MINGW/MINGW64 distinction
The original Mingw project appears to have passed away with the demise last
year of OSDN if not before. Even the original mingw.org domain now points to
a Q&A website.
Note for backend/dbi/CMakeLists.txt that WINSOCK_LIB needs to be defined on
Windows no matter what compiler is used.
The section fiddling with CMAKE_FRAMEWORK_PATH was a relic of the pre-jhbuild
Windows build. It's quite wrong now.
commit d1eb9b4bd7c017b9b1ad99d5864543b5c458c902
Author: John Ralls <jralls at ceridwen.us>
Date: Thu Jul 23 15:29:40 2026 -0700
Remove WebKit1 files and references.
Replaced by WebView2.
commit a6c2d024f955140ca73838b7d5831dbf0f9c517c
Author: John Ralls <jralls at ceridwen.us>
Date: Sun Jul 19 12:19:48 2026 -0700
Create a new HTML backend using MS WebView2 and set Win32 builds to use it.
Key points:
* The host is a GtkEventBox (not a bare GtkDrawingArea â nothing draws
into it via Cairo) forced to own a native HWND via
gdk_window_ensure_native(); WebView2's controller parents directly to that
HWND and its bounds track the widget's allocation on size-allocate.
* Environment/controller creation is async, but GnuCash calls show_url
synchronously right after construction â handled with a one-slot
pending-navigation queue, flushed once the controller is ready.
* Link-click interception (NavigationStarting) distinguishes our own
Navigate() calls from user clicks via an internal flag rather than a
versioned IsUserInitiated property, sidestepping a QueryInterface I
couldn't be certain would resolve correctly under MinGW.
* COM completion handlers are hand-rolled (not WRL) specifically to avoid
depending on wrl/*.h being present in the MSYS2 toolchain.
* gnc-html-webview2 was adapted from gnc-html-webkit2, itself a modification of the soon to
be deleted gnc-html-webkit1. Even though that adaptation was performed by the LLM indicated
below the POSIX parts were lightly changed and remain essentially human output. The
MSWindows parts, however, are generally original to the LLM to the extent that anything from
an LLM is original. To help indicate what those parts are I have added " -- Claude Code,
2026" attribution to the explanatory comments for those parts of the code.
Assisted-by: Claude Code Sonnet 5
Signed-off: John Ralls <jralls at ceridwen.us>
Summary of changes:
CMakeLists.txt | 41 +-
common/cmake_modules/GncAddSchemeTargets.cmake | 12 +-
common/cmake_modules/GncAddTest.cmake | 8 +-
common/config.h.cmake.in | 4 +-
gnucash/gnome/gnc-plugin-page-report.cpp | 42 +-
gnucash/gnome/gnc-plugin-page-report.h | 8 +-
gnucash/gnome/gnc-plugin-report-system.c | 21 +-
gnucash/gnome/top-level.c | 2 +
gnucash/html/CMakeLists.txt | 19 +-
gnucash/html/gnc-html-factory.cpp | 4 +
gnucash/html/gnc-html-webkit.hpp | 4 +-
gnucash/html/gnc-html-webkit1.cpp | 1362 ----------------
gnucash/html/gnc-html-webkit2.cpp | 33 +-
gnucash/html/gnc-html-webview2-p.hpp | 86 +
gnucash/html/gnc-html-webview2.cpp | 1640 ++++++++++++++++++++
...{gnc-html-webkit1.hpp => gnc-html-webview2.hpp} | 39 +-
gnucash/html/gnc-html.cpp | 17 +-
gnucash/html/gnc-html.h | 30 +-
libgnucash/backend/dbi/test/CMakeLists.txt | 2 +-
po/POTFILES.in | 2 +-
20 files changed, 1839 insertions(+), 1537 deletions(-)
delete mode 100644 gnucash/html/gnc-html-webkit1.cpp
create mode 100644 gnucash/html/gnc-html-webview2-p.hpp
create mode 100644 gnucash/html/gnc-html-webview2.cpp
rename gnucash/html/{gnc-html-webkit1.hpp => gnc-html-webview2.hpp} (55%)
More information about the gnucash-patches
mailing list