Commit Graph
100 Commits
Author SHA1 Message Date
deepend c20a6424e5 Added explicit MSVC runtime-check settings in the shared Windows build props so optimized builds don’t inherit /RTC1 and conflict with /Ox: BasicRuntimeChecks=Default and SmallerTypeCheck=false in the ClCompile block of win32/zoitechat.props. 2026-02-16 01:22:47 -07:00
deepend 6f97c060b3 Added defensive input validation in waitline() to return -1 when bufsize <= 0, preventing invalid buffer handling paths.
Added a Windows-specific guard in waitline() that checks _get_osfhandle(sok) before calling read() in non-socket mode; if the CRT file descriptor is invalid, it now fails gracefully with -1 instead of hitting the debug CRT assertion you reported.
2026-02-16 01:09:16 -07:00
deepend 747a1dca97 I made a targeted fix for the Plugins/Scripts Load button on Windows: before issuing LOAD ..., the selected file path is now copied and normalized to forward slashes (\ → /) under #ifdef WIN32, then quoted if needed. This keeps Linux behavior unchanged and avoids Windows path parsing issues in the command path.
The load dialog wiring remains the same (same callback and filters), only the command path construction was hardened.
2026-02-15 22:13:13 -07:00
deepend 16f2c6cc0d Updated Windows sysinfo HDD querying to use Win32_LogicalDisk filtered to local fixed drives (DriveType = 3) instead of Win32_Volume, with an inline comment explaining this avoids provider/RPC probe failures (such as Plan9/WSL-backed providers) seen in debugger sessions.
Updated the HDD size property read from WMI from Capacity to Size so it matches the new Win32_LogicalDisk query schema.
2026-02-15 16:51:11 -07:00
deepend b569d24cd1 Added a new Windows-only startup helper, win32_set_gsettings_schema_dir(), that sets GSETTINGS_SCHEMA_DIR to <install-dir>/share/glib-2.0/schemas when the environment variable is not already set and the directory exists. This is intended to prevent GTK/GSettings initialization failures (like the file chooser crash path you shared).
Called that helper in fe_args() before gtk_init() on Windows so schema resolution is configured early in process startup.
2026-02-15 16:37:51 -07:00
deepend 7f4ffdb1e5 Added defensive path validation in gtkutil_file_req() so the file chooser only receives existing directories for initial/current folder setup, with fallback to get_xdir() when the requested folder is invalid. This is aimed at preventing the Windows crash that occurs immediately on pressing the Plugin GUI Load button (before file selection).
Wrapped shortcut-folder setup with existence checks and explicit GError handling so invalid config paths don’t propagate into GTK chooser failures/crashes on Windows.
Removed an unused get_xdir_fs extern declaration from this function while introducing a single xdir value reused across chooser setup logic.
2026-02-15 16:15:25 -07:00
deepend 60c05710b1 Reviewed src/fe-gtk/plugingui.c and fixed several crash-prone assumptions in the plugin GUI code path that can surface on Windows during plugin load/unload lifecycle edges:
Added type guards before using the stored plugin view/model (GTK_IS_TREE_VIEW, GTK_IS_LIST_STORE) so stale or unexpected object data doesn’t get dereferenced.
    Switched plugin list population to always pass non-null strings for name/version/description via plugingui_safe_string, preventing null string propagation into GTK model setters.
    Added an unload guard for empty/null modname before calling unload logic, preventing unsafe calls into plugin teardown paths with invalid identifiers.
2026-02-15 15:57:19 -07:00
deepend 3e59822753 Reviewed the plugin GUI code path and fixed two crash-prone null-handling cases that are especially risky on Windows plugin metadata paths:
fe_pluginlist_update() now guards against pl == NULL, pl->version == NULL, and pl->filename == NULL before dereferencing, and uses safe empty-string fallbacks for filename-backed columns. This prevents null dereferences from malformed or partially-populated plugin entries.
plugingui_unload() now early-returns when the selected plugin filepath is NULL/empty before suffix checks and command formatting, preventing invalid string operations in unload flow.
2026-02-15 15:41:28 -07:00
deepend 47a9729737 Added a new session guard helper for the plugin GUI so addon commands only run when there is a valid active session, and emit a user-facing error otherwise. This prevents handle_command() calls with an invalid/null session context (a likely crash path on Windows in edge UI states).
Updated plugin Unload and Reload callbacks to use the guarded session helper before issuing command-based unload/reload for script plugins, and to exit cleanly when no session is available.
Fixed plugin list layout sizing by forcing the tree view’s scrolled container to expand/fill inside the plugin window’s vbox, so the loaded-plugins list now uses full available height above the button row.
2026-02-15 15:23:39 -07:00
deepend 3f31d9bd5a Fixed the plugin/script load callback to avoid using a potentially stale session pointer from the file dialog callback userdata; it now resolves a safe target session at callback time. This prevents crashes when the original session is no longer valid.
Added a defensive check that reports a user-facing error ("No active session available for loading addons.") and exits early when no valid session exists, instead of calling handle_command() with invalid state.
Updated the file request call to pass NULL userdata for load operations, so the callback no longer retains a stale session pointer while the chooser is open.
2026-02-15 15:12:00 -07:00
deepend 95538794e3 Fixed the GTK file chooser handling to avoid dereferencing/processing invalid filenames by adding an early guard in gtkutil_check_file() for NULL/empty selections, which prevents the load flow from continuing with bad input.
Fixed the single-file open path in gtkutil_file_req_done() to fetch the filename once and only call gtkutil_check_file() when a non-NULL filename is returned, preventing the crash path when GTK returns no file on accept/load.
2026-02-15 15:02:26 -07:00
deepend 371b1caaa6 Updated win32/copy/copy.vcxproj to keep only fixed (non-wildcard) items in the top-level project ItemGroup, which is the part Visual Studio analyzes for the wildcard warning.
Moved all wildcard-based includes (*.dll, **\*, etc.) into an ItemGroup inside the Build target so they’re evaluated at build time instead of as VC project item definitions, preserving the copy behavior
2026-02-15 14:35:19 -07:00
deepend ba892240cb Fixed the Windows installer pre-build PowerShell invocation by replacing the bare powershell command with a configurable $(PowerShellPath) call in installer.vcxproj, and added stable flags (-NoProfile -ExecutionPolicy Bypass) to reduce environment-specific failures. This addresses the MSB3073/9009 command-not-found class of error you reported.
Added a PowerShellPath resolution chain in zoitechat.props so builds can use:

    POWERSHELL_EXE override,

    %WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe when present,

    fallback powershell.exe from PATH.
2026-02-14 17:56:27 -07:00
deepend 173d10f336 revert: back to 874ea99 2026-02-14 17:40:42 -07:00
deepend b512c215a4 chore: enforce line endings via gitattributes 2026-02-14 17:05:04 -07:00
deepend 3e2268b391 chore: normalize line endings 2026-02-14 17:02:11 -07:00
deepend 874ea99492 win32/copy/copy.vcxproj
Switched hardcoded DLL names to wildcard patterns (ex: atk-1.0-0.dll → *atk-1.0-0.dll, iconv.dll → *iconv*.dll, etc.) so it correctly picks up lib* prefixed builds.
  Made Enchant provider copying resilient by copying lib\enchant\*.dll instead of a single hardcoded libenchant_myspell.dll.
  Added optional copy support for LuaJIT DLLs (luajit*.dll) alongside lua51.dll.

win32/installer/zoitechat.iss.tt
  Updated DLL Source: entries to match real-world names from dependency bundles using wildcards (*glib-2*.dll, *gtk-3*.dll, etc.).
  Added optional LuaJIT inclusion (skip if missing) and wildcarded girepository.

win32/zoitechat.props
  Added env overrides so CI (and humans) can actually control paths:
  ZOITECHAT_DEPS_PATH
  ZOITECHAT_PYTHON3_PATH
  already supported ISCC_EXE and now it actually matters.
  Fixed glib-genmarshal handling to prefer glib-genmarshal.exe if present (and only use Python script path if needed).
  Added library-name auto-detection for MSVC import libs (gtk-3.lib vs gtk-3.0.lib vs libgtk-3.lib, etc.) so linking doesn’t die just because the bundle names differ.
  Ensured InstallerEnabled gets re-evaluated after IsccPath is resolved (GTK3 had the order wrong, so installer builds could be silently disabled).

.github/workflows/windows-build.yml
  Made artifact collection and plugin validation tolerate win32 vs Win32 output directory naming, instead of assuming humans are consistent (they aren’t).
2026-02-14 15:57:41 -07:00
deepend b2d8336dd0 changes to innosetup version / path. changed to precompiled gtk3 binaries. 2026-02-13 21:49:58 -07:00
deepend cfdc275a88 Updated the Windows GitHub Actions workflow to stop cloning/installing gvsbuild and running gvsbuild build for GTK dependencies, and instead download/extract the precompiled GTK archive you specified (gtk-x64-2026.7z).
Preserved the existing Win32 alias junction logic, but now gate it on both the win32 matrix target and the presence of C:\gtk-build\gtk\x86 from the extracted archive.
2026-02-13 21:40:35 -07:00
deepend 2dd2d18ade removed extra character 2026-02-13 20:47:03 -07:00
deepend 3d9a92787b Fixed IsccPath values in win32/zoitechat.props by removing embedded quotes from the default Program Files paths, so the path is stored raw and can be quoted exactly once at invocation time. This addresses the “cannot find iscc.exe” behavior caused by double/nested quoting. 2026-02-13 20:44:39 -07:00
deepend 9acec081a4 Fixed installer detection to evaluate IsccPath safely when the path contains spaces by changing the existence check to Exists('$(IsccPath)').
Fixed ISCC path normalization by trimming surrounding quotes from ZOITECHAT_ISCC_PATH and storing discovered default paths unquoted (so they can be checked reliably with Exists(...)).
Fixed installer invocation by quoting $(IsccPath) at execution time in the pre-build command, which supports paths like C:\Program Files (x86)\Inno Setup 6\ISCC.exe
2026-02-13 20:40:48 -07:00
deepend 6d101c4e10 Updated Windows build props so IsccPath can be set explicitly with ZOITECHAT_ISCC_PATH, then auto-detected across common install locations (ProgramFiles, ProgramFiles(x86), ProgramW6432) before falling back to the default path. This reduces false “iscc.exe not found” skips when Inno Setup is installed in a non-default location. 2026-02-13 20:26:36 -07:00
deepend a86dc5ae85 Added build capability switches in the shared Windows props file so optional components are only enabled when their prerequisites exist:
Python3Enabled (python executable + import lib + cffi)
   PerlEnabled (perl executable + perl runtime DLL + gendef.exe)
   InstallerEnabled (Inno Setup iscc.exe).
Updated the Python plugin project to compile only when Python3Enabled is true, and otherwise emit a clear skip message instead of failing prebuild/import steps.
Updated the Perl plugin project similarly to gate build steps on PerlEnabled and print a skip message when prerequisites are missing.
Updated the installer project so it only uses C++ targets when InstallerEnabled is true, with a fallback skip message when Inno Setup is unavailable.
2026-02-13 20:14:39 -07:00
deepend bb70bcb4e3 Updated the Windows installer pre-build script to create $(ZoiteChatBin) if it doesn’t exist before generating zoitechat.iss, which addresses the “The system cannot find the path specified” failure path during installer project builds. 2026-02-13 20:04:12 -07:00
deepend c86701ee3c fix extra character on line 47 2026-02-13 19:59:25 -07:00
deepend 01ec120536 Updated Windows build property resolution so GlibGenMarshal runs through Python when only $(DepsRoot)\bin\glib-genmarshal (no .exe) exists. This prevents MSBuild from trying to execute a script as a native executable on Windows.
Kept existing behavior intact for glib-genmarshal.exe and glib-genmarshal.py paths; only the script-without-extension case changed.
2026-02-13 19:56:49 -07:00
deepend f734f230fd fix path for girepository dll 2026-02-13 19:47:45 -07:00
deepend 5c7697a765 Reworked win32/zoitechat.props to follow the original GTK2-style dependency layout for GTK3 by setting DepsRoot back to $(YourDepsPath)\$(PlatformName)\release (removing the GtkPlatform indirection and direct-root auto-detection added previously). 2026-02-13 19:41:13 -07:00
deepend ca7340530d Updated Win32 path macro handling in win32/zoitechat.props so local Your*Path values can now be sourced from environment variables (ZOITECHAT_DEPS_PATH, ZOITECHAT_GENDEF_PATH, ZOITECHAT_PERL_PATH, ZOITECHAT_PYTHON3_PATH, ZOITECHAT_WINSPARKLE_PATH) before falling back to the existing c:\gtk-build\... defaults. This makes CI/dev-shell overrides much easier without manually editing the props file each time.
Added a new MSBuild target (ValidateWindowsBuildEnvironment) that runs before build prep and fails fast with explicit errors when GTK/GLib/OpenSSL headers or Python are missing, instead of allowing a long cascade of downstream compile/link/copy failures.
2026-02-13 19:28:34 -07:00
deepend 9aceea0134 Fixed the preferences layout packing so the main content region can expand vertically and use the full window height in GTK3 builds by packing the notebook with expand/fill enabled (TRUE, TRUE).
Fixed the top-level preferences window layout so the central horizontal content area expands within the main vertical container, instead of staying at natural height.
2026-02-13 18:45:13 -07:00
deepend 3dd54d5fea Added additional Windows GTK glib-genmarshal discovery fallbacks for Python-based script locations to handle missing executables in common layouts.
Broadened ATK import library detection to include libatk-1.0-0.lib for Win32 builds.
2026-02-07 08:45:47 -07:00
deepend 45ef2da0ac Added Windows dependency detection to enable/disable the Lua plugin build based on available headers and skip builds when missing.
Updated the Windows build to prefer glib-genmarshal executables with a Python fallback for marshal generation.
Made GTK link dependencies more robust by selecting available ATK library names before assembling GTK libs.
2026-02-06 00:24:24 -07:00
deepend 6491dc1bde Added JPEG runtime DLL patterns to the Windows release copy step so the build artifacts include JPEG dependencies required by GTK stack DLLs.
Included JPEG runtime DLLs in the Windows installer payload to ensure they are shipped with both x86 and x64 packages.
2026-02-06 00:03:08 -07:00
deepend 1eee70ff9b Updated the Windows installer to package Lua lgi DLLs and scripts from the Lua 2.1 paths produced by the build, instead of the older paths, so the files are found during packaging. 2026-02-05 23:16:12 -07:00
deepend 0550fb90c5 Documented that the GTK 3 immodules are input method (IME) modules and printbackends are GTK 3 printing backends, noting they are still GTK-related but may be absent in some CI dependency bundles. 2026-02-05 21:33:17 -07:00
deepend 75d54e25e9 Made tray_menu_destroy available in GTK3 builds to avoid implicit declaration errors during tray menu cleanup callbacks. 2026-02-05 15:33:59 -07:00
deepend 930e91834f Updated the tray menu callback compilation guard so the GtkStatusIcon popup handler is built for non-AppIndicator backends, fixing the missing symbol during linking. 2026-02-05 15:24:17 -07:00
deepend 8ad1394f1a Expanded the GTK3 deprecated-status-icon prototype guard so non-AppIndicator builds can compile without implicit function errors. 2026-02-05 15:12:30 -07:00
deepend bd707e7514 Yes — it should fall back to the X11/StatusIcon backend, but the GTK3 code path was unconditionally including the appindicator header and selecting the appindicator backend. I updated the tray backend selection to only use appindicator when the library is available and otherwise fall back to GtkStatusIcon, which avoids the missing header error and restores the intended X11 fallback. 2026-02-05 14:17:46 -07:00
deepend f42157fdd7 Made GTK3 AppIndicator dependencies optional and only define AppIndicator macros when the dependency is found.
Added compile-time selection to use AppIndicator when available and fall back to GtkStatusIcon otherwise, keeping the status-icon backend available for non-AppIndicator builds (including GTK3 fallback).
2026-02-05 11:25:07 -07:00
deepend c49d8e4d44 Updated the Windows installer file list to accept both legacy libxml2-*.dll and new xml2-*.dll names, avoiding missing-file failures in builds. 2026-02-05 09:57:26 -07:00
deepend 045134fcff Updated the Windows installer file list to include libcrypto/libssl DLLs via wildcard matches, covering OpenSSL 3 artifacts and avoiding missing-file errors in builds. 2026-02-05 09:03:50 -07:00
deepend 9e9a0be80d Ensure gtkutil.h derives HAVE_GTK3 from GTK_MAJOR_VERSION when missing so GTK3/GTK4 builds select the correct typedefs and declarations in Windows builds that include gtkutil.h directly.
Link libX11 on non-Windows builds regardless of GTK2/GTK3 to satisfy the X11 symbols used in gtkutil.c, fixing the GTK2 linker failure.
2026-02-05 08:14:59 -07:00
deepend 0dd25cb631 Set the GTK program name/class to the desktop ID before initialization to ensure window-to-desktop-entry mapping uses the correct identifier.
Updated the desktop file’s StartupWMClass to match the desktop ID for consistent icon matching.
2026-02-05 02:05:48 -07:00
deepend eb46631a7d Added GTK utility helpers for box/grid creation and attachment that map GTK3 layout settings while preserving GTK2 fallbacks.
Updated multiple GTK UI layout paths (setup, server list, notify, ban list, join dialog, and menu) to use the new helpers for GTK3-safe box/grid creation and attachment behavior.
Added GTK3-safe attach option definitions and updated helper signatures to avoid GTK2-only types/macros in public headers.
Updated gtkutil grid-attachment helpers to use the new attach option type in alignment/expansion logic.
Switched banlist grid attachments to the new helper option flags for GTK3 builds.
2026-02-05 01:59:15 -07:00
deepend 0074a8ba1e Updated the Windows installer script to skip missing MS-Windows theme sources so builds don’t fail when that directory is absent. 2026-02-05 01:31:03 -07:00
deepend e187252afd Scoped GTK2 action-area layout to #if !HAVE_GTK3 in the quit dialog while keeping GTK3 action widget usage unchanged.
Switched the join dialog OK button to gtk_dialog_add_action_widget() for GTK3 while preserving GTK2 action-area packing and layout.
2026-02-05 00:04:07 -07:00
deepend 0349e44856 Guarded the GTK3/Wayland redraw path in gtk_xtext_render_page with #if HAVE_GTK3 so GTK2 builds render immediately instead of waiting for expose events. 2026-02-05 00:03:35 -07:00
deepend ae303db62b Added a fallback for gdk-3.lib detection in the Windows dependency library list to cover builds where the import library is named without the .0/-0 suffix. 2026-02-04 22:28:04 -07:00
deepend 45300a233b Fixed GTK2 build guard in gtkutil_tray_icon_supported by using #if HAVE_GTK3 so GTK2 builds skip the GTK3-only GDK_IS_X11_DISPLAY check. 2026-02-04 21:07:49 -07:00
deepend 65f417cf7d Added a GTK3 version fallback in sexy-spell-entry.c so Windows builds use the GTK3 code paths even when HAVE_GTK3 isn’t defined by config headers.
Avoided MSVC unused-variable warnings in setup.c by scoping GTK2-only locals to GTK2 code paths.
2026-02-04 21:03:04 -07:00
deepend 752b10273b Updated the gtkobject.h include guard to rely on GTK_MAJOR_VERSION, preventing GTK3 Windows build failures when HAVE_GTK3 isn’t defined. 2026-02-04 14:42:34 -07:00
deepend 9aba312c8e Resolved the merge conflict in STS capability handling by keeping the clearer warning message for missing values. 2026-02-04 13:13:51 -07:00
deepend 983ae5337b Added a diagnostic message when an STS capability token is missing its value, while keeping the ignore behavior intact. 2026-02-04 12:57:07 -07:00
deepend f58785c2e0 Added an explicit diagnostic when an STS capability token lacks a value while keeping the ignore policy unchanged. 2026-02-04 12:42:22 -07:00
deepend 3d030a96b7 Updated sts_handle_capability to return FALSE after logging the no‑TLS warning, so the insecure upgrade path doesn’t stop capability negotiation; it still returns TRUE only when an STS upgrade/reconnect is initiated or already in progress.
Confirmed inbound_cap_ls only returns early when sts_upgrade_triggered is set by sts_handle_capability, which now only happens for real upgrade/reconnect initiation or in‑progress upgrades.
2026-02-04 12:42:04 -07:00
deepend 2ecf1c18fb Added STS value parsing in CAP ACK handling so sts= capability values are applied immediately before toggling capabilities. 2026-02-04 12:41:32 -07:00
deepend eae5a209d3 Updated STS parsing to ignore preload tokens that include a value while preserving duplicate-preload rejection for valid tokens. 2026-02-04 11:58:13 -07:00
deepend 78a00b5b88 Updated STS policy handling to preserve any existing stored port on secure updates rather than overwriting it from the current TLS port, keeping secure-path updates focused on duration/preload. 2026-02-04 11:57:54 -07:00
deepend b9bc65e3c2 Updated STS parsing to only accept preload when it appears without a value, ignoring tokens like preload=0. 2026-02-04 11:39:20 -07:00
deepend 3d8d3958ea Updated STS parsing to treat duplicate port, duration, or preload keys as invalid by returning FALSE immediately when repeats are encountered. 2026-02-04 11:35:40 -07:00
deepend b09e6a5405 Updated STS policy handling to require an active connection port when already on TLS, ignoring any advertised port token before storing the profile. 2026-02-04 10:30:13 -07:00
deepend 89a8f3eb0a Updated STS handling to require an explicit port in insecure-connection capability upgrades, ignoring incomplete policies without upgrading. 2026-02-04 10:19:26 -07:00
deepend 8025884e3b fix windows build lua dependency.
Add attempted Solus Build.
2026-02-03 22:00:51 -07:00
deepend a8a7627161 Updated the Windows CI Lua download/extraction step to use tar -xzf and added a guard to fail fast if the extract folder is missing, preventing missing-path errors later in the job. 2026-02-03 21:18:19 -07:00
deepend 18e4b74d0b Added a fallback to TEMP and ensured the temp directory exists before downloading/extracting Lua in the Windows workflow to avoid invalid RUNNER_TEMP paths. 2026-02-03 19:34:30 -07:00
deepend 614bbd1a0b Added Lua 5.4.6 download/build steps in the Windows GitHub Actions workflow, staging headers, libraries, and DLLs into the dependency tree for the build to consume. 2026-02-03 16:22:26 -07:00
deepend 303d5cc581 preparation for upcoming release 2.17.4 2026-02-03 13:28:35 -07:00
deepend d2140e4cec Updated the Windows CI workflow to run gvsbuild against Visual Studio 2019 to match the runner’s installed toolchain. 2026-02-03 12:14:15 -07:00
deepend 872c5d6572 Switched tray menu icon defines to use GTK3 icon names when GTK3 is enabled, avoiding deprecated GTK stock IDs on Windows builds.
Added GtkStatusIcon function prototypes for GTK3 Windows builds when deprecated APIs are hidden, preventing implicit declaration errors.
2026-02-03 12:06:04 -07:00
deepend 11b11c9166 Guarded AppIndicator includes and GTK3 tray integration so Windows builds skip libappindicator, while Windows uses the status icon tray backend instead.
Enabled Windows tray menu handling paths to match the status icon backend on WIN32, even when GTK3 is enabled.
2026-02-03 11:52:22 -07:00
deepend 995cba88ff Updated the Windows CI gvsbuild invocation to use the named Visual Studio version vs2022 instead of the numeric value, matching current gvsbuild options. 2026-02-03 11:39:58 -07:00
deepend c22d141237 Updated the Windows GitHub Actions workflow to build GTK3 from the ZoiteChat gvsbuild repo (and map Win32 output paths) instead of using the older prebuilt GTK archive, aligning with the required GTK3 build flow for Windows CI. 2026-02-03 11:34:18 -07:00
deepend 415066345a Fixed the GTK3 input-style toggle to remove the CSS provider and reset cached theme/color state when the preference is disabled, preventing stale styling from persisting or blocking a clean re-apply later. 2026-02-03 11:15:52 -07:00
deepend ffa7afd09c adjustment for windows builds 2026-02-02 15:53:38 -07:00
deepend 56e1c402f6 gtk3 github actions fix 2026-02-01 16:04:16 -07:00
deepend b1e7155c6d gtk3 github actions fixes 2026-02-01 16:01:48 -07:00
deepend 7dd47dbd2e Adjust for GTK3 github actions compile testing.
fixed gtk2 compiling.
2026-02-01 15:23:36 -07:00
deepend e5673e9a7b fix compile errors with GTK3 and Wayland. Now compiles/Runs using GTK3+Wayland. 2026-02-01 14:04:56 -07:00
deepend 8abc95205a Replaced GTK3 palette font styling with CSS-compliant properties derived from PangoFontDescription, avoiding the deprecated Pango font: syntax in generated CSS.
Added a GTK3-only helper to translate Pango font fields into font-family, font-size, font-style, font-weight, font-variant, and font-stretch CSS declarations while preserving GTK2 behavior under #if !HAVE_GTK3.
Reused the GTK3 font CSS helper in the main UI font styling path to eliminate remaining Pango font: shorthand usage that triggers GTK3 theme parsing warnings.
Exposed the GTK3 font CSS helper in gtkutil so callers can emit CSS-compliant font properties consistently.
2026-01-31 16:37:15 -07:00
deepend d8a8e6ce73 dded GTK3 draw handling while keeping GTK2 expose handling wrapped under #if !HAVE_GTK3 for the spell entry widget.
Updated gtk_entry_find_position to use GTK3-safe layout offsets and cursor position APIs while preserving GTK2-only field access behind #if !HAVE_GTK3.
2026-01-31 16:22:35 -07:00
deepend e44e801e3a Replaced the GTK3 G_DECLARE_DERIVABLE_TYPE usage in sexy-spell-entry.h with explicit typedefs/macros so the SexySpellEntry instance struct (and priv) remains visible in GTK3 builds.
Replaced the GTK3 G_DECLARE_DERIVABLE_TYPE usage with explicit GtkXText typedefs/macros to keep the instance struct visible in GTK3 builds and avoid missing member errors.
2026-01-31 16:00:49 -07:00
deepend 5170e037b5 Guarded the GTK2-only set_scroll_adjustments_signal assignment in GtkXText class initialization to avoid GTK3 build errors while preserving GTK2 behavior. 2026-01-31 15:47:49 -07:00
deepend b121fa7287 Ensured GTK3 buttons created via gtkutil_button always display their images by enabling gtk_button_set_always_show_image when an icon is set. 2026-01-31 15:35:43 -07:00
deepend 29ac0f9ee6 Added a GTK3 CSS font provider helper and updated emoji font application to avoid deprecated override APIs in GTK3 builds.
Switched GTK3 setup color previews, entry styling, and user list palette updates to use gtkutil_apply_palette instead of deprecated GTK3 overrides.
2026-01-31 13:49:06 -07:00
deepend 1fb1865aca Switched palette type selection and color conversion helpers to use the HAVE_GTK3 guard consistently in palette definitions and helpers.
Updated GTK3-specific palette color storage handling in DCC, notify, and user list views to align with HAVE_GTK3 guards.
Standardized setup color application and dialog logic to use HAVE_GTK3 branches for GTK3/GTK2 separation.
2026-01-31 13:38:05 -07:00
deepend d314856f82 Updated the GTK3 rawlog scrolled window to set expansion and pack it explicitly while leaving GTK2 behavior unchanged, keeping the button box packed at the bottom. 2026-01-31 13:27:21 -07:00
deepend 0a0dbd384c Added GTK3 icon theme change handling to refresh themed icons and reapply the current tray icon state after theme updates.
Disconnects the GTK3 icon theme signal during backend cleanup to avoid stale handlers.
2026-01-31 13:24:04 -07:00
deepend 3ef9540a57 Updated the About dialog to use the GTK3 license enum and kept the manual license text for non-GTK3 builds, removing the outdated comment. 2026-01-31 13:13:31 -07:00
deepend 84647201b1 Added GTK3 input style state tracking (theme, dark mode, colors, and preference) so the CSS provider reloads when those values change, while preserving GTK2 one-time RC parsing 2026-01-31 13:07:54 -07:00
deepend f31ef7cfe2 Added GTK3-only CSS styling for alternating rows in the fkeys treeview and set a widget name to target the rules.
Wrapped gtk_tree_view_set_rules_hint so it only applies to non-GTK3 builds.
2026-01-31 13:03:14 -07:00
deepend 9af54f5ed7 Added a shared size-request helper plus GTK3 preferred-size vfuncs to reuse the existing sizing logic while keeping GTK2’s size_request path intact.
Guarded the GTK2 size_request assignment and wired the new GTK3 preferred-size handlers in class init.
2026-01-31 12:59:58 -07:00
deepend 5788bd90e2 Updated the tab context menu popup to use GTK3 gtk_menu_popup_at_pointer with GTK2 fallback in maingui.c.
Updated the emoji menu popup to use GTK3 gtk_menu_popup_at_widget with GTK2 fallback in maingui.c.
2026-01-31 12:57:05 -07:00
deepend 729b1eb8de Explicitly show GTK3 menu item widgets (image, label, box) after building the menu item to ensure labels/icons display reliably. 2026-01-31 12:42:35 -07:00
deepend 9a92fa33a8 Made the cursor/adwaita RC strings available for GTK3 and derive the caret color from the cursor RC string when building CSS equivalents.
Updated the GTK3 input CSS generation to include base/foreground colors, caret color, and the Adwaita/Yaru background-image override while applying the provider to the screen.
2026-01-31 12:25:56 -07:00
deepend 5c8f50a9f5 Added GTK3 tray icon fallback caching to concrete file paths using bundled pixmaps for missing themed icons and wired the check into themed icon resolution for app indicator usage. 2026-01-31 12:12:55 -07:00
deepend 56845a64d9 Added a shared render helper and GTK3 draw handler with clip handling while keeping GTK2 expose wiring behind build guards in xtext.c.
Added a stored GTK3 draw cairo context to the widget struct and initialized it during setup.
2026-01-31 12:09:02 -07:00
deepend 36a369fac8 Ensured GTK3 icon menu items show their child widgets by calling gtk_widget_show_all(item) after assembling the box in create_icon_menu. 2026-01-31 12:02:20 -07:00
deepend a5d1dfe81f Added a GTK3 CSS provider path in create_input_style to mirror GTK2 input base/foreground colors, caret color, and Adwaita/Yaru background-image workaround, while preserving GTK2 RC parsing behavior. 2026-01-31 11:56:37 -07:00