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