Commit Graph

  • e4b8c641b1 Updated the flatpak/shared-modules submodule to the latest upstream commit from the configured shared-modules repository link (https://github.com/flathub/shared-modules.git). deepend 2026-02-21 14:38:59 -07:00
  • 3f0b936694 replace icon deepend-tildeclub 2026-02-19 12:07:24 -08:00
  • 3ef7768696 Updated the Solus CI workflow to install pkgconf instead of pkgconfig during the eopkg bootstrap step, resolving the Repo item pkgconfig not found failure path you hit. deepend 2026-02-18 16:08:39 -07:00
  • e2cb540ee9 Updated the Solus package release from 1 to 2 in packaging/solus/package.yml so the metadata reflects this dependency fix update. deepend 2026-02-18 15:32:11 -07:00
  • bcd2b15ee4 Updated the Solus eopkg CI workflow to install required Meson toolchain/build packages (meson, ninja, pkgconfig, gcc, gettext) together with ypkg/git before running ypkg build, which addresses the reported meson: command not found setup failure. deepend 2026-02-18 14:54:32 -07:00
  • f66a68b3fd Updated the Solus packaging source from a missing tag tarball URL to a valid GitHub commit archive URL, and updated the SHA256 to match that archive so source extraction succeeds. deepend 2026-02-18 14:38:52 -07:00
  • e060d57bae Updated the Solus packaging source checksum for zoitechat-2.18.0-pre1.tar.gz to the hash reported by the failing build log (d5558cd419c8d46bdc958064cb97f963d1ea793866414c025906ec15033512ed). deepend 2026-02-18 14:22:11 -07:00
  • 0796b96908 Added a Win32 existing-instance fallback so --existing with no URL/command now sends a dedicated __WIN32_TASKBAR_TOGGLE__ command to the running ZoiteChat instance, instead of doing nothing. This gives taskbar/shortcut invocations an explicit toggle action. deepend 2026-02-18 13:28:17 -07:00
  • 184bfd2f69 Updated Solus packaging metadata to use a numeric version (2.18.0) instead of prerelease-form strings that were reported as invalid by your validator. deepend 2026-02-18 13:14:44 -07:00
  • e3f624d2bb Fixed the GTK3 window-state handler so minimizing via taskbar no longer immediately deiconifies the window again. Specifically, I removed the conflicting gtk_window_deiconify(wid) call from the iconify path in mg_windowstate_cb, while preserving the existing tray-hide behavior and window state bookkeeping. This restores expected toggle behavior when clicking the taskbar icon on a maximized window. deepend 2026-02-18 13:11:04 -07:00
  • e2db0ec3e5 Updated the Solus package metadata version string in packaging/solus/package.yml from 2.18.0-pre1 to 2.18.0pre1 so it uses a ypkg-compatible prerelease format and avoids the Invalid version build failure you hit deepend 2026-02-18 12:55:55 -07:00
  • 7b0d574752 Updated the Solus CI workflow to install ypkg/git using eopkg install -y --ignore-file-conflicts ..., which prevents the openssl vs openssl-11 file-conflict failure from aborting the build early. deepend 2026-02-18 12:41:33 -07:00
  • 9e42c0dcc4 Updated the Solus eopkg GitHub Actions workflow to stop removing openssl-11 during container setup, and added a comment explaining that this removal can trigger a broad dependency cascade (including python3/eopkg) that breaks the build before ypkg build starts. deepend 2026-02-18 11:52:19 -07:00
  • a8f68e22dd Updated the Solus eopkg GitHub Actions workflow to detect and remove legacy openssl-11 before dependency installation, preventing the file-conflict failure shown in your CI log while keeping behavior no-op on images that don’t have openssl-11. deepend 2026-02-18 11:40:37 -07:00
  • 5d5219566f emoved the openssl-11 removal workaround from the Solus eopkg workflow, so the container build now goes directly from eopkg update-repo -y to installing ypkg/git, avoiding the package-removal cascade that can break eopkg deepend 2026-02-18 11:21:07 -07:00
  • 5e4f408235 Updated the Solus eopkg workflow to conditionally remove openssl-11 before installing build dependencies, preventing the file-conflict failure when openssl is upgraded/installed in older Solus container images. deepend 2026-02-18 11:12:10 -07:00
  • 3d6b2485d1 Updated the Solus workflow’s default container image from ghcr.io/getsolus/solus:latest to docker.io/silkeh/solus:latest in both workflow input defaults and job env fallback, so the workflow no longer depends on a missing GHCR tag by default. deepend 2026-02-18 11:00:05 -07:00
  • e8f4044f8c Updated the Solus workflow to grant packages: read (alongside contents: read) at workflow scope, so the Actions token can authenticate for GHCR package pulls. deepend 2026-02-18 10:44:45 -07:00
  • 10f6b4913e Merge pull request #63 from ZoiteChat/emoji deepend-tildeclub 2026-02-18 10:02:13 -07:00
  • 7568c73062 Updated the Network List Connect button icon on GTK3 to use the bundled zc-menu-connect asset, which avoids theme-dependent missing network-connect behavior. deepend 2026-02-18 01:30:45 -07:00
  • 6ce7de23a3 Switched menu resource loading to use bundled PNG assets (instead of SVG paths) for zc-menu-* icons, so menu icon resolution is consistent and no longer depends on SVG/icon-theme availability on different platforms (including Win32 builds). deepend 2026-02-18 01:16:03 -07:00
  • dbc517de99 Updated channel list icon button creation to always use gtkutil_image_new_from_stock(..., GTK_ICON_SIZE_MENU) so it follows the same zc-menu-* icon resolution path on all GTK targets instead of mixing direct stock-image calls. deepend 2026-02-18 00:57:58 -07:00
  • e214c76bdf Unified GTK3 menu icon resolution so menu-sized icons now consistently map to the bundled zc-menu-* icon set (from data/icons/menu) even when callers pass freedesktop icon names (like edit-copy, go-next) instead of legacy stock IDs. This removes the mixed behavior where some items came from system themes while others came from bundled resources. deepend 2026-02-18 00:52:49 -07:00
  • 3ccd8c44b3 Added a centralized menu icon resolver in menu.c so menu items consistently prefer the bundled zc-menu-* resource icons (from data/icons/menu) instead of relying on platform/theme fallback behavior. This includes: deepend 2026-02-18 00:47:10 -07:00
  • 5df6f68cd9 Unified menu icon loading so zc-menu-* icons can be loaded directly from the bundled data/icons/menu/light/*.svg resource set via a new helper (gtkutil_menu_icon_pixbuf_new), instead of depending only on platform stock themes. This makes menu icon resolution consistent across platforms for the custom menu icon namespace. deepend 2026-02-18 00:41:55 -07:00
  • 45d4025ad7 Updated the built-in popup menu defaults to stop using mixed legacy GTK stock icon names and instead use the app’s unified zc-menu-* icon IDs (backed by data/icons/menu resources). Specifically changed: Open Dialog Window, Send a File, User Info (WhoIs), Add to Friends List, and Ignore. deepend 2026-02-18 00:38:18 -07:00
  • f6b78bd167 Standardized GTK menu-icon fallback mapping so stock names for Save As, Previous, and Next now resolve through the bundled zc-menu-* icon family (and map back correctly on GTK2), ensuring these menu actions use the same icon set path as the rest of your menu icons. deepend 2026-02-18 00:32:42 -07:00
  • 17f239e6fc Unified tray menu icon definitions to always use the zc-menu-* identifiers (instead of conditional stock GTK icons), so Preferences/Quit resolve through the same menu icon set on all builds. deepend 2026-02-18 00:24:43 -07:00
  • fcf00ebd8f Updated menu-item icon resolution in menu_quick_item() to always go through gtkutil_image_new_from_stock(..., GTK_ICON_SIZE_MENU) when not loading from a file path, so icon-bearing menu items consistently use the same icon pipeline. deepend 2026-02-18 00:16:04 -07:00
  • e347fdc899 Unified GTK3 menu-item icon loading to use the same helper path everywhere (gtkutil_image_new_from_stock(..., GTK_ICON_SIZE_MENU)), so stock/menu icon names consistently resolve through the shared custom menu icon logic (which uses data/icons/menu first, then fallback). This was applied in menu_quick_item. deepend 2026-02-18 00:09:56 -07:00
  • b419804ddb Updated GTK3 icon resolution so gtkutil_image_new_from_stock() now preserves zc-menu-* icon IDs (when no stock-to-theme mapping exists), allowing those items to load directly from the data/icons/menu resource set instead of falling back inconsistently to theme icon names. deepend 2026-02-18 00:05:44 -07:00
  • bdfabcf800 Standardized GTK3 menu icon resolution so stock-style menu icons are first mapped to the bundled zc-menu-* names (which are backed by data/icons/menu/...), but only for menu-sized icon requests. This keeps non-menu button icons unaffected while making menu icons consistent. deepend 2026-02-18 00:00:59 -07:00
  • ebf695abdf Standardized GTK3 menu-related icon constants to the bundled zc-menu-* namespace so menu actions stop depending on mixed system-theme icon names (edit-copy, view-refresh, etc.) and instead use the same internal set. This was updated in channel list, plugin manager, URL grabber, and spell-entry menu definitions. deepend 2026-02-17 23:56:49 -07:00
  • bc2b1bd509 Standardized GTK3 menu-related icon constants to use the bundled zc-menu-* icon set (from data/icons/menu) in the places that had direct equivalents, including raw log, URL grabber, channel list actions, tray menu, and plugin load action. deepend 2026-02-17 23:49:59 -07:00
  • 8642d8bde4 Updated the Network List menu entry to use the same menu icon mechanism as the other iconized menu items by switching it from M_MENUPIX (pix_book) to M_MENUSTOCK with a zc-menu-* icon name (zc-menu-network-list). deepend 2026-02-17 23:44:22 -07:00
  • 01e890eb3f Updated GTK3 menu item rendering so any zc-menu-* icon passed into menu_quick_item() is treated as a bundled ZoiteChat menu icon and loaded via menu_icon_image_from_data_icons(...) using the active light/dark variant, which makes dynamic/custom menu entries use the same icon source as the main menu icons. deepend 2026-02-17 23:35:32 -07:00
  • 7af8f069e7 Reworked the GTK3 menu icon pipeline so zc-menu-* entries now load from the bundled data/icons/menu assets only, with shared theme-variant detection (light/dark). deepend 2026-02-17 23:26:26 -07:00
  • b5db1685da Removed the unresolved version-control conflict markers from create_icon_menu and kept the custom_alt_fallback_icon declaration intact so the later fallback icon assignments remain valid for compilation. deepend 2026-02-17 23:15:51 -07:00
  • 335a8f4d6b Added stronger icon fallback handling for zc-menu-* menu items (including Server dropdown icons and Preferences) by introducing alternate fallback icon names and choosing an alternate only when the primary fallback icon is unavailable in the active icon theme. This specifically improves connect, disconnect, join, and preferences cases on Windows theme variations. deepend 2026-02-17 23:12:34 -07:00
  • e316413f60 Added stronger icon fallback handling for zc-menu-* menu items (including Server dropdown icons and Preferences) by introducing alternate fallback icon names and choosing an alternate only when the primary fallback icon is unavailable in the active icon theme. This specifically improves connect, disconnect, join, and preferences cases on Windows theme variations. deepend 2026-02-17 23:07:17 -07:00
  • e8ca0a1213 attempting to fix menu icon loading issues on the windows build. deepend 2026-02-17 22:50:34 -07:00
  • 15d918f1fb Added Windows-side icon theme fallback logic in win32_configure_icon_theme that now checks (in addition to the existing <base>/share/icons) these paths: ZOITECHAT_ICON_PATH (user override env var), current working directory + share/icons, argv[0] directory + share/icons. Valid directories are appended to GTK’s icon search path. Added diagnostic logging so startup clearly reports either the selected icon path source/path or that none of the expected locations were usable, to speed up Windows missing-icon triage. Reused/stored the computed argv[0] directory in fe_args (via win32_argv0_dir) so it can be used both for chdir and for icon fallback resolution. deepend 2026-02-17 22:19:50 -07:00
  • 329a641adf I added a Windows-specific fallback to load custom menu icons directly from the installed share/icons/menu/<variant>/ path when GResource lookup doesn’t return an icon. This uses g_win32_get_package_installation_directory_of_module() plus g_build_filename() to avoid separator/path issues. The new fallback tries *.svg first, then *.png, so if resources aren’t available at runtime but files were installed, menu icons still render. After that, the existing icon-name fallback chain still runs (custom_fallback_icon → stock mapping → stock name), so non-file-based fallback behavior is preserved. deepend 2026-02-17 22:03:51 -07:00
  • 9bdf654cbc Fixed the Windows packaging pipeline to include the app’s bundled menu icons from data/icons/menu/** by adding a dedicated ZoiteChatMenuIcons item group in the copy project. This ensures both light and dark menu icon files are staged during Windows builds. Added an explicit copy step that places those menu icons into $(ZoiteChatRel)\share\icons\menu\..., which is already included by the installer’s share\icons\* rule, so they now get installed on Windows. deepend 2026-02-17 21:46:46 -07:00
  • 1a920ba955 I fixed the Windows runtime path so gdk-pixbuf can actually find/use its loader modules before GTK initializes, by adding win32_configure_pixbuf_loaders() and calling it in startup on Windows. This sets GDK_PIXBUF_MODULEDIR / GDK_PIXBUF_MODULE_FILE from the bundled install tree so SVG resources can render instead of placeholder icons. I also fixed Windows packaging to include what the SVG path needs at runtime: librsvg DLLs, gdk-pixbuf loader modules, and loaders.cache in the release bundle. deepend 2026-02-17 21:30:51 -07:00
  • afc490aa18 Fixed GTK3 menu icon fallback handling so Windows no longer falls through to non-standard zc-menu-* icon IDs (which show as placeholders in many setups). The code now maps each custom menu icon key (new, connect, disconnect, save, help, etc.) to a concrete freedesktop icon name before calling gtk_image_new_from_icon_name(). Kept the existing preferred behavior intact: load bundled SVG menu icons from GResource first (light/dark variant), and only use fallback icon names when those resources are unavailable. deepend 2026-02-17 21:19:22 -07:00
  • 0a5c95c6b4 Fixed the Windows installer so it now installs GTK icon theme assets (share\icons) into the app directory. This ensures icon-name lookups used by menus/widgets can resolve real icons instead of placeholders on Windows installs. The change was made in the [Files] section by adding a recursive copy rule for share\icons\* under the libs component. deepend 2026-02-17 21:08:18 -07:00
  • a078d00eef Updated GTK3 tab dropdown icon constants to use ZoiteChat’s bundled zc-menu-* icon names (detach/close) instead of theme-dependent names, so Windows builds render the intended menu icons consistently. Updated GTK3 tray menu icon constants for Preferences/Quit to use bundled zc-menu-* icon names, fixing theme-missing icon issues in Windows menu/dropdown contexts. deepend 2026-02-17 20:58:15 -07:00
  • 18632bc5fd Added a new tree-store column (COL_UNDERLINE) for channel rows so the UI can track underline state per channel entry in the channel list model. Initialized each new channel row with PANGO_UNDERLINE_NONE so only the active channel gets emphasized. Updated tree selection handling to remove underline from the previously focused row and apply PANGO_UNDERLINE_SINGLE to the newly selected row, creating a clear “currently viewed channel” indicator. Bound the channel name renderer’s underline property to the new model column so underline changes are reflected immediately in the channel list UI. deepend 2026-02-17 20:51:13 -07:00
  • f90783c298 Updated Windows packaging to include all dependency-provided icon assets by adding a new DepsRootIcons item ($(DepsRoot)\share\icons\**\*) in win32/copy/copy.vcxproj. Added a corresponding copy step so those icons are emitted into the Windows release tree at $(ZoiteChatRel)\share\icons\..., ensuring parity with Linux icon availability in installed builds. deepend 2026-02-17 20:47:20 -07:00
  • 643ea9c7fb Removed the Windows-specific forced Adwaita icon theme override from win32_configure_icon_theme(), so ZoiteChat will no longer switch to Adwaita at runtime and can use the app’s own icon assets from the configured icon search path. Removed Adwaita icon bundle copy rules from the Windows packaging project (copy.vcxproj), so share/icons/Adwaita is no longer pulled into Windows build artifacts. Removed Adwaita icon inclusion from the Windows installer manifest (zoitechat.iss.tt), so installer builds no longer ship Adwaita icon files. deepend 2026-02-17 20:39:12 -07:00
  • 39aa63057e Added a centralized menu_new() helper in the GTK menu code that creates menus and disables GTK3’s reserved toggle gutter (gtk_menu_set_reserve_toggle_size(..., FALSE)), which removes the awkward empty left-side spacing for normal menu items. Updated menu construction callsites in the main menu paths (top-level, submenus, nick/url/channel context menus) to use menu_new(), so the spacing fix applies broadly across menus instead of only one location. Committed the change on the current branch (976970f) and created a PR record via the make_pr tool. deepend 2026-02-17 20:37:37 -07:00
  • 5d4eec3b71 updated, fixed or replaced menu icons. deepend 2026-02-17 20:05:13 -07:00
  • 6bd7a309b3 Updated Windows GTK startup environment handling so ZoiteChat always prepends its bundled share directory to XDG_DATA_DIRS (without breaking existing values), which enables GTK to discover packaged runtime data used by icon/theme and emoji resources. Also changed GSETTINGS_SCHEMA_DIR logic so it no longer short-circuits this setup when GSETTINGS_SCHEMA_DIR is already set. Added a Win32 icon-theme setup helper that appends bundled share/icons to GtkIconTheme search paths and forces Adwaita when available, so the emoji chooser’s category/menu symbolic icons resolve instead of showing placeholder squares. Invoked the new Win32 icon-theme configuration immediately after gtk_init() so it applies before UI usage, including the emoji chooser popover created from entries. deepend 2026-02-17 18:55:38 -07:00
  • dd452f82ff The Windows copy project already stages Adwaita icons into win32/rel\share\icons\Adwaita, but the Inno Setup script did not include that folder in [Files], so installed builds could miss those icons. I added an installer file rule to include share\icons\Adwaita\* recursively under the libs component. deepend 2026-02-17 18:25:29 -07:00
  • cb0fd33089 updated the Windows packaging project to include Adwaita icons in the bundle by adding an AdwaitaIcons item from $(DepsRoot)\share\icons\Adwaita\**\* and copying it into $(ZoiteChatRel)\share\icons\Adwaita\.... Added a Windows-packaged attribution file at win32/copy/share/adwaita-icons-attribution.txt; because win32/copy/copy.vcxproj already copies share\**\*, this file will be included in the Windows output under share\adwaita-icons-attribution.txt. The attribution text explicitly uses “GNOME Project” and includes the requested link http://www.gnome.org. deepend 2026-02-17 15:43:15 -07:00
  • ee107621c4 Removed the custom emoji picker/menu implementation from maingui.c (including its callbacks and helper declarations), so the old in-app emoji menu is no longer present. The code now transitions directly from emoji font fallback logic to the search-bar section. updated the input entry creation to stop creating a separate emoji button, and instead enable GTK’s built-in emoji menu icon with show-emoji-icon on GTK3+ builds only (no GTK2 fallback path). deepend 2026-02-17 15:23:03 -07:00
  • 54de067a13 Merge pull request #61 from ZoiteChat/theme_updates deepend-tildeclub 2026-02-17 15:03:07 -07:00
  • ae50735311 Identified and fixed an obvious UI-path delay in message rendering: when a new line is appended and the user is already at the bottom of the channel buffer (scrollbar_down), the code now renders immediately instead of always waiting for an idle callback. This removes the subtle “sent but appears a moment later” effect in large-scrollback channels. Preserved the previous idle-batched behavior for users who are not at the bottom (scrolling history), so performance-friendly deferred redraws still apply in that case. deepend 2026-02-17 14:49:15 -07:00
  • 97cbe98b3d added a min_indent threshold and only grow indent when the change is meaningful (greater than one space width), then only run the expensive gtk_xtext_recalc_widths() path when indent truly increased. I also kept the existing correctness behavior: when indent does materially change, it still fixes/recalculates and updates ent->indent/force_render as before. deepend 2026-02-17 14:33:16 -07:00
  • eb112f9cd7 appended lines were scheduled with a timer (REFRESH_TIMEOUT * 2 where REFRESH_TIMEOUT is 20), which effectively adds ~40ms before draw in this path. I changed that specific path to render on the next idle cycle (g_idle_add) so locally echoed sent messages appear sooner. deepend 2026-02-17 14:26:02 -07:00
  • 6025195234 fixed the delayed selection paint by changing gtk_xtext_render_ents() to queue a GTK redraw when called outside ::draw on GTK3, instead of attempting direct window painting. This addresses the “double-click/drag selection only appears after some other window change” behavior. Added an in-code comment explaining why this path is needed (GTK3/Wayland frame-driven presentation). deepend 2026-02-17 13:24:42 -07:00
  • 7fd8e5455d fixing zoitechat/hexchat theme usage. deepend 2026-02-17 10:51:42 -07:00
  • e424d9325c Update Python plugin version to 2.18.0-pre1 deepend-tildeclub 2026-02-17 09:39:01 -07:00
  • 78754ff194 Added a Windows-only fe_apply_windows_theme(gboolean dark) function under #ifdef G_OS_WIN32 that: sets gtk-application-prefer-dark-theme when that GtkSettings property exists, and applies an app-level GtkCssProvider with dark/light fallback classes (zoitechat-dark / zoitechat-light) to keep non-chat widgets aligned with mode changes. Updated the shared theme apply path so fe_apply_theme_for_mode() still applies the palette layer (palette_apply_dark_mode) and now also applies the Windows GTK layer, ensuring auto/manual modes flow through one path. Extended toplevel theme application to add/remove the new dark/light CSS classes on Windows GTK3 windows, while preserving native titlebar dark-mode handling. Made AUTO mode resolve from the cached auto_dark_mode_enabled state, and initialized that state in fe_init() before the first fe_apply_theme_for_mode() call so initial and subsequent behavior are consistent. deepend 2026-02-16 20:41:27 -07:00
  • 242f4a6dec Update fe-gtk.vcxproj with new configurations deepend-tildeclub 2026-02-16 20:29:25 -07:00
  • 5460855ea4 Implemented a Windows-specific theme detection path with High Contrast safeguards, including helpers to detect HC mode, read Windows system theme preference from the registry, and gate native titlebar dark mode updates when HC is active. Also added DWM header usage for native titlebar APIs. Added a unified theme application pipeline via fe_apply_theme_for_mode() and fe_apply_theme_to_toplevel(), and routed auto-mode refresh logic through it so palette + GTK input styling are applied consistently from one place. Switched startup and settings-apply flows to use the unified theming function, replacing direct palette-only calls so system-mode detection → theme apply is consistent across initialization and preferences changes. Applied native titlebar updates when top-level windows are shown and during setup reapply across open sessions, and wired Windows builds to link dwmapi in both Meson and MSVC project files. deepend 2026-02-16 20:26:45 -07:00
  • 605ca4da04 Merge pull request #48 from ZoiteChat/gtk3-prep deepend-tildeclub 2026-02-16 19:52:05 -07:00
  • ebb9aa48ae Added GTK2 compatibility macros in fe-gtk.h so calls to gtk_widget_set_hexpand() / gtk_widget_set_vexpand() become no-ops when !HAVE_GTK3, fixing the GTK2 implicit-declaration build failures introduced by GTK3-oriented layout code. Kept the macros warning-safe using (void) casts and G_STMT_START/G_STMT_END, so they compile cleanly in strict warning configurations. deepend 2026-02-16 19:33:50 -07:00
  • 99b93d1b71 Merge pull request #60 from ZoiteChat/raw_bytes_keyboard_shortcut deepend-tildeclub 2026-02-16 19:16:11 -07:00
  • ef87b569d7 Updated the Windows copy project to explicitly include GLib GSettings schema files from $(DepsRoot)\share\glib-2.0\schemas\* and copy them into the release tree at share\glib-2.0\schemas\..., ensuring gschemas.compiled is bundled with portable/release artifacts. Updated the Inno Setup installer file list to install share\glib-2.0\schemas\* into {app}\share\glib-2.0\schemas under the libs component, so installed builds also ship required schema data. Updated gtkutil_file_req_response() so only GTK_RESPONSE_ACCEPT runs the file-selection path; all non-accept responses now immediately destroy the dialog via the callback’s dialog pointer, avoiding chooser access on cancel paths. Kept native chooser handling aligned with that behavior: chooser reads are still gated behind GTK_RESPONSE_ACCEPT, while cleanup remains a single unref path deferred to idle to avoid teardown-in-signal-stack issues on Windows. deepend 2026-02-16 18:57:48 -07:00
  • 3872c4fcdf Updated the GTK3 Help menu icon constant so _Contents now uses help-contents instead of help-browser, which fixes the oversized icon appearance on Linux and keeps it consistent with other menu icons. Updated menu_setting_foreach() to safely handle sessions where menu_item[id] is still NULL by storing it in a local pointer and only toggling check state when it exists. This avoids GTK/GLib criticals during layout/menu synchronization paths while preserving normal behavior for initialized menu items. Fixed the a few dialog box layout so the scrolled keybindings list expands to fill available vertical space in the window. It now packs the scroller into the parent GtkBox with expand/fill enabled (gtk_box_pack_start(..., TRUE, TRUE, 0)) instead of adding it as a generic container child. This allows the window height to be fully utilized. deepend 2026-02-16 18:40:15 -07:00
  • 09a4d3923a Fixed the GTK3 unrealize lifecycle in gtk_xtext_unrealize() by removing the early gdk_window_set_user_data(window, NULL) path, so the widget/window ownership remains valid until parent unrealize runs. This matches GTK’s expected unregister flow and addresses the user_data == NULL abort pattern you described. Kept GTK2 behavior unchanged (#if !HAVE_GTK3 still clears widget->window user data in the legacy path). Added an in-code comment documenting why GTK3 must preserve user-data until chaining to parent unrealize. deepend 2026-02-16 18:11:37 -07:00
  • 6df8a98fa0 Updated the Windows GTK3 native file-dialog flow to use asynchronous handling (gtk_native_dialog_show + "response" signal) instead of synchronous gtk_native_dialog_run, reducing risky dispose/unrealize timing during dialog close. Added gtkutil_native_file_req_response() to keep completion semantics consistent: process selected files on accept, send the trailing callback(..., NULL) completion notification, free request state, and defer dialog unref to idle. deepend 2026-02-16 17:29:25 -07:00
  • a6af143ba7 Fixed the Windows GTK3 native file chooser lifetime handling by adding an idle callback (gtkutil_native_dialog_unref_idle) that performs g_object_unref(native) outside the button-release signal stack. This avoids the crash path when cancelling the Load file dialog. Updated the native chooser code path to replace immediate unref with deferred unref via g_idle_add(...) after gtk_native_dialog_run, while preserving the existing accept-only file handling behavior. deepend 2026-02-16 15:37:59 -07:00
  • 287afb4b1d Refactored file-selection completion logic so it can operate on any GtkFileChooser object, not only GtkFileChooserDialog, by introducing gtkutil_file_req_done_chooser() and reusing it from the existing dialog path. This keeps validation/callback behavior identical between chooser implementations. Updated gtkutil_file_req() to resolve an effective_parent (fallback to global parent_window when no parent is passed), which ensures consistent transient parenting and modal assertions in this code path. Added a Windows GTK3-specific path that uses GtkFileChooserNative (instead of the GTK file chooser dialog widget path implicated by your stack trace), while preserving existing behavior for initial folder/name, filters, multi-select, and overwrite confirmation before invoking the same file-check callback flow. Left the existing non-Windows / non-GTK3 dialog flow in place unchanged in behavior, so platforms outside the crash scenario continue using the prior implementation. deepend 2026-02-16 15:06:59 -07:00
  • eb677e412c Fixed Windows RC version generation for prerelease tags by sanitizing each version segment to numeric-only before emitting COMMA_VERSION in zoitechat.rc.tt. This prevents RC2237: numeric value expected for versions like 2.18.0-pre1. deepend 2026-02-16 14:48:05 -07:00
  • 3853343918 Added a new 2.18.0-pre1 top entry in changelog.rst (dated 2026-02-16) for the GTK3/packaging work on this branch, and preserved the existing 2.17.4 entry instead of rewriting it. Added a new AppStream release block for 2.18.0-pre1 and restored the prior 2.17.4 release record, so release history remains additive. Fixed Debian changelog handling by prepending a new pre-release entry 2.18.0~pre1-1 and restoring the historical 2.17.0-1 / 2.17.0-0 entries unchanged. deepend 2026-02-16 14:34:23 -07:00
  • fe55334f5c Updated the Debian CI workflow to collect generated package files into a workspace-local artifacts/ directory before upload, avoiding disallowed ../ path traversal patterns in actions/upload-artifact@v4. Updated the upload step to use path: artifacts/*, which is compatible with v4 artifact path validation rules. deepend 2026-02-16 14:03:59 -07:00
  • 7ff4cb9b8a Added package install manifests for split binary packages so files previously left in debian/tmp are assigned to the correct outputs: zoitechat-common (desktop integration, dbus service, icons, locales, appdata, mime). zoitechat-dev (plugin development header + pkg-config file). zoitechat-lua, zoitechat-perl, zoitechat-plugins, and zoitechat-python3 (plugin/shared module payloads). Simplified zoitechat.install to only the core executable + man page, with shared data moved to zoitechat-common to match package split intent. deepend 2026-02-16 13:59:59 -07:00
  • 7143aec20d Updated channel tree theming to always apply the current input font (input_style->font_desc) when re-theming, so channel list font type/size stays in sync with font preference changes. Updated user list creation to apply the current input font in GTK3 when palette styling is applied, so the user list reflects font changes consistently. Updated channel view creation in GTK3 to always pass the current input font to chanview_new, ensuring channel list typography starts with the configured font. Updated settings re-apply logic to always include the current input font for the user list in GTK3, so runtime font updates take effect there as well. deepend 2026-02-16 13:58:10 -07:00
  • 65d399fa5b Updated Debian packaging manifest to install the missing manpage (usr/share/man/man1/zoitechat.1) and MIME package XML (usr/share/mime/packages/net.zoite.Zoitechat.mime.xml) so they are no longer left unassigned in debian/tmp and triggering dh_missing errors. deepend 2026-02-16 13:53:54 -07:00
  • 8ce3787429 Change changelog installation from changelog.txt to changelog.rst deepend-tildeclub 2026-02-16 03:40:14 -07:00
  • c4c5964588 Create documentation directories for zoitechat packages deepend-tildeclub 2026-02-16 03:31:06 -07:00
  • 2d61db57ef Updated the Debian GitHub Actions workflow to use Debian packaging tooling/dependencies (including dpkg-dev, debhelper, fakeroot, iso-codes, and liblua5.3-dev) so the job is set up for Debian package builds from debian/. Replaced the previous direct Meson configure/build/test/install steps with a Debian package build step using dpkg-buildpackage -us -uc -b. Added artifact upload for generated Debian package outputs (*.deb, *.changes, *.buildinfo). deepend 2026-02-16 03:26:00 -07:00
  • a9d8ffe3fe Updated Debian build dependencies to target GTK 3 by replacing libgtk2.0-dev with libgtk-3-dev, and updated the package description text to explicitly say “GTK 3 GUI.” Updated Debian build rules to pass -Dgtk3=true to Meson during dh_auto_configure, ensuring the GTK3 frontend is selected in package builds. deepend 2026-02-16 03:22:44 -07:00
  • ab21af908c Add GDK_SCROLL_MASK to event mask for widget deepend-tildeclub 2026-02-16 03:12:57 -07:00
  • fffbe5228c Forward mouse wheel messages to hovered window deepend-tildeclub 2026-02-16 03:05:43 -07:00
  • 87ec58f9d3 Fix component selection for Python in installer script deepend-tildeclub 2026-02-16 02:52:46 -07:00
  • 805baea90b Fix packing order in hex GUI window deepend-tildeclub 2026-02-16 02:47:34 -07:00
  • 91238d99ae Refactor plugingui_load to improve directory handling deepend-tildeclub 2026-02-16 02:42:00 -07:00
  • d5561a21e3 Set hexpand and vexpand for scrolled window and tree view deepend-tildeclub 2026-02-16 02:20:25 -07:00
  • f78ae92419 Merge pull request #59 from ZoiteChat/master deepend-tildeclub 2026-02-16 02:17:16 -07:00
  • cbb233ad06 Fix packing order for GUI panes based on preferences deepend-tildeclub 2026-02-16 02:01:21 -07:00
  • 07571330ba Remove redundant gtk_paned_pack calls in maingui.c deepend-tildeclub 2026-02-16 02:00:45 -07:00
  • 0e48187238 Fix packing order for GUI panes based on preferences deepend-tildeclub 2026-02-16 01:59:53 -07:00
  • e32574ed9b Enable column expansion in chanview tree deepend-tildeclub 2026-02-16 01:50:23 -07:00
  • a41e8a0f5d Disable debug libraries in project properties deepend-tildeclub 2026-02-16 01:27:53 -07:00
  • 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. deepend 2026-02-16 01:22:47 -07:00
  • f5a4d8f84b Enable Whole Program Optimization in project properties deepend-tildeclub 2026-02-16 01:18:40 -07:00