842 Commits

Author SHA1 Message Date
a53802cfef fix(win): tolerate tar/PS nonzero if files extracted; add path_tree_has_entries() to verify real output 2026-03-08 10:40:20 -06:00
b47c45d4cc feat: merge GTK3 Theme into Appearance (new Advanced section); fix+scale chat bg image + use FileChooserNative picker 2026-03-08 10:10:59 -06:00
f2354a7fa2 refactor: unify tree/xtext/input colors via ThemeWidgetStyleValues (canonical widget-style path) 2026-03-07 22:11:09 -07:00
ca043be197 fix: KDE Wayland alert flash—detect Plasma+Wayland, present() before urgency hint 2026-03-07 19:21:37 -07:00
50346683a1 feat: GTK3-only theming overhaul—new theme service (discover/import/inherits), layered CSS+settings.ini apply w/ safe rollback + caching; widget/xtext palette mapping + all-colors editor; lots of win32/CI libarchive plumbing + installer assets; 2026-03-04 23:28:01 -07:00
deepend-tildeclub
43374f4fae Merge pull request #4 from deepend-tildeclub/theme-module
feat: centralize theming in theme-manager (palette/tokens, CSS, dark-…
2026-03-02 20:44:49 -07:00
d9be0a7b1c feat: centralize theming in theme-manager (palette/tokens, CSS, dark-mode, setup UI), add tests + win32/meson wiring 2026-03-02 19:42:48 -07:00
deepend-tildeclub
f3086fa389 Merge pull request #2 from deepend-tildeclub/consistent-icons
gtk: centralize icon lookup (new icon-resolver), move mappings out of…
2026-03-01 15:01:19 -07:00
1a32bff274 win32 icons: actually copy hicolor subdirs. 2026-03-01 13:16:52 -07:00
349d7f4c55 win32: install hicolor icons + CI now pulls real hicolor-icon-theme 2026-03-01 11:09:19 -07:00
734d194cb0 win32: stage hicolor icon theme into rel share/icons 2026-03-01 10:58:17 -07:00
5983befd5b icons: add system_icon_name API, make gtkutil fall back via resolver registry 2026-03-01 10:14:41 -07:00
e63e68dfde icons: dedupe resolver tables, add unified menu-action API, route gtkutil/pixmaps through one registry + fallback chain 2026-03-01 09:58:04 -07:00
1ef81951b7 win32: wire icon-resolver into VS build, kill old menu icon payload (copy + installer) 2026-02-28 23:39:08 -07:00
395ccb0706 gtk: centralize icon lookup (new icon-resolver), move mappings out of gtkutil/pixmaps, add sane fallback chain + meson hookup 2026-02-28 23:17:27 -07:00
deepend-tildeclub
64c2fd4e51 Merge pull request #96 from ZoiteChat/win-dependencies-cleanup
Win dependencies cleanup
2026-02-28 10:44:44 -07:00
deepend-tildeclub
dd698ecab4 Merge pull request #95 from ZoiteChat/userlist-highlight
userlist highlight: focusable treeview
2026-02-28 10:23:23 -07:00
b93bad9859 windows x64-only purge: kill Win32 configs, simplify installer. 2026-02-28 09:53:37 -07:00
733f932b78 squash: win32 packaging detox (no comsupp/VC2013, trim payload, gate lua/python) 2026-02-28 09:36:50 -07:00
50d99e1314 userlist highlight: focusable treeview + palette CSS gets real :selected theme colors 2026-02-27 09:28:44 -07:00
deepend-tildeclub
90b7d7c5a1 Delete packaging/solus directory
Removing Solus build.  Will bring this back in future when I have more time.
2026-02-26 12:51:51 -07:00
deepend-tildeclub
7e422e10a6 Delete .github/workflows/solus-eopkg-build.yml
Removing Solus Build.  Will possibly bring this back when I have more time.
2026-02-26 12:51:11 -07:00
deepend-tildeclub
2bf32fc770 Merge pull request #90 from ZoiteChat/code-cleanup
Code cleanup
2026-02-25 18:16:54 -07:00
3e095c3c33 Removed two redundant inline comments in the file dialog response/done handlers, leaving the behavior unchanged and the control flow cleaner.
Removed an old commented-out helper function block (gtkutil_treeview_get_selected_iter) that was dead/commented code.
2026-02-25 18:07:26 -07:00
3445d946bc Removed a redundant inline comment in icon loading/scaling logic, leaving behavior unchanged.
Removed a redundant inline comment in the Windows sysinfo volume-name guard path, with no functional impact.
Removed a redundant inline comment in WinRT toast setup while keeping the same notification/audio attribute behavior.
2026-02-25 18:05:21 -07:00
7578928199 Cleaned up redundant/outdated inline comments in the text frontend argument/config and GUI control paths while leaving behavior unchanged (comment-only cleanup). 2026-02-25 16:22:46 -07:00
deepend-tildeclub
428127ef40 Merge pull request #91 from ZoiteChat/fix-application-focus
Added a Windows-only helper (mg_win32_allow_autohide_taskbar) that ge…
2026-02-25 16:20:47 -07:00
e3f932aa6b Updated the Win32 window-state handling to include shellapi.h and query taskbar auto-hide/taskbar edge state via SHAppBarMessage, so maximized windows can leave a 1px reveal edge for the auto-hidden taskbar.
Added monitor-aware work-area adjustment when maximized (MonitorFromWindow + GetMonitorInfo) and shrink by 1px on the detected taskbar edge (including bottom edge), then apply that rectangle with SetWindowPos. This addresses the “mouse at bottom edge should unhide taskbar” behavior.
Kept the existing HWND_NOTOPMOST safeguard in place after the adjustment, preserving prior not-topmost behavior.
2026-02-25 14:48:18 -07:00
7cfa3b3513 Added a Windows-only helper (mg_win32_allow_autohide_taskbar) that gets the native HWND and calls SetWindowPos(..., HWND_NOTOPMOST, ...) for non-fullscreen window-state transitions, so a maximized ZoiteChat window no longer blocks the taskbar auto-hide reveal edge.
Hooked that helper into mg_windowstate_cb so it runs whenever the main window state changes (while preserving existing maximize/fullscreen preference handling).
2026-02-25 14:18:23 -07:00
81c691491c Removed three redundant inline comments in joind_ok_cb that duplicated obvious control flow, leaving behavior unchanged and improving readability. 2026-02-25 13:55:44 -07:00
c361602b1a Removed four unneeded section comments in src/common/notify.h (WATCH/MONITOR/general/old ISON labels), leaving only the function declarations for a cleaner header interface. 2026-02-25 13:51:22 -07:00
99b969067e Removed one stale, commented-out debug/error line in the PCI device-name lookup path (pci_find_fullname), leaving behavior unchanged and making the function cleaner. 2026-02-25 13:29:20 -07:00
6e8b750c68 Removed an obsolete commented-out hdiutil line from the macOS bundling script, leaving only the active packaging path (zip) to keep the script cleaner and easier to scan. 2026-02-25 13:04:05 -07:00
df37b44cc8 Cleaned up unneeded comment noise in the Solus eopkg workflow by replacing an 11-line explanatory block with a concise 2-line comment while preserving the key rationale for --ignore-file-conflicts and required Meson tooling install. 2026-02-25 13:01:21 -07:00
9548be0cec Removed redundant inline comments in the Winamp plugin by simplifying the plugin handle declaration and cleanup comments around initialization/return values, while keeping functional comments intact.
Removed the redundant return 1 inline comment in the Exec plugin init function.
2026-02-25 12:57:42 -07:00
deepend-tildeclub
588e27b456 Remove Debian Build badge from README
Removed Debian Build badge from README.
2026-02-25 10:32:21 -07:00
deepend-tildeclub
7032d0c6b7 Update contact email in appdata XML file 2026-02-25 10:23:59 -07:00
deepend-tildeclub
72e9a99315 Update developer information and homepage URL 2026-02-25 10:17:14 -07:00
3cff6742f5 Removed unneeded inline comments around the Win32 error-formatting fallback in errorstring() and simplified matching block-closing lines, without changing behavior. 2026-02-25 02:37:08 -07:00
6a02f578b6 Removed obsolete commented-out lines from fe_cleanup() so the function no longer contains dead commented code.
Removed an unnecessary explanatory comment above the unconditional early return in log_handler(), leaving only the active behavior.

Removed an unneeded section marker comment before fe_idle() to keep surrounding code cleaner.
2026-02-25 02:34:50 -07:00
e62769b361 Cleaned up unneeded comments in DCC receive/connect code by removing:
a stale commented-out ACK block in the DCC receive error path,

    an unnecessary speculative note before the quoted filename handling,

    and an editorial inline comment on a static variable declaration.
2026-02-25 02:30:46 -07:00
9df9776238 Removed a stale multi-line # TODO note block from the common Meson build file to clean up unneeded comments without changing build logic.
Removed an old commented-out /* FIXME ... */ prototype block from servlist.h, leaving only active declarations.
2026-02-25 02:28:10 -07:00
4beabb6bf5 Removed a stale commented-out debug function block from the fishlim plugin source to reduce dead/commented code.
Removed the corresponding commented-out RAW LINE hook entry so only active handlers remain in plugin initialization.
2026-02-25 02:24:11 -07:00
10d5bb91ab Cleaned up unneeded, commented-out debug logging lines in Perl plugin callback handlers (server_cb, command_cb, and print_cb) without changing runtime behavior. 2026-02-25 02:14:38 -07:00
7c9c615aed Removed redundant inline comments from the fishlim IRC parsing helpers where the comments only repeated obvious code behavior, while preserving all function docblocks and logic. 2026-02-25 02:12:10 -07:00
fd48c97209 Removed four redundant inline comments in src/fe-gtk/urlgrab.c to clean up readability without changing behavior (treeview enum declaration area, right-click selection block, headers visibility call, and URL list overflow trimming block). 2026-02-25 02:09:35 -07:00
e58bf2be22 Cleaned up redundant comments in dcc_listen_init by removing obvious/explanatory noise and an obsolete commented-out debug printf, while leaving logic unchanged. 2026-02-25 02:07:38 -07:00
dc6453e230 Removed redundant inline comments in lastact_update and lastact_getfirst where the code was already self-explanatory, without changing behavior.
Simplified away_check by removing comment clutter and keeping only the logic flow, including the WHO batching behavior.
Removed unneeded commentary around lag-check helpers and timer reinitialization to keep the core timer code cleaner and easier to scan.
2026-02-25 02:04:31 -07:00
b3a0288fd9 Cleaned up stale inline comments in the tab scrolling handlers by removing outdated explanatory text while keeping behavior unchanged (tab_left_is_moving / tab_right_is_moving reset paths).
Removed an old commented-out gtk_container_set_border_width(...) line that was dead/commented code in cv_tabs_init.
Simplified the tab-switch condition by removing a legacy commented expression from if (is_switching).
2026-02-25 02:01:11 -07:00
9c86f18982 Cleaned up unneeded inline comments in plugins/python/python.py while keeping runtime behavior unchanged (comment-only cleanup around version declaration, compile helpers, wordlist/timer handling, and autoload path handling). 2026-02-25 01:58:19 -07:00
1bf0140652 Cleaned up redundant inline comments in the SCRAM implementation so the file is less noisy while preserving behavior exactly as-is (no logic changes). 2026-02-25 01:54:34 -07:00
bb72f8afab Removed redundant inline comments from the common header includes/platform guards in src/common/zoitechat.h (e.g., comments like “need time_t”, “for win32”, “for unix”), while preserving meaningful explanatory comments. 2026-02-25 01:50:00 -07:00
bb11c4676b Cleaned up src/fe-gtk/meson.build by removing an outdated commented-out WinRT build block in the Windows section, leaving only active build logic.
Removed an inline TODO comment from the gnome.compile_resources call to keep the Meson configuration concise and focused on current settings.
2026-02-25 01:47:32 -07:00
32fe3e54f1 Removed redundant section-divider comments in the Windows spellcheck provider to reduce clutter without changing behavior.
Removed non-essential inline comments that restated obvious return values and assignment intent (return -1/1/0, add_to_exclude alias), keeping logic identical.
2026-02-25 01:45:20 -07:00
9d2187ca4d Cleaned up unneeded inline comments in src/fe-text/fe-text.c where control-character switch cases were already self-explanatory, while keeping behavior unchanged.
Removed a redundant comment from the done global flag declaration for a cleaner declaration section.
2026-02-25 01:43:01 -07:00
0e94432c24 Removed four redundant comments in plugins/sysinfo/sysinfo.c while keeping behavior unchanged (the command parsing, channel checks, and menu add/remove calls are intact). 2026-02-25 01:40:34 -07:00
c4890d157a Cleaned up redundant inline comments in the exec plugin’s command execution path (pipe creation, buffer termination, per-line announce handling, sleep loop, and trailing newline output) without changing behavior. 2026-02-25 01:38:06 -07:00
ef2befa698 Cleaned up redundant comments in src/fe-gtk/fkeys.c by removing section-divider noise and a stale XXX line near key-action helpers, while keeping useful function-level documentation.
Removed repetitive inline comments from return 2; statements in tab-move/history key actions, since behavior is already clear from the surrounding code.
Removed an unnecessary separator comment before replace_handle() for a cleaner transition between functions.
2026-02-25 01:35:30 -07:00
5f9ce549f8 Removed redundant inline comments in the timer plugin that did not add useful context (plugin handle declaration and return value comment), keeping behavior unchanged.
Removed an obsolete visual alignment guide comment above the timer list header print call to clean up the function body.
2026-02-25 01:32:27 -07:00
cb435f0d15 Cleaned up unneeded comments in default config initialization by removing:
a stale commented-out assignment line,

    an outdated inline TODO/FIXME note on hex_irc_who_join,

    and an inline /*FIXME*/ marker on hex_flood_msg_time.
2026-02-25 01:29:05 -07:00
105e259f2c Removed redundant inline /* plugin handle */ comments from the ph declarations in three plugin source files, keeping behavior unchanged and making the declarations cleaner. 2026-02-25 01:06:13 -07:00
51bf0c3fe0 Removed redundant explanatory comments in chanopt_command so the control flow reads cleanly without inline narration, while keeping behavior unchanged.
Simplified the chanopt_in_memory struct and helper routines by removing comments that repeated obvious intent (allocation/default initialization/loading notes), with no logic changes.
2026-02-25 01:02:37 -07:00
e6311a5fe7 Removed two stale, commented-out lines in ignore_showlist() (an unused EMIT_SIGNAL call and its note), cleaning up unneeded comments without changing runtime behavior. 2026-02-25 00:59:53 -07:00
2c90c14d72 Removed an unneeded comment above the $(CONFIG_STAMP) target in Makefile, leaving behavior unchanged and just cleaning up the file. 2026-02-25 00:57:30 -07:00
6c9aeac36f Cleaned up unneeded inline comments in swtype by removing index/reserved annotations that didn’t add value, while keeping the data unchanged.
Removed a stale commented-out ST_HEADER line from tabs_settings so the settings table only contains active entries.
Removed a dead commented-out call from setup_apply_trans to reduce noise in the function body.
Removed redundant trailing declaration comments from proxy_user and proxy_pass since the types are already explicit.
2026-02-25 00:55:37 -07:00
48f7693eac Removed redundant comments in the notification plugin implementation to clean up the code without changing behavior (including comments around color stripping, alert gating logic, and special-event hook registration). 2026-02-25 00:53:10 -07:00
71d3ba576f Removed an outdated TODO comment in plugins/python/python.py above the module-level state variables, keeping behavior unchanged while reducing noise.
Removed two stale TODO comments in plugins/python/_zoitechat.py above command() and hook_command(), with no functional changes to those APIs.
2026-02-25 00:49:54 -07:00
067670bd01 Removed three redundant inline comments in the server helper code to clean up readability without changing any behavior:
Deleted comment above the serv->network check in server_get_network.
 Deleted comment above the server_session->channel check in server_get_network.
 Deleted comment above the name != serv->servername guard in server_set_name.
2026-02-25 00:46:18 -07:00
610d6fa1c0 Removed stale, commented-out SSL debug code in ssl_cb_info, leaving the function behavior unchanged while cleaning dead comments.
Removed an old commented-out rsa_tmp_bits certificate logging block in the SSL certificate info path.
Removed commented-out “Verify OK” signal lines in the SSL verification switch for cleaner control-flow comments.
2026-02-25 00:43:03 -07:00
5d6fa503c9 Cleaned up redundant CI workflow comments in AppImage workflow sections where the commands are already self-explanatory, including plugin listing and environment export blocks.
Replaced a long explanatory Solus packaging comment block with a concise single-line comment that preserves the key intent for --ignore-file-conflicts and toolchain installation.
Removed unneeded inline comments in the Windows build workflow around Python root resolution and junction creation while keeping behavior unchanged.
2026-02-25 00:40:36 -07:00
375e747014 Removed four redundant section-label comments from plugins/python/generate_plugin.py to clean up non-essential commentary while keeping behavior unchanged (# zoitechat-plugin.h, # This is very specific..., # python.py, # python.c). 2026-02-25 00:38:03 -07:00
5cab7be8a9 Removed redundant inline comments in notify network filtering and server-entry lookup paths to clean up noise without changing behavior.
Simplified notify list preparation in notify_save into a single reverse-copy expression and normalized GLib call spacing for consistency.
2026-02-25 00:34:59 -07:00
4808d83b26 Cleaned up unneeded inline comments in IRC inbound handling by removing redundant // comments around session selection and SCRAM auth status branches, with no logic changes. 2026-02-25 00:32:23 -07:00
c4951a06f3 Cleaned up unneeded commented-out debug lines in maingui.c (old printf/puts and an obsolete commented call), without changing behavior or logic flow.
Committed the cleanup on the current branch with commit message: Remove stale debug comments from maingui.
2026-02-25 00:29:52 -07:00
bd418160e1 Removed four redundant inline comments in print_sha256_result so the function is cleaner without changing behavior or control flow. 2026-02-25 00:26:56 -07:00
90a3d6d839 Removed redundant comments in url_save_node() and url_add() so the function bodies are cleaner without changing logic.
Removed an outdated performance note comment before the cached match state variables and a redundant comment in match_nick(); behavior remains unchanged.
2026-02-25 00:23:42 -07:00
deepend-tildeclub
e2511e8be1 Delete .github/workflows/debian-build.yml 2026-02-24 22:41:00 -07:00
deepend-tildeclub
33e1403b98 Delete debian directory 2026-02-24 22:40:49 -07:00
deepend-tildeclub
596a134ef3 Add Manjaro Package Build badge to README 2026-02-24 22:11:51 -07:00
deepend-tildeclub
1ae7e50c88 Update changelog with recent changes 2026-02-24 20:50:23 -07:00
deepend-tildeclub
922595d68c Merge pull request #89 from ZoiteChat/appimage-open-weblinks-fix
Updated Linux URL launching in fe_open_url_inner to capture gtk_show_…
2026-02-24 20:37:51 -07:00
618aecd349 Fixed a crash-prone memory management path in Linux URL launching by only freeing the previous environment vector when g_environ_unsetenv() returns a different pointer. This avoids freeing memory that may still be owned/returned as-is by GLib, which matches your segfault symptoms when opening links from the AppImage build.
The fix is in fe_open_url_inner() right where LD_LIBRARY_PATH and LD_PRELOAD are sanitized before spawning xdg-open.
2026-02-24 20:29:48 -07:00
3ed66f9945 Updated Linux URL-opening logic in fe_open_url_inner to sanitize runtime linker env vars (LD_LIBRARY_PATH, LD_PRELOAD) before launching external URL handlers, which is aimed at preventing /bin/sh symbol lookup failures in AppImage-like environments.
Changed the flow to prefer xdg-open first (with sanitized env) and only then fall back to gtk_show_uri, instead of trying GTK first under a potentially broken runtime environment.

    Added explicit final warning when both mechanisms fail, and ensured temporary allocations (including xdg_open_path) are released cleanly.
2026-02-24 20:22:54 -07:00
4284cb76c1 Updated Linux URL opening fallback in fe_open_url_inner to launch xdg-open with a sanitized environment instead of inheriting AppImage runtime linker vars. Specifically, LD_LIBRARY_PATH and LD_PRELOAD are removed before spawning, which prevents host /bin/sh and related tools from loading incompatible bundled libraries (the root cause of the rl_trim_arg_from_keyseq symbol error).
Kept the existing behavior of trying gtk_show_uri first and only using xdg-open as fallback; this change only hardens the fallback path and preserves existing flow/logging.
2026-02-24 20:13:48 -07:00
b7693e75ec Updated Linux URL launching in fe_open_url_inner to capture gtk_show_uri errors instead of discarding them, so failures are no longer silent.
Added an xdg-open fallback path when gtk_show_uri fails, which improves behavior in AppImage/sandbox-like environments where GTK/GIO handler resolution can fail.
Added warning logs for both the primary gtk_show_uri failure and fallback failure to make future debugging much easier.
2026-02-24 19:36:36 -07:00
c15b352c4b Prep for Pre-release 2 2026-02-24 19:30:54 -07:00
deepend-tildeclub
cf8aeba53e Update socket configuration in Zoitechat JSON
Replaced Wayland and fallback-x11 sockets with x11 socket.
2026-02-24 19:27:03 -07:00
deepend-tildeclub
ff75d73b92 Merge pull request #88 from ZoiteChat/add-lua-scripting-shim-for-hexchat
I applied the same compatibility approach to Lua so HexChat/XChat-sty…
2026-02-24 19:08:13 -07:00
deepend-tildeclub
d7986d603f Merge pull request #87 from ZoiteChat/add-hexchat-plugin-compat
Merge pull request #86 from ZoiteChat/master
2026-02-24 18:02:22 -07:00
deepend-tildeclub
672fe041cc Merge pull request #77 from ZoiteChat/manjaro-package
Added a Manjaro/Arch-style PKGBUILD for a VCS package (zoitechat-git)…
2026-02-24 18:02:02 -07:00
91485465c9 I applied the same compatibility approach to Lua so HexChat/XChat-style scripts can run against the existing ZoiteChat Lua API table. Specifically, I added EAT_XCHAT and EAT_HEXCHAT as aliases of EAT_ZOITECHAT in the exported Lua constants.
I also exposed global Lua aliases xchat and hexchat that both point to the zoitechat module table, so existing scripts calling xchat.* or hexchat.* work unchanged.
2026-02-24 17:55:04 -07:00
1c39d7b9ad Added hexchat.py to the Windows packaging copy step so the compatibility module is shipped alongside xchat.py/zoitechat.py in ZoiteChatRel\python, which resolves import hexchat failures for HexChat-style addons on Windows builds.
Added hexchat.py to the Visual Studio Python plugin project item list so it is tracked consistently in the Windows project metadata.

Added hexchat.py to the corresponding .vcxproj.filters entries under Source Files for IDE consistency.
2026-02-24 15:56:29 -07:00
deepend-tildeclub
54105f3816 Merge pull request #86 from ZoiteChat/master
sync with master.
2026-02-24 15:53:18 -07:00
deepend-tildeclub
69b007f849 Merge pull request #85 from ZoiteChat/deepend-tildeclub-default-server-fix
Change network name check from 'Libera.Chat' to 'Zoite'
2026-02-24 14:22:15 -07:00
deepend-tildeclub
118ac25059 Change network name check from 'Libera.Chat' to 'Zoite' 2026-02-24 14:22:01 -07:00
9ee8a53b9c Moved the Flatpak display troubleshooting content from readme.md into a standalone troubleshooting.md document, as requested.
Replaced the large inline README section with a single link to the new troubleshooting file to keep the README concise.
2026-02-24 11:48:04 -07:00
deepend-tildeclub
e407ef6c47 Merge pull request #82 from ZoiteChat/extra-character-highlight-fix
Updated emoji-token normalization to first apply Unicode composition …
2026-02-24 11:46:44 -07:00
0935799f7d Updated emoji-token normalization to first apply Unicode composition normalization (G_NORMALIZE_ALL_COMPOSE) before matching, so canonically-equivalent sequences compare reliably in highlight checks.
Expanded ignored codepoints during highlight token comparison to include zero-width joiner (U+200D) in addition to variation selectors (U+FE0E/U+FE0F), which helps emoji entered from different input methods still match configured “extra highlight words.”

This logic is used by the alert/highlight matching path (alert_match_word) that compares configured extra words against extracted message tokens.
2026-02-24 11:18:46 -07:00
deepend-tildeclub
fac15811c2 Merge pull request #79 from ZoiteChat/highlight-word-parsing
Fixed highlight word parsing so Unicode symbols (including emoji like…
also fixed user info right click menu refreshing.
2026-02-24 09:20:15 -07:00
deepend-tildeclub
d89f632850 Merge pull request #80 from ZoiteChat/add-hexchat-plugin-compat
Updated the Python scripting shim to expose EAT_HEXCHAT as an alias o…
2026-02-24 08:38:27 -07:00
b7804fd7eb Fixed the right-click nick info refresh flow in fe_userlist_update() so the submenu can keep updating after the first refresh when WHOIS-derived data is still incomplete. It now tracks a needs_refresh condition and reattaches the submenu show callback when required. This ensures user info can continue to refresh as data arrives instead of stopping after one update. 2026-02-24 08:35:23 -07:00
95e40bbe5e Added hexchat.py to Debian install manifest for zoitechat-python3 so the file is packaged instead of being left in debian/tmp (which triggers dh_missing failure). 2026-02-23 19:17:52 -07:00
3a680cf6b4 Updated the Python scripting shim to expose EAT_HEXCHAT as an alias of EAT_ZOITECHAT, so scripts written for HexChat constants work without changes.
Added a Python hexchat.py compatibility module and ensured it is installed alongside zoitechat.py/xchat.py, enabling import hexchat scripts to run.

Updated the Perl API layer to support HexChat naming by aliasing HexChat:: to ZoiteChat::, adding EAT_HEXCHAT to exported constants, and adding an explicit Perl shim module HexChat.pm.

Extended Perl XS constant registration to export EAT_HEXCHAT as a compatibility alias, and wired HexChat.pm into the embedded Perl module generation list so it ships with the plugin.
2026-02-23 19:09:09 -07:00
314dfbbd75 Fixed highlight word parsing so Unicode symbols (including emoji like 🐜) are treated as part of words when scanning incoming text for alert matches, which enables /Extra words to highlight/ entries containing emoji to work.
Improved token scanning to use UTF-8-aware character classification (gunichar, g_unichar_isdigit, g_unichar_isalpha) instead of byte-only checks, avoiding split/mis-detection on multibyte characters.
2026-02-23 16:11:41 -07:00
deepend-tildeclub
aed21ffcae Merge pull request #78 from ZoiteChat/gtk2-cleanup
Gtk2 cleanup
2026-02-23 19:59:49 +00:00
a79d34bcc0 cleaned up some gtk2 specific comments 2026-02-23 12:42:44 -07:00
eebe11b95b I removed the leftover GTK2 compatibility include path from src/fe-gtk/xtext.h by dropping the GTK_MAJOR_VERSION < 3 / gtkobject.h block, leaving the GTK3 header path (<gtk/gtk.h>) in place. 2026-02-23 12:36:33 -07:00
42993c8c9b Updated the Manjaro PKGBUILD build configuration to explicitly enable all bundled, Linux-applicable ZoiteChat plugins during Meson setup: checksum, fishlim, lua, perl, python, and sysinfo. This ensures the package build doesn’t rely on implicit defaults for plugin inclusion. 2026-02-23 11:50:54 -07:00
deepend-tildeclub
2598f3732c Change luajit-devel to luajit in workflow 2026-02-23 11:22:42 -07:00
deepend-tildeclub
5204a6b672 Add luajit-devel to package dependencies 2026-02-23 11:07:49 -07:00
deepend-tildeclub
155a20115c Add glib2-devel to Manjaro package build dependencies 2026-02-23 11:03:25 -07:00
ab0e84257a Replaced gnome.genmarshal() usage with explicit Meson custom_target() rules that generate both marshal.h and marshal.c from marshalers.list, preserving the same marshaller prefix and generated outputs consumed by the build.
Added a direct find_program() lookup for glib-genmarshal (with glib-genmarshal-2.0 fallback), so configuration no longer depends on the broken glib-2.0 pkg-config tool variable (glib_genmarshal) reported in your error.
2026-02-23 10:50:53 -07:00
b2fd66e4c4 Fixed the Manjaro packaging build failure by removing the redundant -Dbuildtype=plain from arch-meson invocation in build(), so Meson no longer receives buildtype from both --buildtype and -Dbuildtype. 2026-02-23 10:31:39 -07:00
66d0549938 Fixed Manjaro pkgver() generation to produce Arch-valid version strings when git describe includes pre-release hyphens (for example -pre1) by normalizing the describe suffix and replacing remaining hyphens with dots. This prevents invalid pkgver values like ...pre1-40-g.... 2026-02-23 09:54:11 -07:00
498497171b Updated the Manjaro package workflow to make builder user creation idempotent by guarding useradd with an existence check (id -u builder ... || useradd -m builder), preventing failures when the user already exists in the container. 2026-02-23 09:40:27 -07:00
b731d3fb18 Added a Manjaro/Arch-style PKGBUILD for a VCS package (zoitechat-git) under packaging/manjaro/PKGBUILD, including package metadata, runtime/build deps, pkgver() generation from git history, and build()/package() functions using Meson (arch-meson, meson compile, meson install).
Added a new GitHub Actions workflow .github/workflows/manjaro-package-build.yml that:

runs in a manjarolinux/base container,

installs Manjaro packaging/build tooling,

builds via makepkg as a non-root user,

generates .SRCINFO,

runs namcap checks on both PKGBUILD and the built package,

uploads package artifacts plus PKGBUILD/.SRCINFO.
2026-02-23 09:35:36 -07:00
deepend-tildeclub
0081d5c492 Remove OpenBSD build badge
Removed OpenBSD build badge from README.
2026-02-22 16:33:06 -07:00
deepend-tildeclub
ccdc9d4992 Merge pull request #75 from ZoiteChat/nogtk2
GTK2 Build Compatibility Removal
2026-02-22 23:32:35 +00:00
45105590fe Updated the AppImage workflow Configure step to remove the explicit -Dgtk3=true Meson flag while keeping the other existing options intact (-Dtext-frontend=true, perl/python, auto features, appindicator). 2026-02-22 16:19:03 -07:00
149863fdca remove more gtk2 2026-02-22 16:08:00 -07:00
be7b5e62be Updated Unix sysinfo backend to treat GTK3 as the only GTK target by:
narrowing the GDK include guard to #if defined(HAVE_GTK3), and

    removing legacy HAVE_GTK2 / HAVE_GTK toolkit label branches from sysinfo_detect_toolkit(),

    narrowing GDK display probing guard in sysinfo_detect_display_backend() to GTK3-only.

Updated Windows and macOS sysinfo backends to remove HAVE_GTK2 / HAVE_GTK fallback labels so sysinfo_detect_toolkit() now returns only "GTK3" (or NULL).

Updated API docs for sysinfo_backend_get_ui() to remove the outdated "GTK2 / X11" example so comments match runtime behavior.

    Removed the deprecated Meson option option('gtk3', ... deprecated: true) from meson_options.txt, leaving gtk-frontend/text-frontend options intact.

    Removed -Dgtk3=true from Debian’s Meson configure flags in debian/rules (override_dh_auto_configure).

    Removed remaining active -Dgtk3=true packaging consumers in Flatpak config:

        dropped it from config-opts

        dropped -Dgtk3=true from cflags.

    Removed -Dgtk3=true from Solus packaging Meson configure args.

    Committed changes on the current branch (e018bfd) and created a PR record via the make_pr tool.
2026-02-22 15:38:05 -07:00
1b66b136dc Removed the obsolete GTK3 compatibility compile define from the GTK frontend build flags by deleting -DHAVE_GTK3 in src/fe-gtk/meson.build. 2026-02-22 15:31:51 -07:00
4b188192f8 Removed GTK2 compatibility shims from fe-gtk.h by deleting the local HAVE_GTK3 fallback derivation, deleting GTK2 no-op wrappers for expansion APIs, and making InputStyle GTK3-only.
Simplified the Windows theme block in fe-gtk.c from a GTK3-conditional compile guard to a direct Windows guard (#ifdef G_OS_WIN32), matching the GTK3-only codebase direction.

Simplified native file chooser guards in gtkutil.c from WIN32 && HAVE_GTK3 to #ifdef WIN32, removing remaining GTK3 compatibility-condition clutter in that file.
2026-02-22 15:27:28 -07:00
743bf334d4 Migrated the macOS bundle manifest to GTK3 by switching the package reference to gtk+-3.0, updating the theme resource path to gtk-3.0, and changing the GTK translation domain from gtk20 to gtk30.
Updated bundled runtime config payload from GTK2-style gtkrc to GTK3 settings.ini in the bundle manifest, and added a new osx/settings.ini with Mac theme/key-theme defaults and image settings.

    Updated osx/launcher.sh to remove the GTK2-specific GTK2_RC_FILES usage, switch module file paths from gtk-2.0 to gtk-3.0, and add GTK3-appropriate GTK_THEME / GTK_KEY_THEME environment variables for macOS runtime behavior.

    Checked the osx/ packaging scripts/manifests for other hardcoded GTK2 identifiers and confirmed none remain in that packaging scope after the migration.
2026-02-22 15:14:40 -07:00
1c5bf9d6b1 Removed GTK2/GTK3 dual-path preprocessor branches across src/fe-gtk by keeping GTK3-native paths only, including the high-density targets you prioritized (xtext.c, setup.c, maingui.c, gtkutil.c, servlistgui.c).
Removed GTK2 compatibility shims from headers (fe-gtk.h, gtkutil.h), leaving direct GTK3-facing declarations/includes only (and platform-specific guards unrelated to GTK2 kept as-is).

Cleaned GTK2-specific comments/wording now that behavior is GTK3-native (menu accelerator note and emoji/userlist comment blocks).
2026-02-22 15:11:35 -07:00
8b344e8bfe fix build error 2026-02-22 15:04:10 -07:00
44019bcab2 Made the gtk3 Meson option effectively deprecated by forcing it to true and updating its description to state GTK3 is always used (option ignored), so users are no longer guided toward GTK2 expectations. Also updated the AppIndicator option help text to refer to GTK frontend builds generally.
Removed the GTK2 fallback branch in src/fe-gtk/meson.build, so the GTK frontend now always resolves gtk_dep from dependency('gtk+-3.0', version: '>= 3.22') and always defines -DHAVE_GTK3.

Kept AppIndicator logic gated for non-Windows builds and intact in behavior (Ayatana first, then AppIndicator, with error on enabled if neither is found).

Simplified non-Windows GDK X11 probing to always use gdk-x11-3.0, consistent with GTK3-only frontend builds.
2026-02-22 15:00:41 -07:00
52f547ae13 Deprecated the gtk3 Meson option and effectively forced GTK3 usage (value: true, deprecated: true), plus updated option/help text so users no longer expect GTK2 frontend builds. Also clarified the AppIndicator option text for non-Windows GTK frontend builds.
Updated src/fe-gtk/meson.build to always resolve gtk_dep from dependency('gtk+-3.0', version: '>= 3.22'), removed the GTK2 fallback branch and -DHAVE_GTK2, and kept AppIndicator detection guarded under host_machine.system() != 'windows' as requested. The GTK X11 helper dep is now unconditionally checked within that same non-Windows block (no gtk3 toggle).

Updated Meson summary output to explicitly report the GTK frontend as GTK+ 3.22+ when enabled, reinforcing that GTK2 builds are no longer expected.
2026-02-22 14:42:20 -07:00
deepend-tildeclub
c7311009dc Merge pull request #73 from ZoiteChat/appimage_plugin_fix
Updated the AppImage CI workflow to explicitly verify built-in plugin…
2026-02-22 19:38:03 +00:00
1b1855b14e temporarily disable broken python implementation 2026-02-22 12:03:32 -07:00
6c699ac07b Added a Flatpak-specific guard in proxy auto-detection to skip g_proxy_resolver_lookup() when running inside Flatpak (/.flatpak-info present), preventing the Connect flow from appearing to freeze in sandbox environments with missing proxy backends. This still preserves normal behavior for explicit manual proxy settings. 2026-02-22 11:55:49 -07:00
d379bb138c Added Flatpak-specific Python module search paths in plugin init: when FLATPAK_ID is present, the loader now also probes /app/lib/zoitechat/python and /app/lib/x86_64-linux-gnu/zoitechat/python before importing zoitechat.
Kept the existing safe behavior intact: paths are only added if they exist and are not already in sys.path, so this broadens compatibility without duplicating entries.
2026-02-22 11:42:49 -07:00
76796f5f23 Fixed Python plugin module discovery to search multiple valid install layouts before importing zoitechat, instead of assuming only one path. This includes:
existing sibling fallback (../python)

    direct fallback (libdir/python)

    AppImage-aware fallbacks under $APPDIR/usr/lib/zoitechat/python and $APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/python.

Added guards so paths are appended only if the directory exists and is not already in sys.path, reducing duplicate/invalid entries while improving robustness across packaging layouts.
2026-02-22 11:03:57 -07:00
796c572292 Updated the AppImage workflow to copy Python dist-packages into the AppDir for both standard and multiarch layouts (/usr/lib/python3/dist-packages and /usr/lib/x86_64-linux-gnu/python3/dist-packages). This ensures Python runtime modules needed by the embedded plugin are actually bundled.
Updated AppRun Python environment setup to build PYTHONPATH dynamically from all bundled candidate directories instead of assuming only one path. This should address cases where the Python plugin fails to initialize in the AppImage due to missing import paths.
2026-02-22 10:56:46 -07:00
931dddcf0e Enabled the Python plugin in the Flatpak build by changing Meson config from -Dwith-python=false to -Dwith-python=python3, so it gets built in the Flatpak app module.
Set Flatpak to prefer Wayland by default by adding --env=GDK_BACKEND=wayland,x11 (while keeping existing Wayland and X11 sockets for compatibility).
2026-02-22 10:47:01 -07:00
2713270e1f Added a new workflow step, “Bundle scripting runtimes in AppDir”, that copies Python and Perl runtime artifacts into AppDir (Python binary + stdlib + libpython3*.so*, Perl binary + common Perl library/share paths). This addresses the root issue that runner-installed runtimes were not necessarily ending up inside the final AppImage payload.
Updated AppRun to explicitly set PYTHONHOME to the bundled runtime root and initialize PYTHONPATH from bundled Python directories, so embedded Python can resolve core modules like encodings at runtime.
2026-02-22 10:38:08 -07:00
2705d21f6e Updated the AppImage GitHub Actions dependency install list to explicitly include runtime packages for Perl and Python (perl, python3, and python3-minimal) so the packaged app has the interpreter/runtime components needed at build/package time. This is in addition to the existing dev packages already present. 2026-02-22 10:27:27 -07:00
6b6869e327 Updated the AppImage AppRun generation in CI so PATH now keeps the host entries first and appends AppDir/usr/bin after, preventing helper modules from accidentally invoking an incomplete bundled python3. 2026-02-22 10:10:24 -07:00
97fc9c7061 Updated the AppImage CI workflow to explicitly verify built-in plugin .so files are present in AppDir after install, checking checksum, fishlim, lua, perl, python, and sysinfo (and therefore excluding the Windows updater plugin from required Linux AppImage contents).
Updated the generated AppRun script to set ZOITECHAT_LIBDIR to the bundled plugin directory inside the AppImage (usr/lib/x86_64-linux-gnu/zoitechat/plugins with fallback to usr/lib/zoitechat/plugins) so plugin discovery resolves correctly at runtime from the AppImage payload.
2026-02-22 09:59:16 -07:00
c928568a92 Updated the AppImage CI workflow to build on ubuntu-22.04 instead of ubuntu-24.04, and documented the reason inline: targeting an older glibc baseline for broader Linux compatibility 2026-02-22 09:47:29 -07:00
deepend-tildeclub
78fe710b97 Merge pull request #70 from ZoiteChat/fixtrayicon
Investigated the XFCE tray issue and confirmed the code path depe…
2026-02-22 16:21:39 +00:00
deepend-tildeclub
2ed22b3081 Delete .github/workflows/openbsd-build.yml 2026-02-22 09:21:24 -07:00
deepend-tildeclub
3ad30c4775 Delete .github/workflows/openbsd-build.yml 2026-02-22 09:18:30 -07:00
deepend-tildeclub
fe5033ea6d Update talk and own names in Zoitechat JSON 2026-02-22 09:00:45 -07:00
deepend-tildeclub
b6ec7d2981 Add filesystem permission for tray icon creation 2026-02-22 08:56:44 -07:00
42de1c8e60 Restored the Flatpak AppIndicator stack (for Wayland tray support) by re-adding the libayatana-appindicator shared module in the manifest.
Removed -Dappindicator=disabled from Flatpak Meson config-opts, so the Wayland-capable AppIndicator backend is built again.
2026-02-22 08:51:05 -07:00
5dcd4151db Fixed the Flatpak finish-args D-Bus permission by changing the invalid bus-name pattern --own-name=org.kde.StatusNotifierItem-* to the valid wildcard form --own-name=org.kde.StatusNotifierItem*, which addresses the Invalid dbus name org.kde.StatusNotifierItem-* failure during finishing/build. 2026-02-22 08:30:07 -07:00
275e5504f8 Added Flatpak D-Bus permissions required for StatusNotifier/AppIndicator tray registration by allowing access to com.canonical.AppMenu.Registrar and ownership of org.kde.StatusNotifierItem-*. This is aimed at fixing the missing tray icon in Flatpak runs. 2026-02-22 08:20:26 -07:00
deepend-tildeclub
f53e2a21ba Add talk-name for KDE Status Notifier Watcher 2026-02-22 08:12:28 -07:00
deepend-tildeclub
e58d128c73 Implement fallback for tray icon resolution
Add fallback for tray icon if desktop-id fails to resolve.
2026-02-22 14:54:18 +00:00
4b919721b1 Fixed the OpenBSD CI dependency list to keep appindicator support enabled while using the correct OpenBSD package name: libappindicator (instead of removing it or using libayatana-appindicator). 2026-02-22 07:31:33 -07:00
391c4c1a24 Updated the OpenBSD workflow to install the missing appindicator dependency by adding libayatana-appindicator to pkg_add, so appindicator support can remain enabled instead of being turned off. 2026-02-22 07:23:08 -07:00
acb8d2f539 Investigated the XFCE tray issue and confirmed the code path depends on build-time AppIndicator availability: GTK3 uses AppIndicator/StatusNotifier only when Ayatana/AppIndicator headers/libs were present at compile time; otherwise it falls back to GtkStatusIcon behavior. That fallback is less reliable across XFCE setups, which explains why one user could miss the tray icon.
Added a new Meson feature option appindicator (default auto) so this backend is explicitly controllable.

    Updated GTK Meson logic to honor -Dappindicator=... and fail fast if enabled is requested but neither ayatana-appindicator3-0.1 nor appindicator3-0.1 is found (prevents silently shipping a build without AppIndicator tray support).

    Updated AppImage CI configure flags to force -Dappindicator=enabled, which should prevent AppImage artifacts from lacking StatusNotifier/AppIndicator tray support in XFCE-like environments.
2026-02-22 06:58:24 -07:00
a459d0a086 fixed docs url, removed extra help menu. 2026-02-21 19:17:31 -07:00
deepend-tildeclub
e3fb5b27f5 Update contact email in plugin metadata 2026-02-21 18:38:29 -07:00
deepend-tildeclub
60ade26bda Change branch from 'stable' to 'master' 2026-02-21 18:32:09 -07:00
deepend-tildeclub
6cbbcf06b0 Update Flatpak build container image to GNOME 49 2026-02-21 17:47:15 -07:00
deepend-tildeclub
58394d555e Merge pull request #69 from ZoiteChat/update-shared-modules
Updated the flatpak/shared-modules submodule to the latest upstream c…
2026-02-21 16:39:51 -08:00
deepend-tildeclub
7e8a830fda Update CI to use Ubuntu and new Flatpak image 2026-02-21 17:33:34 -07:00
deepend-tildeclub
19a19b4237 Change branch triggers from update-shared-modules to master 2026-02-21 17:30:00 -07:00
fcaedd41ce Updated the Flatpak GitHub Actions workflow to fully disable Flatpak builder caching by setting cache: false and restore-cache: false in the flatpak-builder step (and removing the previous cache-key usage) 2026-02-21 17:21:25 -07:00
deepend-tildeclub
e4e5689bc5 Enable GTK3 support in Zoitechat build options 2026-02-21 17:08:07 -07:00
deepend-tildeclub
5080c3b1d2 Enable GTK3 support in Zoitechat build config 2026-02-21 17:03:47 -07:00
deepend-tildeclub
3d450a3b33 Remove release build type from Zoitechat config 2026-02-21 16:54:03 -07:00
deepend-tildeclub
faf55e0d06 Change branch for Flatpak build workflow 2026-02-21 16:36:58 -07:00
ee40f3842b Updated the Flatpak manifest’s lgi module pin from the old commit to c9b8e4473c6421f2a215d8c06c0d94b86eb0b26a, which matches the meson buildsystem expectation and avoids the Can't find meson.build failure for that module checkout path. 2026-02-21 16:27:11 -07:00
deepend-tildeclub
cc9b1e249a Update socket and Lua version in Zoitechat config 2026-02-21 16:19:22 -07:00
3c2b0a8986 Good catch on data/icons/menu — I updated the resource bundle to include the new SVG menu icons (for both light and dark variants), not just PNG entries. This ensures those assets are actually packaged and available at runtime (including Flatpak).
Kept existing PNG entries intact and added SVG entries alongside them so the current icon-loading fallback behavior continues to work while enabling the newer icon files.
2026-02-21 15:46:43 -07:00
724211362b fixed one clear Flatpak metadata mismatch: the plugin extension version was still 20.08 while the runtime is GNOME 49. I updated the extension version to 49 so Flatpak metadata is internally consistent. 2026-02-21 14:53:49 -07:00
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). 2026-02-21 14:38:59 -07:00
deepend-tildeclub
3f0b936694 replace icon 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. 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.
Replaced the Solus build dependency pkgconfig with pkgconf to address the Repo item pkgconfig not found packaging failure.

Committed the change on the current branch
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.
Added inline workflow comments documenting why these extra packages are needed in this containerized Solus build path.
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. 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). 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.
Updated the Win32 WM_COPYDATA handler to recognize that toggle command and perform minimize/restore behavior:

visible window → iconify

hidden window → show/present
while preserving existing behavior for normal remote commands.
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.
Left the source tarball URL/checksum unchanged (zoitechat-2.18.0-pre1), so this only adjusts the package metadata version field to pass format checks.
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. 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 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.
Added explanatory comments in the workflow about why file-conflict tolerance is necessary in some Solus base images.
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. 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.
Kept the rest of the build flow unchanged (ypkg build, artifact collection/upload)
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 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.
Kept the fix minimal and safe by guarding removal behind a package-presence check (eopkg li | grep ...) so it only applies when needed.
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.
Added explicit error handling around docker pull "$SOLUS_IMAGE" with a clearer remediation message telling users to override solus_image if pull fails.
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.
Added a conditional GHCR login step (docker/login-action@v3) that runs when the selected image is under ghcr.io/*, using ${{ github.actor }} and ${{ github.token }} before docker pull.

Left the existing build/pull flow intact after authentication, so behavior is unchanged except for fixing anonymous-pull denial cases.
2026-02-18 10:44:45 -07:00
deepend-tildeclub
10f6b4913e Merge pull request #63 from ZoiteChat/emoji
fixing replaced emoji menu
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.
Added a Help menu _Update entry with a dedicated zc-menu-update icon constant, so Windows builds can display an appropriate update icon in the Help menu.

    Extended icon mapping/fallback logic so emoji/update icons resolve correctly across stock/icon-name paths (zc-menu-emoji, zc-menu-update) including GTK2 stock fallback compatibility.

    Added zc-menu-emoji to the input entry fallback icon list so the emoji affordance has a deterministic built-in fallback when theme emoji icons are missing.

    Added new update and emoji icon assets in both SVG and PNG for light/dark variants, and registered the PNG resources in the gresource manifest for runtime loading.
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).
Updated the GResource manifest so all menu icons now come from data/icons/menu/{light,dark} PNG files and are embedded with to-pixdata preprocessing, ensuring the app uses one unified internal icon set across platforms.

    Generated and added PNG assets for both light and dark menu icon variants under data/icons/menu/ to back the new resource paths used by the GTK menu code.

    Fixed menu icon resource detection to fall back from PNG to SVG when probing zc-menu-* entries, so menu item icon lookup no longer fails just because one format is unavailable at runtime.

    Updated GTK menu icon loading to use gdk_pixbuf_new_from_resource (instead of ..._at_scale) and added explicit fallback order across variant/light and PNG/SVG resources, which addresses the “red no-entry square” missing-icon behavior you reported.

    Kept compatibility with your previous menu resource setup while making loading more resilient on Win32 and other environments where resource/pixbuf behavior differs.
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.
Updated the GTK2 channel list context-menu icon path to use the same helper, removing direct gtk_image_new_from_stock usage for menu icons.

    Updated the GTK2 spell-entry popup icon path to use gtkutil_image_new_from_stock, aligning it with the same menu icon set/mapping pipeline used elsewhere (data/icons/menu).
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.
Added a new icon-name→zc-menu-* mapping helper and wired it into gtkutil_image_new_from_stock() as a fallback path for GTK_ICON_SIZE_MENU, after the existing stock-name mapping.
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:
checking whether a matching zc-menu-* resource exists,

        preserving support for absolute file paths and <config>/... relative icon paths,

        mapping plain icon names (for example, copy) to zc-menu-copy when available.

    Updated menu_quick_item() to use the new resolver (menu_icon_widget_new) for all icon-bearing quick/popup menu entries, making icon rendering behavior consistent across platforms.
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.
Updated the GTK2 (!HAVE_GTK3) code path in gtkutil_image_new_from_stock to first try the bundled zc-menu-* SVG resource icons and only fall back to GTK stock icons if a bundled icon cannot be loaded.
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. 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.
Updated search controls in the main UI to use zc-menu-previous / zc-menu-next and to load through gtkutil_image_new_from_stock(...), so those menu-sized icons are rendered from the same data/icons/menu resources instead of theme-dependent icon names.

    Updated URL Grabber and Raw Log “Save As” icon constants to use zc-menu-save-as for consistency with the menu icon set.

    Added new menu SVGs (save-as, previous, next) in both light and dark variants, and registered all of them in the GResource manifest so they’re available cross-platform from the bundled resource system.
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.
Unified plugin manager action icons to use zc-menu-load-plugin, zc-menu-delete, and zc-menu-refresh across platforms.

Unified channel list action icons to only use the zc-menu-* icon names (join/copy/find/refresh/save), matching data/icons/menu usage.

Unified spell-entry menu action icons to only use zc-menu-add, zc-menu-remove, and zc-menu-spell-check.
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.
Standardized the main menu icon identifiers to the zc-menu-* set (the icon set backed by data/icons/menu) across builds, instead of splitting between custom IDs and GTK stock IDs.

    Updated create_icon_menu() to use the same stock-to-image helper for stock-backed menu entries, so all menu icons follow the same resolution logic.

    Added a non-GTK3 compatibility mapper that converts zc-menu-* icon IDs to GTK stock names before calling gtk_image_new_from_stock, keeping behavior consistent on older GTK platforms while still using the unified zc-menu-* identifiers in menu definitions.
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.
Unified main menubar icon creation to the same helper in create_icon_menu, removing the separate/duplicated icon-mapping and platform-specific loading logic from menu.c.
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.
Updated channel list popup menu icon creation to pass the original icon ID directly into the shared loader, so those menu items use the same icon pipeline and set as other menus (data/icons/menu).
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.
Updated menu construction paths to resolve both zc-menu-* and legacy gtk-* stock names through one custom mapping before loading icons from the bundled menu icon assets, with fallback to light theme assets and then theme icon names. This affects both quick/user menus and standard icon menu items.
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.
Updated GTK3 icon rendering paths in affected UI helpers to call gtkutil_image_new_from_stock(...), which is the path that resolves zc-menu-* resources correctly and consistently from data/icons/menu (instead of raw theme lookup).

Added new icons to the shared bundled menu icon set (light/dark) for copy, delete, add, remove, spell-check, and refresh, and registered them in the GResource manifest so they are always available at runtime.
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.
Updated menu_quick_item() so zc-menu-* icons now fall back to the light variant if the current theme variant is unavailable, which helps avoid missing icons.

    Added centralized zc-menu-* resource loading to gtkutil_image_new_from_stock() (theme-variant detection + light fallback), so menu/button icon rendering uses the same bundled source path consistently.
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).
Added the new network-list SVG icon in both light and dark variants under data/icons/menu, so it comes from the same icon set as the rest of the menu icons.

    Registered both new icon files in the compiled GResource manifest so they are available through the existing resource-loading path.
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.
Added GTK3 forward declarations for menu_icon_theme_variant() and menu_icon_image_from_data_icons() so menu_quick_item() can call those helpers before their later definitions in the file.

    Kept fallback behavior intact: if bundled icon loading fails, the code still falls back to icon-theme lookup by name.
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).
Split menu icon loading by platform:

        Windows: loads from installed share/icons/menu/<variant>/<icon>.svg.

        Non-Windows: loads from embedded GResource /icons/menu/<variant>/<icon>.svg.

    Removed the old per-icon fallback mapping for zc-menu-* (system icon substitutions), so menu icons stay consistent with the exact bundled icon set; non-zc-menu-* stock behavior remains unchanged.
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. 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.
Kept the custom resource/file loading path in place (resource SVG + installed file fallback), then layered the improved theme fallback selection after it so menu icons still resolve if resource decoding is unavailable.

Added emoji entry fallback logic: if GTK’s built-in show-emoji-icon leaves the secondary icon empty, the input box now picks the first available icon from a fallback list (face-smile-symbolic, face-smile, insert-emoticon-symbolic, insert-emoticon)
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.
Kept the custom resource/file loading path in place (resource SVG + installed file fallback), then layered the improved theme fallback selection after it so menu icons still resolve if resource decoding is unavailable.

    Added emoji entry fallback logic: if GTK’s built-in show-emoji-icon leaves the secondary icon empty, the input box now picks the first available icon from a fallback list (face-smile-symbolic, face-smile, insert-emoticon-symbolic, insert-emoticon).
2026-02-17 23:07:17 -07:00
e8ca0a1213 attempting to fix menu icon loading issues on the windows build. 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
2026-02-17 20:37:37 -07:00
5d4eec3b71 updated, fixed or replaced menu icons. 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.
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. 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.
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).
2026-02-17 15:23:03 -07:00
deepend-tildeclub
54de067a13 Merge pull request #61 from ZoiteChat/theme_updates
fixed some theming issues with Windows build aka dark mode etc.
fixed chat message lag when channel had large scrollback.
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.
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.
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. 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).
2026-02-17 13:24:42 -07:00
7fd8e5455d fixing zoitechat/hexchat theme usage. 2026-02-17 10:51:42 -07:00
deepend-tildeclub
e424d9325c Update Python plugin version to 2.18.0-pre1 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.
2026-02-16 20:41:27 -07:00
deepend-tildeclub
242f4a6dec Update fe-gtk.vcxproj with new configurations 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.
2026-02-16 20:26:45 -07:00
deepend-tildeclub
605ca4da04 Merge pull request #48 from ZoiteChat/gtk3-prep
gtk3/many minor fixes and updates.
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.
2026-02-16 19:33:50 -07:00
deepend-tildeclub
99b93d1b71 Merge pull request #60 from ZoiteChat/raw_bytes_keyboard_shortcut
Raw bytes keyboard shortcut
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.
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.
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.
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.
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.
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.
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. 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.
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.
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.
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.
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. 2026-02-16 13:53:54 -07:00
deepend-tildeclub
8ce3787429 Change changelog installation from changelog.txt to changelog.rst 2026-02-16 03:40:14 -07:00
deepend-tildeclub
c4c5964588 Create documentation directories for zoitechat packages
Add directories for documentation of various zoitechat packages.
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).
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.
2026-02-16 03:22:44 -07:00
deepend-tildeclub
ab21af908c Add GDK_SCROLL_MASK to event mask for widget 2026-02-16 03:12:57 -07:00
deepend-tildeclub
fffbe5228c Forward mouse wheel messages to hovered window
Handle mouse wheel messages by forwarding them to the hovered window.
2026-02-16 03:05:43 -07:00
deepend-tildeclub
87ec58f9d3 Fix component selection for Python in installer script 2026-02-16 02:52:46 -07:00
deepend-tildeclub
805baea90b Fix packing order in hex GUI window 2026-02-16 02:47:34 -07:00
deepend-tildeclub
91238d99ae Refactor plugingui_load to improve directory handling 2026-02-16 02:42:00 -07:00
deepend-tildeclub
d5561a21e3 Set hexpand and vexpand for scrolled window and tree view
Enable horizontal and vertical expansion for the scrolled window and tree view.
2026-02-16 02:20:25 -07:00
deepend-tildeclub
f78ae92419 Merge pull request #59 from ZoiteChat/master
sync with master
2026-02-16 02:17:16 -07:00
deepend-tildeclub
cbb233ad06 Fix packing order for GUI panes based on preferences 2026-02-16 02:01:21 -07:00
deepend-tildeclub
07571330ba Remove redundant gtk_paned_pack calls in maingui.c 2026-02-16 02:00:45 -07:00
deepend-tildeclub
0e48187238 Fix packing order for GUI panes based on preferences 2026-02-16 01:59:53 -07:00
deepend-tildeclub
e32574ed9b Enable column expansion in chanview tree 2026-02-16 01:50:23 -07:00
deepend-tildeclub
a41e8a0f5d Disable debug libraries in project properties 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. 2026-02-16 01:22:47 -07:00
deepend-tildeclub
f5a4d8f84b Enable Whole Program Optimization in project properties 2026-02-16 01:18:40 -07:00
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-tildeclub
2bfd96c9e0 Fix vsnprintf handling for MSVC compiler
Add handling for MSVC's vsnprintf behavior
2026-02-16 00:45:59 -07:00
deepend-tildeclub
c815a4629c Update python3.vcxproj with new configurations 2026-02-15 23:05:59 -07:00
deepend-tildeclub
41f140c971 Fix XML encoding issues in python3.vcxproj
Updated the Python plugin Visual Studio project to also undefine _DEBUG and Py_DEBUG (in both Release|Win32 and Release|x64), alongside the existing Py_REF_DEBUG and Py_TRACE_REFS, to avoid pulling in debug-only Python refcount symbols during linking.
2026-02-15 22:58:35 -07:00
deepend-tildeclub
89b0bc667b Update python3.vcxproj with UndefinePreprocessorDefinitions
Updated the Windows Python plugin project file to explicitly undefine Py_REF_DEBUG and Py_TRACE_REFS in both Release|Win32 and Release|x64 compile settings, preventing the build from pulling in CPython debug-refcount import symbols that are missing from normal Python import libraries.
2026-02-15 22:50:37 -07:00
deepend-tildeclub
d8cbab3bfc Modify python3.vcxproj with new preprocessor definitions
Updated the Python plugin Visual Studio project to define Py_NO_LINK_LIB in both Release|Win32 and Release|x64 configurations, so CPython headers won’t auto-link a debug import library like python314_d.lib.

Kept explicit linker input ("$(Python3Lib).lib") unchanged, so linking continues to use the configured Python library from project properties.
2026-02-15 22:40:12 -07:00
deepend-tildeclub
5a5daf153e Fix optimization settings in zoitechat.props 2026-02-15 22:33:01 -07:00
deepend-tildeclub
bf4782d3e1 Set wide handle for GTK3 horizontal paned widget 2026-02-15 22:31:45 -07:00
deepend-tildeclub
4ba03065bc Enable debug libraries and disable optimizations 2026-02-15 22:24:35 -07:00
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
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
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
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
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
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
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
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
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
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-tildeclub
64909893e7 Add additional DLLs to installer configuration 2026-02-15 14:19:00 -07:00
deepend-tildeclub
815f1c810e Add additional DLL dependencies to copy.vcxproj 2026-02-15 14:18:26 -07:00
deepend-tildeclub
1f031d8966 Add new DLLs and remove conditional helper sources 2026-02-15 10:18:20 -07:00
deepend-tildeclub
2a4aa2f8ac Fix Lua file path in installer script 2026-02-15 10:06:02 -07:00
deepend-tildeclub
d646607066 Update Lua file paths in installer script 2026-02-15 10:02:01 -07:00
deepend-tildeclub
c37b45308e Update Lua LGI DLL source path in installer script 2026-02-15 09:57:49 -07:00
deepend-tildeclub
2cec6a6778 Update library sources in installer script
Removed conditional compilation for x64 libraries and updated to use newer versions of libcrypto and libssl.
2026-02-15 09:52:40 -07:00
deepend-tildeclub
a4c635ee52 Rename fontconfig.dll to fontconfig-1.dll 2026-02-15 09:48:52 -07:00
deepend-tildeclub
4fc859d9ef Fix fontconfig DLL source name in installer script 2026-02-15 09:48:38 -07:00
deepend-tildeclub
f945e3c292 Update fontconfig.dll to fontconfig-1.dll 2026-02-15 09:48:15 -07:00
deepend-tildeclub
37d8126128 Update freetype.dll to freetype-6.dll in installer 2026-02-15 09:45:11 -07:00
deepend-tildeclub
86ab733de0 Add skipifsourcedoesntexist flag to theme source 2026-02-15 09:41:03 -07:00
deepend-tildeclub
95d87732c4 Implement fallback procedures for Inno Download Plugin
Added no-op procedures for Inno Download Plugin fallback.
2026-02-15 09:34:30 -07:00
deepend-tildeclub
8338e701b4 Clean up installer script by removing unused code
Removed Inno Download Plugin fallback procedures.
2026-02-15 09:33:46 -07:00
deepend-tildeclub
a384b8e295 Implement fallback procedures for Inno Download Plugin
Added no-op fallback procedures for Inno Download Plugin.
2026-02-15 09:32:34 -07:00
deepend-tildeclub
019f591627 Update installer.vcxproj with new configurations 2026-02-15 09:24:18 -07:00
deepend-tildeclub
8cbfb29a49 Modify installer project file for Inno Setup paths
Updated the installer project file to include checks for Inno Setup executable paths and added a directory creation command for the output path.
2026-02-15 09:14:24 -07:00
deepend-tildeclub
12470fd954 Update zoitechat.props for x64 platform support 2026-02-14 23:47:41 -07:00
deepend-tildeclub
fd9cd61991 Simplify build matrix for Windows workflow 2026-02-14 23:43:06 -07:00
deepend-tildeclub
4a40af7eda Update Inno Setup paths to version 6 2026-02-14 23:34:51 -07:00
deepend-tildeclub
58eed1682c Change Inno Setup path to version 6
Updated Inno Setup path from version 5 to 6.
2026-02-14 23:34:03 -07:00
deepend-tildeclub
481e7f78bc Update Inno Setup version in Windows build workflow 2026-02-14 23:33:29 -07:00
deepend-tildeclub
34de343fa6 Update installer.vcxproj with new XML structure 2026-02-14 23:23:46 -07:00
deepend-tildeclub
1c4fd1d02d Add ISCC path for pre-build event
Added ISCC path configuration for Inno Setup.
2026-02-14 23:18:26 -07:00
deepend-tildeclub
4c3b8cbec7 Remove Inno Setup 6 ISCC.exe path conditions
Removed conditions for Inno Setup 6 ISCC.exe paths.
2026-02-14 23:04:50 -07:00
deepend-tildeclub
727d08519a Update IsccPath conditions for Inno Setup versions 2026-02-14 23:00:02 -07:00
deepend-tildeclub
bb796bb364 Update installer.vcxproj.filters for resource files 2026-02-14 22:58:36 -07:00
deepend-tildeclub
b413762457 Update installer.vcxproj for new file inclusion 2026-02-14 22:58:15 -07:00
deepend-tildeclub
45ef0fcd26 Update artifact handling in Windows build workflow 2026-02-14 22:47:42 -07:00
deepend-tildeclub
eaef68f827 Fix artifact paths in Windows build workflow 2026-02-14 22:39:06 -07:00
deepend-tildeclub
5c4b04615d Update OwnFlags and add Lua and Python conditions 2026-02-14 22:27:30 -07:00
deepend-tildeclub
b77690d046 Refactor zoitechat.props configuration for clarity 2026-02-14 22:27:00 -07:00
deepend-tildeclub
49c97108e5 Update zoitechat.props for dependency paths and flags 2026-02-14 22:26:00 -07:00
deepend-tildeclub
14e15fa79d Add conditional library references for GTK3 and others 2026-02-14 22:22:34 -07:00
deepend-tildeclub
fc3e36e255 Refactor dependency paths in zoitechat.props 2026-02-14 22:20:34 -07:00
deepend-tildeclub
3bbce082de Merge branch 'master' into gtk3-prep 2026-02-14 22:14:01 -07:00
deepend-tildeclub
de7807bc6a Fix XML formatting in installer.vcxproj 2026-02-14 22:12:58 -07:00
deepend-tildeclub
45b9de5ff6 Update installer.vcxproj with new XML structure 2026-02-14 22:12:36 -07:00
deepend-tildeclub
63808bebde Fix XML formatting in installer.vcxproj 2026-02-14 22:11:23 -07:00
deepend-tildeclub
4927413bcb Change plugin and language descriptions to custom 2026-02-14 21:55:15 -07:00
deepend-tildeclub
c3c814b28d Modify installer project file for pre-build event
Updated pre-build event command to include ISCC path.
2026-02-14 21:37:13 -07:00
deepend-tildeclub
e0d22f7f6a Update GTK3 download URL in windows-build.yml 2026-02-14 21:32:01 -07:00
deepend-tildeclub
2a24686f29 Update Windows build workflow for GTK dependencies 2026-02-14 21:28:41 -07:00
deepend-tildeclub
be97bc30e3 Update perl.vcxproj to new XML format 2026-02-14 21:18:46 -07:00
deepend-tildeclub
c23d1d493f Fix XML formatting issues in python3.vcxproj 2026-02-14 21:17:28 -07:00
deepend-tildeclub
74934de4b8 Refactor lua.vcxproj to remove LuaEnabled condition 2026-02-14 21:04:24 -07:00
deepend-tildeclub
6efe62e277 Add error checks for Lua dependencies in props file 2026-02-14 20:56:46 -07:00
deepend-tildeclub
ae2757c515 Add Lua runtime and share directory conditions 2026-02-14 20:55:48 -07:00
deepend-tildeclub
c55b46e67f Remove hcpython3.dll check from Windows build workflow 2026-02-14 20:48:26 -07:00
deepend-tildeclub
15eae4f606 Refactor Python directory setup in Windows build 2026-02-14 20:43:02 -07:00
deepend-tildeclub
a1b339eecf Update Windows build workflow to exclude hcperl.dll
Removed 'hcperl.dll' from the plugin verification process in the Windows build workflow.
2026-02-14 20:17:57 -07:00
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
173d10f336 revert: back to 874ea99 2026-02-14 17:40:42 -07:00
deepend-tildeclub
14b08d1001 Update .gitattributes for binary file types 2026-02-14 17:27:31 -07:00
deepend-tildeclub
b52a2ca4cf Update YourGendefPath to point to gtk-build 2026-02-14 17:21:38 -07:00
b512c215a4 chore: enforce line endings via gitattributes 2026-02-14 17:05:04 -07:00
3e2268b391 chore: normalize line endings 2026-02-14 17:02:11 -07:00
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-tildeclub
20b0aab470 Modify pre-build event for locale directory handling
Updated pre-build event command to check for existence before removing the locale directory.
2026-02-14 14:23:53 -07:00
deepend-tildeclub
4c3e9ffad4 Add Lua dependency installation and validation steps 2026-02-14 14:05:17 -07:00
deepend-tildeclub
a8db164ef7 Change plugin and language types to normal custom 2026-02-14 13:25:05 -07:00
deepend-tildeclub
f5feb7a0de Update Windows build workflow for GTK3 Gvsbuild
Refactor GTK3 Gvsbuild download and extraction logic based on architecture.
2026-02-14 13:14:24 -07:00
deepend-tildeclub
fdd3664a6e Update zoitechat.props with new XML structure 2026-02-14 12:51:52 -07:00
deepend-tildeclub
9fdc5cdf28 Update Lua plugin build message for clarity 2026-02-14 12:50:35 -07:00
deepend-tildeclub
e9cf931714 Fix XML formatting in zoitechat.props 2026-02-14 12:16:41 -07:00
deepend-tildeclub
9b2cf3de43 Update copy.vcxproj with new XML structure 2026-02-14 12:10:10 -07:00
deepend-tildeclub
7f9920554e Update typelib source path from girepository-2.0 to 1.0 2026-02-14 11:55:20 -07:00
deepend-tildeclub
0e3322d4a8 Update download link for GTK3 Gvsbuild archive 2026-02-14 11:49:41 -07:00
deepend-tildeclub
3a5fc95725 Update GTK download link and extraction path 2026-02-14 09:42:03 -07:00
deepend-tildeclub
b7496a4732 Implement error handling for GTK extraction
Added error handling for gtk.7z extraction failure.
2026-02-14 02:58:17 -07:00
deepend-tildeclub
6fd191f32d Rename girepository-2.0.dll to girepository-2.0-0.dll 2026-02-14 02:31:35 -07:00
deepend-tildeclub
eba86758f2 Update copy.vcxproj with new XML structure 2026-02-14 02:27:44 -07:00
deepend-tildeclub
7fa5e6db3c Update copy.vcxproj with new XML structure 2026-02-14 02:21:57 -07:00
deepend-tildeclub
f678491eb3 Fix XML formatting in copy.vcxproj 2026-02-14 02:21:03 -07:00
deepend-tildeclub
b1f3bf85c4 Update copy.vcxproj with new XML structure 2026-02-14 02:20:26 -07:00
deepend-tildeclub
0117092f83 Update girepository DLL and typelib references 2026-02-14 02:15:37 -07:00
deepend-tildeclub
8ea9bffba2 Refactor zoitechat.props for dependency paths and validation
Updated the XML structure and paths in zoitechat.props to ensure correct dependency resolution and build environment validation.
2026-02-14 02:08:48 -07:00
deepend-tildeclub
12d805fad4 Add Inno Setup compiler path detection in workflow 2026-02-14 02:08:12 -07:00
deepend-tildeclub
2742b62ef1 Update zoitechat.props for dependency paths 2026-02-14 01:58:53 -07:00
deepend-tildeclub
0872d3b445 Fix XML formatting in installer.vcxproj 2026-02-14 01:55:01 -07:00
deepend-tildeclub
e654bfd127 Update zoitechat.props with new configuration 2026-02-14 01:54:11 -07:00
deepend-tildeclub
6f493ed47e Update zoitechat.props with new property definitions 2026-02-14 01:47:51 -07:00
deepend-tildeclub
2028a21d14 Update Visual Studio path in Windows build workflow 2026-02-14 01:41:21 -07:00
deepend-tildeclub
08d0b25619 Update Windows build runner to use 2022 version 2026-02-14 01:36:46 -07:00
deepend-tildeclub
eba4edf7a7 Merge branch 'master' into gtk3-prep 2026-02-14 01:35:34 -07:00
deepend-tildeclub
f8e1536336 Change toolset to v142 and update dependencies
Updated project file to use v142 toolset and modified dependencies.
2026-02-14 01:32:39 -07:00
deepend-tildeclub
8b90555511 Change PlatformToolset from v143 to v142 2026-02-14 01:32:00 -07:00
deepend-tildeclub
f32b8534a4 Change PlatformToolset from v143 to v142 2026-02-14 01:31:14 -07:00
deepend-tildeclub
26453a8ad4 Update print statement from 'Hello' to 'Goodbye' 2026-02-14 01:30:39 -07:00
deepend-tildeclub
98f1e8af57 Update print statement from 'Hello' to 'Goodbye' 2026-02-14 01:29:09 -07:00
deepend-tildeclub
ce597da1a3 Upgrade PlatformToolset from v142 to v143 2026-02-14 01:28:39 -07:00
deepend-tildeclub
dba80a5a9e Upgrade PlatformToolset from v142 to v143 2026-02-14 01:28:08 -07:00
deepend-tildeclub
3c94112aeb Upgrade project to use v143 toolset
Updated project file to use v143 toolset and adjusted configurations.
2026-02-14 01:27:37 -07:00
deepend-tildeclub
855b892b1e Update fmt.Println message from 'Hello' to 'Goodbye' 2026-02-14 01:25:25 -07:00
deepend-tildeclub
22b74dc70b Upgrade PlatformToolset from v142 to v143 2026-02-14 01:24:53 -07:00
deepend-tildeclub
014ba9e868 Upgrade PlatformToolset from v142 to v143 2026-02-14 01:24:25 -07:00
deepend-tildeclub
11f3beae8b Upgrade project to use v143 toolset
Updated project file to use v143 toolset and modified dependencies.
2026-02-14 01:23:43 -07:00
deepend-tildeclub
ac1065bfa6 Change Windows build runner from 2022 to 2019 2026-02-14 01:17:43 -07:00
deepend-tildeclub
84501d087c Simplify Visual Studio setup in Windows build workflow 2026-02-14 01:14:30 -07:00
deepend-tildeclub
60f2b53866 Enhance Visual Studio setup in Windows build workflow 2026-02-14 01:10:05 -07:00
deepend-tildeclub
c9e8d24e06 Change build environment to Windows 2022
Updated the Windows build workflow to use Visual Studio 2022.
2026-02-14 01:01:25 -07:00
deepend-tildeclub
2436c3bad1 Update installer.vcxproj XML structure 2026-02-14 00:53:47 -07:00
deepend-tildeclub
32358a876b Update zoitechat.props for dependency paths 2026-02-14 00:49:32 -07:00
deepend-tildeclub
a05c596e48 Update print statement from 'Hello' to 'Goodbye' 2026-02-13 22:08:09 -07:00
b2d8336dd0 changes to innosetup version / path. changed to precompiled gtk3 binaries. 2026-02-13 21:49:58 -07:00
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
2dd2d18ade removed extra character 2026-02-13 20:47:03 -07:00
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
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
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-tildeclub
09e9e7314b Update dependency paths and Inno Setup version 2026-02-13 20:19:47 -07:00
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
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
c86701ee3c fix extra character on line 47 2026-02-13 19:59:25 -07:00
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
f734f230fd fix path for girepository dll 2026-02-13 19:47:45 -07:00
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
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
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-tildeclub
7df778fc71 Merge pull request #45 from ZoiteChat/c17
C17
2026-02-12 22:24:04 -07:00
e855b9f160 Added Ctrl+Alt+S (<Primary><Alt>s) to the default keyboard shortcut list in fkeys.c and mapped it to Insert in Buffer with D1:\036 (strikethrough control code), so strikethrough is available by default via that shortcut. 2026-02-12 15:19:22 -07:00
54428e9e40 Added a shared escape decoder for keybinding Data fields so key actions can interpret \n, \r, \t, \\, and hex-byte escapes like \x1e (raw byte insertion), with graceful fallback for invalid/unknown escapes. This is what enables entering strikethrough control byte 0x1E via keybindings (e.g., Data 1: \x1e).
Updated Run Command to use the shared decoder instead of its previous newline-only parser, so it now supports the same escape set consistently.
Updated Insert in Buffer to decode escapes before insertion, so \xNN inserts raw bytes rather than literal text.
Updated key action help text to document the supported escape syntax for both Run Command and Insert in Buffer.
2026-02-12 14:34:38 -07:00
deepend-tildeclub
a975ddc80a Merge pull request #57 from ZoiteChat/master
merge master changes into C17.
2026-02-12 14:27:21 -07:00
deepend-tildeclub
b128a7ca59 Merge pull request #56 from ZoiteChat/master
merge master changes into gtk3-prep
2026-02-12 14:26:11 -07:00
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
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
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
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-tildeclub
e77aca2037 Fix hicolor icon theme package name in build script 2026-02-05 22:31:36 -07:00
deepend-tildeclub
981cf94719 Add luajit and gstreamer to build process 2026-02-05 22:14:47 -07:00
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-tildeclub
8cf9f8ba9d Change SourceDir from '..\release' to '..\rel' 2026-02-05 16:51:43 -07:00
deepend-tildeclub
1eb61cfd24 Update dependencies in openbsd-build.yml
Removed 'libappindicator' from the list of dependencies.
2026-02-05 15:38:02 -07:00
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
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
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-tildeclub
a53ac4479b Modify GTK3 status icon definitions for Windows
Updated conditional compilation for GTK3 on Windows to exclude appindicator backend.
2026-02-05 14:55:37 -07:00
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-tildeclub
eafc9ec997 Update gio-2.0 and GLIB version requirements 2026-02-05 12:01:49 -07:00
deepend-tildeclub
9a8b3fc232 Update gio-2.0 dependency version requirement 2026-02-05 11:56:31 -07:00
deepend-tildeclub
fda50f0ff3 Update Meson version requirements and dependencies 2026-02-05 11:54:10 -07:00
deepend-tildeclub
65411b8ccb Update gio-2.0 and GLib version requirements 2026-02-05 11:53:17 -07:00
deepend-tildeclub
5c7991e873 Update gio-2.0 and GLib version requirements 2026-02-05 11:51:03 -07:00
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-tildeclub
f80c3adfe0 Update SourceDir from 'rel' to 'release' 2026-02-05 11:20:29 -07:00
deepend-tildeclub
1c8db65b20 Change SourceDir path in installer script 2026-02-05 11:20:06 -07:00
deepend-tildeclub
1e21f2b148 Update SourceDir from 'rel' to 'release' 2026-02-05 11:19:02 -07:00
deepend-tildeclub
629f0d6502 Add libappindicator to OpenBSD build dependencies 2026-02-05 10:24:04 -07:00
deepend-tildeclub
b69edb7936 Update GTK version in OpenBSD build workflow 2026-02-05 10:04:20 -07:00
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
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
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
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
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
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
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
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-tildeclub
d8985e9f91 Refactor copy.vcxproj for improved XML structure
Updated XML formatting and adjusted file includes for dependencies.
2026-02-04 23:38:03 -07:00
deepend-tildeclub
4a70ae125d Update DLL source patterns in installer script 2026-02-04 23:36:29 -07:00
deepend-tildeclub
0b785c8e59 Add enchant library to Windows build process 2026-02-04 23:29:05 -07:00
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
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
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-tildeclub
07322293f3 Update zoitechat.props with new configuration 2026-02-04 18:16:59 -07:00
deepend-tildeclub
3efd975d2f Update DLL sources for GTK 3 in installer script 2026-02-04 18:08:52 -07:00
deepend-tildeclub
c9ddfc086c Migrate project from GTK 2 to GTK 3
Updated project file to include GTK 3 dependencies and configurations.
2026-02-04 17:45:39 -07:00
deepend-tildeclub
fb952dd209 Add GTK version check in fe-gtk.h
Added a fallback in the GTK frontend header to derive HAVE_GTK3 from GTK_MAJOR_VERSION when the macro is missing, so Windows GTK3 builds don’t compile GTK2-only code paths by mistake.
2026-02-04 15:34:24 -07:00
deepend-tildeclub
572e2173c3 Merge pull request #54 from ZoiteChat/master
sync with master
2026-02-04 14:46:48 -07:00
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
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
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-tildeclub
0fd51e5c8a Modify zoitechat.props for Gtk3 support and dependencies
Updated project properties to include Gtk3 definitions and improved dependency handling.
2026-02-04 12:46:32 -07:00
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
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
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
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
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-tildeclub
1ac688ec19 Update zoitechat.props with new dependencies and settings 2026-02-04 11:41:47 -07:00
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
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-tildeclub
1567062636 Update zoitechat.props with new project settings 2026-02-04 10:53:20 -07:00
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
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-tildeclub
b90a9a3357 Update zoitechat.props with new XML structure 2026-02-04 10:15:23 -07:00
deepend-tildeclub
fe4abe7d85 Fix formatting and update artifact upload settings 2026-02-04 09:31:40 -07:00
deepend-tildeclub
a650916105 Fix XML formatting in zoitechat.props 2026-02-04 09:14:32 -07:00
deepend-tildeclub
4f294f4eae Add libxml2 to gvsbuild command in workflow 2026-02-04 08:16:44 -07:00
deepend-tildeclub
3ad525533d Update Windows build workflow to exclude Lua steps
Removed Lua build and extraction steps from the workflow.
2026-02-04 00:08:58 -07:00
deepend-tildeclub
6979dce7e8 Merge pull request #53 from ZoiteChat/master
sync to master
2026-02-03 22:10:53 -07:00
deepend-tildeclub
6f1f82a7fb Delete .github/workflows/msys-build.yml 2026-02-03 22:10:35 -07:00
deepend-tildeclub
3290f15439 Remove MSYS2 Build badge from README
Removed MSYS2 build badge from the README.
2026-02-03 22:06:42 -07:00
deepend-tildeclub
0a737c4d72 Delete .github/workflows/msys-build.yml 2026-02-03 22:05:48 -07:00
8025884e3b fix windows build lua dependency.
Add attempted Solus Build.
2026-02-03 22:00:51 -07:00
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
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
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-tildeclub
c4d4dd1e5a Update build command to include OpenSSL
Added OpenSSL to the build command for GTK3.
2026-02-03 13:46:39 -07:00
303d5cc581 preparation for upcoming release 2.17.4 2026-02-03 13:28:35 -07:00
deepend-tildeclub
6055170b19 Merge pull request #52 from ZoiteChat/codex/update-project-settings-for-gtk3-builds
Windows MSBuild: improve gvsbuild OpenSSL/Lua/zlib detection and include wiring
2026-02-03 13:22:43 -07:00
deepend-tildeclub
b30ee02353 Merge branch 'gtk3-prep' into codex/update-project-settings-for-gtk3-builds 2026-02-03 13:22:34 -07:00
deepend-tildeclub
8b22990eba Improve gvsbuild dependency detection 2026-02-03 13:20:25 -07:00
deepend-tildeclub
f402699512 Merge pull request #51 from ZoiteChat/codex/update-project-settings-for-gtk3-builds
Windows MSBuild: detect gvsbuild OpenSSL/Lua/zlib layouts
2026-02-03 13:00:11 -07:00
deepend-tildeclub
8606e505d1 Adjust Windows build paths for gvsbuild deps 2026-02-03 12:59:31 -07:00
deepend-tildeclub
eeee22c914 Merge pull request #50 from ZoiteChat/codex/update-build-configuration-for-gtk3
Update Windows gvsbuild dependency paths and library detection
2026-02-03 12:35:12 -07:00
deepend-tildeclub
0f4420b8c7 Update gvsbuild Windows deps settings 2026-02-03 12:34:22 -07:00
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
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
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
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-tildeclub
92a35ea3e9 Remove libayatana-appindicator from build dependencies 2026-02-03 11:38:49 -07:00
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
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-tildeclub
81a669a199 Merge pull request #49 from ZoiteChat/master
sync with master
2026-02-03 11:09:39 -07:00
ffa7afd09c adjustment for windows builds 2026-02-02 15:53:38 -07:00
deepend-tildeclub
dab682f90d Refactor Windows build workflow for GTK dependencies
Removed MSYS2 setup step and adjusted dependency installation for GTK build. Updated various paths and commands for consistency.
2026-02-02 12:30:44 -07:00
deepend-tildeclub
35740637df Update Windows build workflow for branch restrictions
Restrict push events to the master branch and remove unused functions for DLL aliasing and Enchant2 setup.
2026-02-02 00:23:49 -07:00
deepend-tildeclub
57fb1eb27b Update Windows build workflow for branch handling 2026-02-02 00:15:47 -07:00
deepend-tildeclub
069c6a3f81 Implement alias handling for DLLs and headers
Added functions to copy DLL and header aliases for Enchant2 and other libraries, ensuring they are present in the specified directories.
2026-02-02 00:06:24 -07:00
deepend-tildeclub
61da248c41 Add Ensure-LibJpeg function to manage JPEG library 2026-02-01 23:54:45 -07:00
deepend-tildeclub
0f36b273f1 Add Ensure-LibXml2 function for libxml2 management
Added Ensure-LibXml2 function to manage libxml2.lib generation from DLLs. This function checks for existing libraries, generates a new one if necessary, and creates compatibility aliases.
2026-02-01 23:46:04 -07:00
deepend-tildeclub
770922cdda Implement Ensure-Zlib function for zlib handling
Added Ensure-Zlib function to build and install zlib.lib if missing.
2026-02-01 23:36:15 -07:00
deepend-tildeclub
343ad0ffd5 Replace Ensure-LuaHeaders with Ensure-LuaJit function 2026-02-01 23:27:51 -07:00
deepend-tildeclub
e134a99e12 Update MSYS2 setup and enhance comments
Refactor MSYS2 setup and improve comments for clarity.
2026-02-01 23:04:16 -07:00
deepend-tildeclub
f8139d094a Change Lua dependency to Lua 5.1.5 in build script
Updated Lua dependency from LuaJIT to Lua 5.1.5 and modified related build steps.
2026-02-01 22:49:30 -07:00
deepend-tildeclub
1e8efcdc5a Refactor comments and add zlib legacy support
Updated comments for clarity and added zlib legacy name handling.
2026-02-01 22:39:34 -07:00
deepend-tildeclub
81abfe3175 Refactor Windows build workflow and clean up comments 2026-02-01 22:25:35 -07:00
deepend-tildeclub
cf2e44f3d5 Refactor Windows build workflow by removing MSYS2 setup
Removed MSYS2 setup and dependency installation steps for GTK build fallback. Updated Python version syntax and adjusted paths for dependencies.
2026-02-01 22:25:20 -07:00
deepend-tildeclub
049d3c19af Add MSYS2 setup and improve dependency installation
Added MSYS2 setup step for GTK build fallback and updated the installation process for dependencies. Enhanced error handling and ensured proper paths for GTK and Lua headers.
2026-02-01 22:24:25 -07:00
deepend-tildeclub
ffe8a9f7a6 Setup MSYS2 for GTK build fallback
Added MSYS2 setup step for GTK build fallback in GitHub Actions workflow.
2026-02-01 22:00:38 -07:00
deepend-tildeclub
2da635c048 Refactor GTK3 bundle extraction and handling 2026-02-01 21:29:24 -07:00
deepend-tildeclub
83ed374b99 Enhance GTK3 bundle handling in Windows build workflow
Updated PowerShell script to include new functions for GTK3 bundle handling and improved error handling. Adjusted the build process to ensure compatibility with legacy GTK bundles.
2026-02-01 20:39:34 -07:00
deepend-tildeclub
9837ef901b Add libayatana-appindicator to MSYS build dependencies 2026-02-01 19:46:04 -07:00
deepend-tildeclub
01e48bc074 Update Zoitechat JSON configuration
Removed unnecessary environment variable and socket arguments.
2026-02-01 19:33:16 -07:00
deepend-tildeclub
49c0299d68 Add environment variable for GDK backend options 2026-02-01 19:22:44 -07:00
deepend-tildeclub
4a8e17e80e Change Python dependency to false in Zoitechat config 2026-02-01 19:08:50 -07:00
deepend-tildeclub
8c8912c651 Change Python build option to specify interpreter 2026-02-01 18:59:57 -07:00
deepend-tildeclub
8be35d2a30 Refactor Windows build workflow for improved clarity 2026-02-01 18:51:09 -07:00
deepend-tildeclub
2a4612672a Refactor Windows build workflow and update steps 2026-02-01 18:35:44 -07:00
deepend-tildeclub
a98cb3606f Update zoitechat.props with Gtk3 support 2026-02-01 18:30:12 -07:00
deepend-tildeclub
20056cb9c4 Disable Perl support in Zoitechat build options 2026-02-01 18:12:03 -07:00
deepend-tildeclub
1e36865bb3 Refactor Windows build workflow for better dependency handling
Updated the Windows build workflow to improve dependency installation and streamline the build process.
2026-02-01 18:05:38 -07:00
deepend-tildeclub
306aef3ef9 Refactor glib-genmarshal handling and compatibility aliases 2026-02-01 17:47:56 -07:00
deepend-tildeclub
f5ebe3efc8 Enhance libxml2 compatibility handling in build script
Added compatibility checks and aliases for libxml2 library to ensure it exists regardless of naming variations.
2026-02-01 17:34:46 -07:00
deepend-tildeclub
2bbe9dccc6 Refactor Python wrapper creation in build script 2026-02-01 17:19:34 -07:00
deepend-tildeclub
2723d49b3a Refactor Python script execution in Windows build 2026-02-01 17:13:29 -07:00
deepend-tildeclub
87b9e52719 Improve GTK3 stack layout detection in workflow
Refactor GTK3 stack detection and fallback mechanism for Windows builds.
2026-02-01 17:12:24 -07:00
deepend-tildeclub
bfe13386c5 Enhance Windows build workflow and error handling
Updated the Windows build workflow to improve asset handling and extraction processes. Added error handling for GTKROOT and LuaJIT dependencies.
2026-02-01 17:06:40 -07:00
deepend-tildeclub
766299a15c Add Wayland dependencies to appimage build 2026-02-01 17:04:32 -07:00
deepend-tildeclub
fe30e00bc1 Add libayatana-appindicator module to Zoitechat 2026-02-01 16:58:38 -07:00
deepend-tildeclub
0dcc35df8f Update appimage-build.yml for SSL and Wayland support 2026-02-01 16:41:10 -07:00
deepend-tildeclub
7be145b94a Clarify OpenSSL trust store override and clean up code
Added a comment to clarify the purpose of the OpenSSL trust store override and removed unnecessary code related to GDK_BACKEND configuration.
2026-02-01 16:39:38 -07:00
deepend-tildeclub
e365266b4a Update OpenSSL trust store and GDK_BACKEND settings 2026-02-01 16:37:34 -07:00
deepend-tildeclub
e8f9ea0784 Enable GTK3 support in OpenBSD build workflow 2026-02-01 16:17:54 -07:00
deepend-tildeclub
76fdce8576 Remove gtk3 option from msys-build.yml
Remove gtk3 option from meson setup in CI workflow
2026-02-01 16:17:23 -07:00
deepend-tildeclub
72dfc10b1b Update Debian build dependencies in workflow
Added libayatana-appindicator3-dev to dependencies.
2026-02-01 16:16:48 -07:00
deepend-tildeclub
c472a4ccd6 Update dependencies in appimage-build.yml
Added libayatana-appindicator3-dev to dependencies.
2026-02-01 16:16:23 -07:00
deepend-tildeclub
74c09bdebc Enable Perl and Python support in Zoitechat build 2026-02-01 16:10:02 -07:00
56e1c402f6 gtk3 github actions fix 2026-02-01 16:04:16 -07:00
b1e7155c6d gtk3 github actions fixes 2026-02-01 16:01:48 -07:00
7dd47dbd2e Adjust for GTK3 github actions compile testing.
fixed gtk2 compiling.
2026-02-01 15:23:36 -07:00
e5673e9a7b fix compile errors with GTK3 and Wayland. Now compiles/Runs using GTK3+Wayland. 2026-02-01 14:04:56 -07:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
946a39c361 Updated the disabled drag-motion block to traverse parents with gtk_widget_get_parent() and use GTK3-safe paned child accessors while retaining legacy fields for non-GTK3 builds. 2026-01-31 11:36:47 -07:00
3710da43c9 Updated GTK3 menu item label/state handling and join dialog accessors while preserving GTK2 field access under !HAVE_GTK3 guards.
Switched GTK3 menu child list usage and menu reordering calculations to container-based APIs with list cleanup in GTK3 paths.
2026-01-31 11:31:35 -07:00
a9f8e1e897 Replaced legacy GTK type macro blocks with G_DECLARE_* declarations for GtkXText, CustomList, and SexySpellEntry, and aligned the GtkXText parent field naming across GTK2/GTK3 guards.
Updated RemoteObject to use G_DECLARE_FINAL_TYPE and the parent_instance field naming convention
2026-01-31 11:15:42 -07:00
9e46407e89 Replaced manual type macros with G_DECLARE_DERIVABLE_TYPE in GtkXText, CustomList, SexySpellEntry, and RemoteObject declarations while aligning parent instance naming.
Switched GtkXText and CustomList implementations to G_DEFINE_TYPE/G_DEFINE_TYPE_WITH_CODE and preserved parent chaining behavior
Added GTK3/GTK2 conditional type declarations for GtkXText while restoring the legacy macro block for GTK2 builds.
Restored GTK2-friendly typedefs/macros and parent field naming for CustomList alongside GTK3 G_DECLARE_DERIVABLE_TYPE usage.
Restored GTK2-friendly typedefs/macros and parent field naming for SexySpellEntry while keeping GTK3 declarations intact.
Restored legacy RemoteObject typedefs and GType macros in the D-Bus plugin to keep GTK2 builds from seeing incomplete types or missing fields/macros.
2026-01-31 10:45:22 -07:00
e1b4e18153 Updated the GTK3 tray icon types to use GIcon values, added themed/file icon creation helpers, and converted icons to names for AppIndicator usage while preserving GTK2 behavior unchanged.
Added GTK3 icon cache initialization/cleanup in the tray backend lifecycle to manage icon lifetimes safely.
2026-01-30 20:47:26 -07:00
01104844e8 Added a GTK3 AppIndicator tray backend with a unified tray interface while keeping the GtkStatusIcon backend for GTK2 builds.
Reworked tray menu population and tray initialization to use the backend abstraction and GTK3 menu refresh behavior.
Linked AppIndicator dependencies conditionally for GTK3 builds in Meson.
2026-01-30 20:07:36 -07:00
d1e1ef3a82 Documented the GTK3 tray backend choice and added GTK3-safe tooltip property handling with a title fallback while keeping GTK2 APIs gated behind build flags.
Guarded embedded notification handling by GTK version to avoid GTK2-only APIs on GTK3 builds.
2026-01-30 19:37:29 -07:00
907211a733 Unified tray tooltip handling so GTK3 uses the tooltip-text property while GTK2 keeps the legacy API behind guards, and wired fe_tray_set_tooltip to the shared helper.
Centralized embedded-state checks through a GTK3-safe helper in the tray notification callback, avoiding GTK2-only calls under GTK3.
2026-01-30 19:33:56 -07:00
dec2aff37d Added GTK3-specific helpers for tray tooltip updates and embedded checks with a safe fallback when the embedded property is unavailable.
Updated tooltip handling and tray restore detection to use GTK3 helpers while keeping GTK2-only APIs behind GTK2 guards.
2026-01-30 19:30:02 -07:00
4bd67e4933 Updated tray tooltip handling to use GTK3 tooltip-text property while keeping GTK2-only tooltip API calls behind #if !HAVE_GTK3.
Switched GTK3 embedded checks to use the embedded property instead of GTK2-only API calls, preserving the restore timer behavior.
2026-01-30 19:26:34 -07:00
328c85e6b3 Added a GTK2/GTK3-aware helper to compute tab viewport size based on orientation and reused it in sizing/scroll handlers to centralize logic. 2026-01-30 19:23:34 -07:00
c7b5ce0346 Wrapped horizontal paned creation in GTK3/GTK2 conditionals and use gtk_paned_new(GTK_ORIENTATION_HORIZONTAL) for GTK3 while preserving existing layout logic. 2026-01-30 19:02:51 -07:00
ca92d14db6 Updated make_sbutton() to use GTK3 symbolic pan icons (up/down/start/end) while retaining GTK2 arrow widgets and ensuring the created widget is added and shown on the button. 2026-01-30 19:00:01 -07:00
e0bae25136 Added a GTK3-specific vertical separator in the channel list while keeping the GTK2 separator for non-GTK3 builds, preserving packing and visibility behavior.
Updated the horizontal tab separator creation to use GTK3’s vertical separator API with a GTK2 fallback, keeping the same packing and show logic.
2026-01-30 18:56:29 -07:00
1b23b5b7a6 Added GTK3-friendly tray icon name definitions plus explicit tray icon state tracking and helpers for GTK2/GTK3 paths.
Reworked tray flashing/custom icon logic to use the new state instead of pixbuf pointer comparisons while preserving behavior across GTK versions.
Updated tray initialization and notification callbacks to use the GTK3 icon-name API with state-aware flashing for message/highlight events.
2026-01-30 18:47:23 -07:00
9bdbeffeb0 Updated the chanview API to use GTK3-safe font descriptions while keeping GTK2 style handling conditional in the header and implementation.
Guarded tree view palette application to use GTK3 font descriptions or GTK2 styles appropriately.
Adjusted the chanview creation call site to pass GTK3 font descriptions or GTK2 styles based on the build.
2026-01-30 18:39:49 -07:00
6c17f4bc16 Added the GTK3 InputStyle abstraction and updated input style/chanview declarations to avoid direct GtkStyle usage in GTK3 builds.
Updated input style initialization and kept GTK2-only RC parsing while applying GTK3 palette styling for the channel tree via CSS-aware paths.
2026-01-30 18:19:01 -07:00
d0d6a573a7 Added a GTK3-only icon loader that maps stock names to non-stock icon theme names and uses the icon theme to populate cached DCC pixbufs.
Guarded the GTK2 gtk_widget_render_icon() usage with #if !HAVE_GTK3 while keeping cached pix_up/pix_dn logic intact.
2026-01-30 18:09:31 -07:00
8c9f193114 Added GTK2/GTK3-conditional declarations and definitions for sexy_spell_entry_editable_init to match the appropriate editable interface type. 2026-01-30 18:06:11 -07:00
5bac77f6bb Wrapped the GTK2-only font selection helper functions in #if !HAVE_GTK3 guards while keeping the GTK3 font chooser response handler and GTK3 browse font path intact. 2026-01-30 18:03:29 -07:00
e815b1d6ae Updated the hscale callback to use GtkRange and simplified range value access to avoid GtkHScale usage.
Switched GTK3 hscale creation to gtk_scale_new_with_range while keeping GTK2 gtk_hscale_new_with_range under the non-GTK3 branch.
2026-01-30 17:52:14 -07:00
1406eec197 Updated server list UI to use GTK3 vertical button boxes and horizontal separators behind GTK3 guards while keeping GTK2 constructors under #if !HAVE_GTK3.
Swapped the vertical tab separator to GTK3’s horizontal separator under #if HAVE_GTK3, preserving the GTK2 constructor for non-GTK3 builds.
2026-01-30 17:48:25 -07:00
5e73127f9a Updated the main GUI scrollbar creation to use the GTK3 vertical scrollbar constructor while keeping the GTK2 call behind #if !HAVE_GTK3.
Split vertical paned widget creation in the main GUI and events dialog for GTK3 vs GTK2, ensuring GTK2 calls remain under #if !HAVE_GTK3.
2026-01-30 17:44:30 -07:00
541ee90d27 Updated mg_progressbar_update() to toggle GTK3 progress bar direction via gtk_progress_bar_set_inverted() while keeping GTK2 orientation enums behind #if !HAVE_GTK3, preserving the flip behavior each cycle for both builds. 2026-01-30 17:40:44 -07:00
d330d6d537 Updated emoji font fallback/primary application to use GTK3 style context fonts with gtk_widget_override_font, while keeping GTK2 style/modify calls behind #if !HAVE_GTK3.
Applied GTK3 font overrides for the user list font setting in setup_apply_to_sess, with GTK2 fallback preserved under #if !HAVE_GTK3
2026-01-30 17:28:09 -07:00
5b28ae17cf Added a GTK3 font chooser dialog flow that preloads the current font and handles responses via the dialog response signal.
Kept the GTK2 font selection dialog implementation under the non-GTK3 branch for existing behavior.
2026-01-30 17:21:49 -07:00
af2678a3a0 Updated the DCC transfer view and notify dialog to use GtkGrid with GTK3 spacing and attachment equivalents while keeping GTK2 table behavior intact.
Switched GTK3 layout helpers and table sections in the server list and setup UI to grid-based attachments and spacing for consistent GTK3 behavior.
2026-01-30 17:13:44 -07:00
3a8a9332d6 Added GTK3 button box creation branches with explicit layout settings across the fe-gtk dialogs while keeping GTK2-only gtk_hbutton_box_new() paths gated under !HAVE_GTK3. 2026-01-30 17:03:27 -07:00
2bce91de0b Updated GTK3 handling in setup_create_color_button to align the color button’s child widget without using GtkAlignment, while keeping the GTK2 alignment path intact. 2026-01-30 16:21:41 -07:00
7b3a9dd30f Mirrored GTK2 padding and alignment intent for the quit dialog checkbox and label in GTK3, including explicit expand/align settings and left-aligned text handling.
Wrapped GTK3 chanview attachment logic in braces for the POS_HIDDEN branch to keep conditional behavior correct.
2026-01-30 16:14:35 -07:00
1f7ed3f1cb Added GTK3 expand/alignment setup before attaching widgets in banlist, chanlist, DCC, and main window layouts to mirror legacy table options.
Introduced a servlist table-attach helper and applied it across servlist UI attachments to keep GTK_FILL/GTK_EXPAND confined to GTK2-only paths while setting GTK3 alignment/margins explicitly.
2026-01-30 16:04:50 -07:00
db3fd73d09 Updated chanlist icon buttons to use GTK3 icon names while keeping GTK2 stock image usage behind #if !HAVE_GTK3. 2026-01-30 15:40:02 -07:00
7d83394e35 Updated GTK3 dialog/button creation in gtkutil.c to use label strings with GTK2 stock fallbacks for file and input dialogs.
Added GTK3 icon-name macros and applied them to tab menu/search button icon usage in maingui.c, keeping GTK2 stock fallbacks intact.
Introduced GTK3 icon-name helpers and macro splits for server list buttons/connect controls in servlistgui.c.
Tightened GTK2/GTK3 icon macro separation in sexy-spell-entry.c.
2026-01-30 15:27:01 -07:00
f880dacdd7 Added GTK3 icon name macros with GTK2 stock fallbacks for spell menu actions so GTK2-only stock identifiers remain under #if !HAVE_GTK3.
Updated spell menu item creation to use the new icon macros for Add/Ignore/Suggestions entries.
2026-01-30 09:36:52 -07:00
b48376c370 Added per-file ICON_* macros with GTK3 icon-name mappings and GTK2 stock fallbacks across GTK UI modules like banlist, DCC, editlist, ignore, URL grabber, notify, text events, tray menu, chanview tabs, and join dialog UI.
Updated GTK helper usages to reference the new ICON_* (and label) macros so GTK3 builds no longer pass stock IDs to button/icon helpers or dialogs, including banlist buttons, DCC windows, rawlog actions, notify dialog/buttons, pevent dialog buttons, tray menu items, and join dialog image helper usage.
2026-01-30 09:23:52 -07:00
e0c1796035 Split GTK3/GTK2 button creation guards in the server list UI so stock button calls live under explicit #if !HAVE_GTK3 blocks while GTK3 uses icon-name images. 2026-01-30 09:04:26 -07:00
ffc9af18be Updated server list add/remove buttons in the edit dialog to use GTK3 mnemonic labels with icon-name images while keeping GTK2 stock fallbacks behind !HAVE_GTK3.
Updated network list add/remove/close buttons similarly with GTK3 icon-name images and GTK2 stock fallbacks guarded by !HAVE_GTK3.
2026-01-30 08:56:06 -07:00
7c2b94eee8 Split GTK3 icon creation and GTK2 stock usage into explicit conditional blocks for the quit dialog warning image and buttons, keeping GTK2-only calls contained under #if !HAVE_GTK3.
Applied the same explicit GTK3/GTK2 split for search bar close/previous/next button images to isolate GTK2 stock usage.
2026-01-30 08:52:42 -07:00
d5a8479294 Added GTK3 icon-name variants for the quit confirmation warning and action buttons while keeping GTK2 stock icon usage under #if !HAVE_GTK3.
Updated search UI button icons to use GTK3 icon names with GTK2 stock fallbacks.
2026-01-30 08:47:31 -07:00
29f614b7b7 Routed hscale and entry widget attachments through setup_table_attach to centralize GTK3 expand/alignment handling while preserving GTK2 behavior.
Updated the commented legacy label example to use the helper (removing the GTK_SHRINK reference).
Switched the sound settings table attachments to use setup_table_attach for consistent GTK3 alignment/expand behavior.
2026-01-30 08:36:01 -07:00
98d813a00b Added a GTK3-aware table attachment helper that maps alignment, expansion, and margins while preserving GTK2 attach options behind the non-GTK3 path.
Updated setup UI table attachments to use the helper for labels, toggles, entries, and color page widgets, replacing GTK_SHRINK usage with explicit alignment/expand settings.
2026-01-30 08:30:18 -07:00
a2b35c289c Updated the join dialog to use gtkutil stock helpers for the network image and OK button with an explicit label.
Clarified GTK2-specific stock widget handling with explicit #elif !HAVE_GTK3 guards in the helper implementations.
2026-01-30 08:21:55 -07:00
2d3e1f8122 Replaced GTK stock macro usage in setup dialog buttons with string IDs passed through gtkutil_button_new_from_stock, keeping GTK2/GTK3 handling in the helper path. 2026-01-30 08:00:08 -07:00
537167cd61 Added gtkutil helpers to create stock-based images and buttons while keeping GTK3 icon-name mapping centralized in gtkutil.c.
Exposed the new gtkutil stock helper APIs in the header for reuse.
Swapped setup dialog stock button creation to the new gtkutil_button_new_from_stock helper (including the sound play button fallback).
2026-01-30 07:53:50 -07:00
004786655c Updated GTK3 adjustment assignment to use floating-safe GObject ref handling while preserving GTK2 behavior in the existing path. 2026-01-30 07:43:34 -07:00
1ee2433b28 Cached adjustment value and page size in gtk_xtext_render_page and reused them for start line, pixel offset, page size check, and scroll position calculations to ensure accessor usage for GTK3. 2026-01-30 07:39:09 -07:00
eb7a15dc9d Centralized buffer adjustment updates to use xtext_adjustment_apply when switching buffers, reducing repeated adjustment mutations while preserving existing behavior. 2026-01-30 07:35:18 -07:00
5f8dcd286e Added the xtext_adjustment_apply helper to consolidate GTK2/GTK3 adjustment updates and direct field assignments.
Updated adjustment setup and GTK3 buffer refresh logic to use the new helper and keep page increment/signaling handling consistent.
2026-01-30 07:26:54 -07:00
4cfe5274b5 Updated GtkAdjustment helper guards to use explicit !HAVE_GTK3 branches for direct field access while keeping GTK3 accessors in the HAVE_GTK3 path. 2026-01-30 07:20:43 -07:00
f6613cbad1 Added GtkAdjustment helper accessors for value/upper/lower/page size/page increment to encapsulate GTK3 accessors and GTK2 struct fields.
Updated xtext adjustment logic to use the helpers in adjustment updates and rendering paths, eliminating direct field access in scroll/render flows.
2026-01-30 07:15:06 -07:00
3806b33aab Split GTK3 vs GTK2 setup in gtk_xtext_realize so GTK2-only parent window/colormap access is guarded under #if !HAVE_GTK3. 2026-01-30 06:57:14 -07:00
fa3c7c9059 Consolidated GTK3 realization setup to use parent window/visual and keep GTK2-only colormap/parent window under the GTK2 branch in gtk_xtext_realize. 2026-01-30 06:20:21 -07:00
c0c0b2ec4c Moved GTK2-only parent window and colormap handling into the GTK2 code path while keeping GTK3 setup relying on gtk_widget_get_parent_window and visual-only attributes in gtk_xtext_realize. 2026-01-29 23:06:21 -07:00
d553862e52 Guarded the GtkXText double-buffering toggle behind a GTK3 compile check and added a GTK3 render pipeline note in gtk_xtext_new 2026-01-29 23:01:02 -07:00
7cbd905fae Guarded GTK2-only GtkObjectClass declaration/assignment with explicit #if !HAVE_GTK3 checks in gtk_xtext_class_init. 2026-01-29 22:57:13 -07:00
49e23b7df5 Added a GTK3 finalize handler for GtkXText that chains to the parent class alongside the existing dispose cleanup path.
Registered the GTK3 finalize handler in gtk_xtext_class_init while keeping GTK2 destroy registration intact.
2026-01-29 22:49:13 -07:00
bf529ba1ff Guarded GTK2-only GtkObject includes in the xtext header for GTK2 builds only.
Added a shared cleanup helper plus GTK2 destroy/GTK3 dispose handlers with correct parent chaining for cleanup parity across GTK versions.
Updated class initialization to register GTK3 dispose or GTK2 destroy handlers with appropriate object class setup.
2026-01-29 22:44:54 -07:00
aa0b271aa9 Made GTK2 window access explicitly guarded in scroll/selection update code paths to keep GTK3 using gtk_widget_get_window.
Applied the same explicit GTK3/GTK2 window guards in render paths to keep direct GTK2 field access isolated.
2026-01-29 22:07:58 -07:00
1584764809 Consolidated gtk_xtext_size_allocate to use a guarded window pointer before resizing, preserving GTK3 gtk_widget_get_window and GTK2 direct access paths.
Aligned GTK3/GTK2 window selection blocks in scrolling/selection and render routines (including gtk_xtext_render_page) to use #else guards for GTK2 direct access.
2026-01-29 21:57:50 -07:00
31130197eb Routed window access in scroll/selection helpers through guarded GTK3 window lookups while retaining GTK2 field access under #if !HAVE_GTK3.
Consolidated window handling in layout, render, visibility, and buffer display paths to avoid direct GTK2 window fields in GTK3 builds.
2026-01-29 21:45:57 -07:00
723d8759ff Wrapped size allocation and window resize handling with explicit GTK3/GTK2 guards for allocation/window access while preserving GTK2 field usage under !HAVE_GTK3.
Applied explicit GTK3/GTK2 window access guards across render/scroll/buffer sizing paths, including gtk_xtext_render_page and gdk_window_get_width/height callsites.
2026-01-29 21:35:06 -07:00
667a56ca6c Added GTK3 window guard handling for scrolling/selection height calculations while keeping GTK2 direct window access for those paths.
Switched sizing/visibility calculations and buffer show sizing to use GTK3 window retrieval with GTK2 fallbacks in layout/rendering paths.
2026-01-29 21:21:40 -07:00
c009c30211 Updated size allocation and draw/paint paths to use GTK3 allocation accessors while preserving GTK2 direct field access under guards.
Switched render-page and input/cursor handling to use gtk_widget_get_window on GTK3 with guarded window usage, keeping GTK2 behavior intact.
2026-01-29 21:14:09 -07:00
deepend-tildeclub
b6094244ac Merge pull request #47 from ZoiteChat/c17
C17
2026-01-29 21:01:45 -07:00
deepend-tildeclub
2741c40580 Merge pull request #46 from ZoiteChat/master
sync to master
2026-01-29 21:00:38 -07:00
deepend-tildeclub
c90f3c659a Fix include directive for glib.h 2026-01-27 12:13:47 -07:00
e78251ee29 fix(win32): replace netdb.h with ws2tcpip.h for addrinfo APIs 2026-01-26 18:19:14 -07:00
b960f62d2a fix(fe-text): replace strdup with g_strdup for C17 builds 2026-01-26 18:12:49 -07:00
deepend-tildeclub
dc76c2ea37 Change C standard from C17 to c17 2026-01-26 18:08:01 -07:00
6e5149fbe6 add C17 to meson.build 2026-01-26 16:01:47 -07:00
4008d94571 fix(portability): replace POSIX-only string funcs and legacy hostent fields 2026-01-26 15:56:52 -07:00
deepend-tildeclub
4ad5df0370 Update documentation links in README 2026-01-26 14:15:31 -07:00
deepend-tildeclub
887d891541 Merge pull request #44 from ZoiteChat/glib-dependency-cleanup
Glib dependency cleanup + Makefile
2026-01-26 01:36:54 -07:00
041288cdad Removed the GLib dependency from the Windows 8 spellcheck provider by swapping in Windows/stdlib UTF-8/UTF-16 conversions and standard allocation/free routines. 2026-01-25 23:52:52 -07:00
c8ee118f00 Replaced GLib allocation helpers in history management with standard free/strdup to reduce unnecessary GLib coupling.
Updated the network helper API to use uint32_t and standard allocation/duplication routines, dropping the GLib include from the implementation and adding <stdint.h> to the header.
2026-01-25 23:37:09 -07:00
d4134c94b3 Swapped glib integer types in the sysinfo interface for standard stdint types to remove glib coupling in the header.
Replaced glib string/util usage in the win32 sysinfo backend with local helpers, a small string builder, and Windows UTF-8 conversion, removing the glib dependency there.
2026-01-25 23:32:33 -07:00
5ca3e835a7 Replaced GLib allocation helpers in history management with standard free/strdup to reduce unnecessary GLib coupling.
Updated the network helper API to use uint32_t and standard allocation/duplication routines, dropping the GLib include from the implementation and adding <stdint.h> to the header.
2026-01-25 23:00:20 -07:00
6c85c796d3 Merge branch 'master' of https://github.com/ZoiteChat/zoitechat
sync with master
2026-01-25 19:09:54 -07:00
992215ee91 Fix invalid call to g_io_channel_set_buffered 2026-01-25 19:09:17 -07:00
deepend-tildeclub
1729cfcb3f Merge pull request #43 from ZoiteChat/master
Merge pull request #42 from ZoiteChat/zoite-sts
2026-01-25 18:49:25 -07:00
deepend-tildeclub
4cf1b52982 Merge pull request #42 from ZoiteChat/zoite-sts
IRCv3 STS Specification Support.
2026-01-25 18:48:26 -07:00
1226224858 Merge branch 'zoite-sts' into gtk3-prep
IRCv3 STS Support
2026-01-25 18:31:03 -07:00
bc1d2e5f7a Updated STS upgrade handling to fall back to the current connection port when servers omit a port in the STS capability, enabling TLS upgrades for non-TLS connections in that case. 2026-01-25 18:26:20 -07:00
a0f0c48bc5 Added STS profile persistence and policy parsing/enforcement (including load/save, upgrades, and expiry rescheduling) to the STS module.
Integrated STS capability handling and connection lifecycle hooks (ignore CAP DEL, trigger upgrades, reschedule on disconnect, new server fields).
Initialized and cleaned up STS state during startup/shutdown to persist policies across sessions.
2026-01-25 17:20:53 -07:00
4d6c77704c Added STS profile data structures plus serialize/deserialize helpers for storing profile state in a compact string form.
Registered the new STS source file in the Meson and Visual Studio build definitions.
2026-01-25 16:51:43 -07:00
deepend-tildeclub
f3855583dd Merge pull request #41 from ZoiteChat/master
HEXCHAT -> ZOITECHAT
2026-01-25 16:15:37 -07:00
2b98ebc544 HEXCHAT -> ZOITECHAT 2026-01-25 16:13:47 -07:00
deepend-tildeclub
8b5358fbcc Merge pull request #40 from ZoiteChat/master
sync with master.
2026-01-25 16:09:41 -07:00
deepend-tildeclub
4ed7032fd5 Update lua.c
Allowed Lua scripts to be located by basename (script name only) when resolving /lua unload and related operations, while keeping path-based matching for explicit paths.
Ensured /lua load reports failures when script creation fails and added explicit failure feedback to the user.
Added unload feedback that distinguishes immediate unloads from deferred unloads, so users see confirmation right away.
2026-01-25 16:02:58 -07:00
d4d2483161 Updated the GTK3 adjustment update path in gtk_xtext_buffer_show to explicitly set adjustment bounds/page sizing and emit value-changed, while keeping GTK2 behavior unchanged. 2026-01-25 15:16:37 -07:00
deepend-tildeclub
4e01192979 Add badge references to README
Added badge references for GitHub version, downloads, size, last commit, and contributors.
2026-01-25 14:52:49 -07:00
deepend-tildeclub
2127820ae0 Enhance README with build badges and links
Updated README to include build badges and documentation link.
2026-01-25 14:47:08 -07:00
361308962e Routed GTK3 render-time adjustment updates through gtk_xtext_adjustment_set to apply setter updates and emit value-changed, while keeping the GTK2 path on gtk_adjustment_changed 2026-01-25 13:58:11 -07:00
e0c8409971 Updated GTK3 adjustment updates in gtk_xtext_adjustment_set to use GtkAdjustment setters and gtk_adjustment_value_changed, preserving the GTK2 path with gtk_adjustment_changed.
Adjusted GTK3 buffer-show scroll value updates and change signaling to rely on adjustment accessors while keeping the GTK2 flow intact.
2026-01-25 13:07:55 -07:00
6f31e33094 Refactored gtkutil_icon_name_from_stock() to use a lookup table with explicit GTK stock icon aliases (including GTK3 mappings) while keeping the stock-name fallback intact.
Spot-checked GTK stock icon usage in chanlist.c, menu.c, and sexy-spell-entry.c to confirm expected GTK3 icon mapping coverage at the call sites you flagged.
2026-01-25 12:53:15 -07:00
bad5eab21c Expanded the GTK3 stock-to-themed icon mapping to cover additional stock IDs (add, yes/no, navigation, dialog error, media play, network, spell check) while keeping the stock fallback unchanged.
Spot-checked GTK3 callers in chanlist, menu, and spell-entry code paths that rely on stock icon mappings for menu items and spelling UI icons.
2026-01-25 12:29:00 -07:00
c9ec0527dd Avoided re-adding the same GTK3 palette CSS provider by tracking when the provider is first created before attaching it to the style context. 2026-01-25 12:19:44 -07:00
ac3ce1ceac Updated gtkutil_apply_palette declarations to use GTK-specific Gdk color types for GTK3 vs GTK2 builds.
Adjusted the gtkutil_apply_palette definition to match GTK3/GTK2 Gdk color signatures while preserving existing behavior.
2026-01-25 11:37:04 -07:00
6fffdba876 Merge branch 'gtk3-prep' of https://github.com/ZoiteChat/zoitechat into gtk3-prep 2026-01-25 11:32:06 -07:00
94789a9100 Added gtkutil_apply_palette declaration and implementation to apply palette colors/fonts via GTK3 CSS providers with GTK2 fallbacks preserved.
Switched channel tree and theme application logic to use the new palette helper.
Updated entry and user list styling to route palette/font application through the helper.
2026-01-25 11:30:21 -07:00
deepend-tildeclub
1475d02be0 Merge pull request #39 from ZoiteChat/master
Add 'standard-replies' to inbound.c
2026-01-25 11:16:51 -07:00
deepend-tildeclub
a40f53a1f3 Add 'standard-replies' to inbound.c
Add support for the standard-replies capability.
2026-01-25 11:09:31 -07:00
08d357dc98 Added explicit GTK3-only branches in gtk_xtext_unrealize() so gtk_widget_get_window() is used without GTK2 struct access leaking into the GTK3 path.
Split the GTK3 and GTK2 initialization paths in gtk_xtext_realize() so the GTK3 branch uses gtk_widget_get_allocation()/gtk_widget_get_parent_window() and the GTK2 branch keeps the direct struct access under #if !HAVE_GTK3.
2026-01-23 22:08:17 -07:00
0df299acf5 Updated gtk_xtext_unrealize() to use GTK3 accessors (gtk_widget_get_window(), gtk_widget_set_window(), and gtk_widget_set_realized()) while keeping the GTK2 struct access in the #if !HAVE_GTK3 branch.
Consolidated the GTK3 vs GTK2 branching in gtk_xtext_realize() so GTK3 uses gtk_widget_get_allocation(), gtk_widget_get_parent_window(), and gtk_widget_set_window(), with the existing GTK2 direct struct access preserved under #if !HAVE_GTK3.
2026-01-23 22:00:36 -07:00
00eb2de4c8 Split the GTK3 and GTK2 branches in gtk_xtext_unrealize() so GTK3 uses gtk_widget_get_window() while the GTK2 path remains under #if !HAVE_GTK3 with direct struct access.
Split the GTK3 and GTK2 branches in gtk_xtext_realize() so GTK3 uses gtk_widget_get_allocation(), gtk_widget_get_parent_window(), and gtk_widget_set_window(), while keeping the existing GTK2 struct access under #if !HAVE_GTK3.
2026-01-23 21:55:46 -07:00
f65f350965 Moved gtk_widget_set_realized() into the GTK3 branch and used GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED) for GTK2, keeping allocation/parent-window access split by #if HAVE_GTK3 2026-01-23 21:52:40 -07:00
1d32aed8dc Added a GTK3-specific branch in gtk_xtext_unrealize() that clears user data via gtk_widget_get_window() while preserving the GTK2 struct access under #if !HAVE_GTK3.
Updated gtk_xtext_realize() to use gtk_widget_get_allocation(), gtk_widget_get_parent_window(), and gtk_widget_set_window() on GTK3, and routed all subsequent window usage through the local window variable instead of direct struct access; the GTK2 path remains intact under #if !HAVE_GTK3.
Adjusted gtk_xtext_clear_background() to use gtk_widget_get_window() on GTK3 rather than widget->window.
2026-01-23 21:40:22 -07:00
ab3bdf219f Added #if HAVE_GTK3 / #elif !HAVE_GTK3 branches around gtk_hbox_new / gtk_vbox_new call sites in the GTK front-end, using gtk_box_new(GTK_ORIENTATION_*, spacing) for GTK3 while keeping the GTK2 constructors explicitly gated under !HAVE_GTK3.
Applied gtk_box_set_homogeneous() in GTK3 branches where the GTK2 code requested homogeneous layout (e.g., dialog hboxes).
Updated remaining helpers and setup/preferences UI box constructors (including the shared mg_box_new helper) to follow the same GTK3/GTK2 branching approach consistently across src/fe-gtk/
2026-01-23 21:28:32 -07:00
5b1a58195e Verified the requested #if HAVE_GTK3 / #if !HAVE_GTK3 alignment branches are already present across the noted src/fe-gtk/ files, then refined the GTK3 join dialog icon alignment by adding a small top margin to better approximate the legacy y = 0.06 alignment behavior.
Removed a lingering commented-out gtk_misc_set_alignment call in servlistgui.c so the remaining legacy alignment calls surfaced by search are all active and guarded.
2026-01-23 21:16:43 -07:00
7f5d92addb Searched the requested GTK alignment usages across src/fe-gtk/ and found the #if HAVE_GTK3 branches were already in place for the gtk_misc_set_alignment() call sites; the remaining gap was an implicit #else around gtk_alignment_new() in setup_create_spin, which I made explicit as #elif !HAVE_GTK3 while keeping the GTK3 halign/valign branch intact. 2026-01-23 21:09:21 -07:00
7a37918ec7 Replaced #else with #elif !HAVE_GTK3 anywhere the legacy alignment calls appear, so the GTK2/legacy path is now explicitly scoped to non-GTK3 builds while preserving the existing GTK3 halign/valign behavior across the requested files (maingui.c, chanlist.c, dccgui.c, joind.c, servlistgui.c).
Applied the same explicit !HAVE_GTK3 guard style in setup.c, including the gtk_alignment_* block and the padding/margin section you called out.
2026-01-23 20:34:48 -07:00
31e198f772 Added GTK3 halign/valign handling (and GTK3 label margins) across setup UI elements, including spin widgets, color buttons, sound labels, and page headers while keeping GTK2 fallbacks intact.
Applied GTK3 alignment updates to DCC detail labels in the DCC GUI.
Updated join dialog widgets to use GTK3 alignment calls for the image and labels, retaining legacy alignment for GTK2.
Added GTK3 alignment handling for server list dialogs and labels in the server list UI.
2026-01-23 20:18:49 -07:00
366039eb2b Adjusted GTK3 menu item icon-name fallbacks for quick items and stock icon menus in the menu helpers.
Updated channel list icon menu items to convert stock icon IDs to GTK3 icon names with a fallback path.
Added a GTK3 icon-name fallback for spell entry menu items when building the icon/label box layout.
2026-01-23 18:08:39 -07:00
fd83f3636d Consolidated the GTK3/GTK2 branching for icon menu items in menu_quick_item and create_icon_menu to use the GtkMenuItem + GtkBox path under GTK3 and GtkImageMenuItem under GTK2.
Unified the GTK3/GTK2 icon menu item construction branches in the channel list menu helper to match the GtkBox + GtkImage + GtkLabel pattern for GTK3 while preserving GTK2 behavior.
Aligned the spelling menu icon item helper with the same GTK3/GTK2 branching structure, keeping GTK2 GtkImageMenuItem intact.
2026-01-23 18:01:07 -07:00
c2e8507402 Guarded GTK3 chanlist menu item image creation on a non-null icon name before packing into the menu item box.
Updated GTK3 create_icon_menu to build menu items with explicit image/label composition using icon names or pixbufs before packing into the box.
Adjusted GTK3 spell entry icon menu item to create the image only when an icon name is available.
2026-01-23 17:35:01 -07:00
3923bd915c Updated GTK3 menu quick items to build a GtkMenuItem with a box, icon-name image, and mnemonic label before packing into the menu item.
Ensured chanlist GTK3 icon menu items always create images from icon names before packing with the mnemonic label.
Adjusted spell entry GTK3 icon menu items to create icon-name images for the boxed menu item layout.
2026-01-23 17:26:59 -07:00
d1163a4ee8 Updated create_icon_menu to build GTK3 menu items with a boxed image + mnemonic label and icon-name-based images. 2026-01-23 17:17:17 -07:00
5538e738a8 Expanded GTK3 icon-menu construction in menu.c to build menu items with a GtkBox, GtkImage, and mnemonic label when using icon names.
Updated channel list icon menu items to build GTK3 menu items with GtkBox/GtkImage/GtkLabel while preserving GTK2 GtkImageMenuItem paths.
Updated sexy spell entry icon menu items to build GTK3 menu items with GtkBox/GtkImage/GtkLabel while preserving GTK2 GtkImageMenuItem paths
2026-01-23 16:00:02 -07:00
b0a9f34dc4 Added GTK3 icon-name menu item helper and used it when building icon-based menu items in the main menu paths, while keeping the GtkImageMenuItem fallback for GTK2 intact.
Guarded GTK3 chanlist icon menu item creation to handle missing icon names safely while still creating the boxed menu layout.
Applied the same GTK3 icon-name guard for the sexy-spell-entry menu items while preserving GTK2 code paths.
2026-01-23 14:46:19 -07:00
65ca665e25 Added a GTK3 helper to build menu items with image + mnemonic label and reused it for icon menu item creation in the main menu helpers.
Added GTK3 helper builders for icon menu items in the channel list and spell entry menus, reusing them in the GTK3 branches while keeping GTK2 paths intact.
2026-01-23 14:33:11 -07:00
72b9560c32 Made the GTK3 vs GTK2 icon menu item paths explicit in menu_quick_item, keeping the GTK3 boxed menu item and guarding the GtkImageMenuItem path under #if !HAVE_GTK3.
Updated the chanlist icon menu item to keep the GTK2 GtkImageMenuItem logic under #if !HAVE_GTK3.
Updated the spelling menu icon item to keep the GTK2 GtkImageMenuItem logic under #if !HAVE_GTK3.
2026-01-23 14:18:37 -07:00
7694d4dd18 Restructured icon menu item creation in menu_quick_item to use explicit GTK3 GtkMenuItem + GtkBox + GtkImage/GtkLabel handling with a GTK2 GtkImageMenuItem fallback.
Added GTK3 image null checks and explicit GTK3/GTK2 branching for chanlist icon menu items.
Added GTK3 image null checks and explicit GTK3/GTK2 branching for sexy spell entry icon menu items.
2026-01-23 14:09:50 -07:00
853c16a9bc Updated create_icon_menu to build GTK3 icon menu items by packing an image and mnemonic label into a box while keeping GTK2 GtkImageMenuItem handling intact.
Expanded channel list icon menu items to handle GTK3 box-based layout and GTK2 image menu items in one helper, and used that helper for the context menu entries.
Unified sexy spell entry icon menu item creation across GTK versions, using stock IDs for both and centralizing the GTK3 box-based layout with GTK2 image menu items preserved.
2026-01-23 13:58:53 -07:00
905cc2f22e Added a GTK3 helper to build icon+label menu items for the channel list context menu entries.
Added a GTK3 helper for icon-name menu items and reused it when building stock icon menu entries.
Added a GTK3 helper for spelling-related menu items and reused it for add/ignore/suggestions entries.
2026-01-23 13:42:11 -07:00
edbe5c405c Updated GTK3 menu item creation in menu_quick_item and create_icon_menu to use GtkBox with GtkImage and GtkLabel while keeping GTK2 image menu items intact.
Reworked GTK3 channel list context menu items to use GtkBox-packed images and mnemonic labels, preserving GTK2 behavior under !HAVE_GTK3.
Added GTK3 menu item layouts for spell entry actions and suggestion menu with icon-name images and mnemonic labels, while retaining GTK2 image menu items.
2026-01-23 13:27:40 -07:00
07bd2d4c13 Split GTK entry icon updates into explicit HAVE_GTK3 and !HAVE_GTK3 guards in the server list callbacks to keep GTK3 icon-name usage separate from stock icons.
Applied the same explicit GTK3 vs non-GTK3 guard structure for search entry icon handling in the main GUI search flow
2026-01-23 13:16:45 -07:00
d57f66ef75 Updated server list entry icon handling to use GTK3 icon names with stock fallbacks for GTK2.
Switched main search entry error/clear icons to GTK3 icon-name API while preserving GTK2 stock icons.
2026-01-23 13:09:02 -07:00
19ecc6a284 Updated GTK3 entry icon handling in the server list UI to use icon names (and NULL clears) while keeping GTK2 stock calls under #if !HAVE_GTK3.
Updated GTK3 entry icon handling in the main search UI to use icon names (and NULL clears) while keeping GTK2 stock calls under #if !HAVE_GTK3.
2026-01-23 13:04:19 -07:00
2b6fc7dbe5 Added GTK3 icon-name handling around entry error icon updates in the server list UI while keeping stock icon calls for non-GTK3 builds.
Updated search UI entry icon handling to use GTK3 icon-name APIs with GTK2 fallbacks for stock icons.
2026-01-23 12:57:52 -07:00
8d76d94131 Added a GTK3-only helper to build button images from stock IDs via icon-name mapping, and refactored gtkutil_button to use it while keeping GTK2 stock handling intact.
Verified gtkutil_button(...) callers with rg -n "gtkutil_button\\s*\\(" src/fe-gtk.
2026-01-23 11:17:28 -07:00
246bcd06a2 Updated gtkutil_button() to build button images via GTK3 icon names (with stock mapping) and to skip image creation when no stock name is provided, while keeping GTK2 stock usage intact. 2026-01-23 10:52:17 -07:00
e4f1b20211 Added a helper to create button images from stock names using GTK3 icon mapping, and used it in gtkutil_button for consistent GTK2/GTK3 handling. 2026-01-23 10:48:01 -07:00
ef5d8c482a Extended the GTK3 stock-to-icon mapping to cover apply/remove so GTK stock buttons continue to map to themed icon names in GTK3 builds. 2026-01-23 10:41:18 -07:00
c346055b42 Added a shared GTK3 stock-to-icon-name helper in gtkutil and exposed it for reuse.
Updated gtkutil_button() to use icon-name images on GTK3 while preserving stock image usage on GTK2.
Switched menu icon creation to the shared GTK3 mapping helper.
2026-01-23 10:32:17 -07:00
63fd0dc103 Mapped stock icon identifiers to GTK3 named icons when creating stock menu items so GTK3 always uses gtk_image_new_from_icon_name. 2026-01-23 10:12:47 -07:00
7f05fda41a Added GTK3 named icon mappings for cancel/ok stock identifiers to align menu imagery with icon-name usage.
Clarified GTK3 vs GTK2 popup menu handling with an explicit conditional split while preserving GTK2 fallback behavior
2026-01-23 09:23:34 -07:00
9c691db910 Added a GTK3 helper to map legacy GTK stock icon IDs to themed icon names for menu items, improving GTK3 icon lookups for legacy strings.
Routed GTK3 menu icon creation through the new stock-to-name mapping before calling gtk_image_new_from_icon_name.
2026-01-23 09:17:36 -07:00
d7966a7234 Clarified GTK3 vs. GTK2 icon macro guards in the channel list and plugin UI sources to keep named icons for GTK3 and stock icons for GTK2 builds.
Split GTK3/GTK2 popup handling into explicit conditional blocks and made GTK3/GTK2 menu icon definitions explicit in the menu implementation.
2026-01-23 09:07:23 -07:00
e70c50ab1a Consolidated GTK3 vs GTK2 icon macro guards in the channel list UI to keep named icons on GTK3 and stock icons on GTK2 behind a single conditional block.
Aligned plugin UI icon macros with the same GTK3/GTK2 conditional pattern for named icons vs stock icons.
Ensured GTK3 popup helper usage and clarified GTK3/GTK2 icon macro selection in the main menu handling code.
2026-01-23 08:56:27 -07:00
74c16fabe6 Defined shared GTK2/GTK3 icon constants for the channel list and reused them for menu items and action buttons to keep GTK3 named icons centralized.
Added plugin manager icon constants for GTK2/GTK3 and applied them to the load/unload/reload buttons
2026-01-23 08:33:48 -07:00
70d5113180 Added a GTK3 icon-button helper for the channel list and reused it for the action buttons, plus guarded the GTK2 popup timestamp handling.
Added a GTK3 icon-button helper for the plugin list controls and used it for the load/unload/reload buttons.
Added a GTK3 help icon to the join-channel dialog button configuration.
2026-01-23 08:17:22 -07:00
6b089d3fba Added a GTK3 fallback to anchor the chanlist context menu at the tree widget when no event is available, while keeping the GTK2 popup path unchanged. 2026-01-23 08:05:16 -07:00
03ab236b67 Anchored GTK3 menu popups to the parent window when no pointer event is available, while preserving the GTK2 popup path. 2026-01-23 07:58:26 -07:00
8ba068041d Made GTK2-only chanlist menu popup and button icon paths explicit with #if !HAVE_GTK3, keeping GTK3 named-icon usage separate from stock icons.
Applied the same GTK2-guarded stock icon usage in plugingui and menu handling, including menu popups and icon helpers, to isolate GTK2-only calls.
2026-01-23 07:47:16 -07:00
fae83a34bc Updated GTK3 menu icon fallback to use icon names instead of stock IDs while preserving GTK2 behavior. 2026-01-23 07:38:43 -07:00
b934b1b940 Updated the channel list context menu, buttons, and popup handling to use GTK3 icon names and gtk_menu_popup_at_pointer while keeping GTK2 stock fallbacks.
Switched the plugin GUI action buttons to GTK3 icon-name images with GTK2 stock fallbacks.
Added GTK3 icon-name mappings for menu entries, updated menu popups to gtk_menu_popup_at_pointer, and set GTK3 dialog button icons while preserving GTK2 stock behavior.
2026-01-23 07:32:38 -07:00
7f7fd71fe4 Guarded the Win32 GDK header include with GDK_WINDOWING_WIN32 while keeping the Win32 system header include intact. 2026-01-23 00:48:15 -07:00
d65cef176e Guarded the tray icon X11 code path with GDK_WINDOWING_X11 while preserving the non-X11 fallback behavior in gtkutil_tray_icon_supported.
Switched Win32 window handle retrieval to gdk_win32_window_get_handle and wrapped the usage in GDK_WINDOWING_WIN32 in fe_gui_info_ptr.
2026-01-23 00:43:30 -07:00
5715245080 Updated the GTK3 pointer position query to use gdk_device_get_position without a temporary screen variable while keeping GTK2/GTK3 code paths split by HAVE_GTK3. 2026-01-23 00:38:14 -07:00
796c991dd8 Guarded cursor unref with a null check while keeping GTK2/GTK3-specific cleanup behavior centralized.
Added a helper to clear window backgrounds using GTK2/GTK3-specific APIs and used it during widget realize.
2026-01-23 00:32:59 -07:00
7ac74220c4 Added a GTK3-safe null guard before unrefing cursors while keeping GTK2 behavior under !HAVE_GTK3.
Added a GTK3 pointer-device null fallback in gtk_xtext_get_pointer to safely handle missing devices before using gdk_device_get_position.
2026-01-23 00:27:02 -07:00
1bb0451d75 Updated GTK3 palette color parsing to use full 16-bit hex strings when converting to RGBA in palette handling and setup color dialogs.
Switched GtkCellRendererText foreground bindings to the palette foreground property macro in user list, notify list, and DCC views.
2026-01-23 00:23:00 -07:00
ea4ef5be90 Updated GTK3 color parsing in the palette/setup helpers to use RGBA-friendly hex strings with gdk_rgba_parse fallbacks while preserving GTK2 behavior.
Switched GtkCellRendererText foreground property selection to foreground-rgba on GTK3 paths (with GTK2 guarded), covering userlist, notify, and DCC views.
2026-01-23 00:13:14 -07:00
131691156a Updated notify tree cell rendering to use the palette foreground property while preserving GTK2/GTK3 color cleanup logic.
Reused the palette foreground property macro for user list and DCC text renderers to match RGBA usage in GTK3 while keeping GTK2 behavior intact.
Aligned GTK2 setup color callbacks with PaletteColor and ensured RGBA parsing initialization in the palette helper.
2026-01-22 23:55:49 -07:00
864bf5e059 Parsed palette color strings with RGBA/GdkColor parsing fallbacks for GTK3/GTK2 palette updates.
Adjusted setup RGBA conversion fallback to explicit channel conversion when parsing fails.
Updated GtkCellRendererText foreground property handling for GTK2/GTK3 in user list, DCC list, and notify list rendering.
2026-01-22 23:45:02 -07:00
5596c8825b Added a GTK2/GTK3-compatible cursor unref helper to centralize cleanup logic.
Switched cursor destruction to use the new helper in the widget teardown path.
2026-01-22 23:32:50 -07:00
a05c064466 Wrapped GTK2-only cursor cleanup with #if !HAVE_GTK3, keeping GTK3 paths on g_object_unref.
Moved GTK2 pointer/background calls into #if !HAVE_GTK3 blocks, leaving GTK3-compatible implementations in #else.
2026-01-22 23:28:24 -07:00
ae86a8db0f Added a GTK3-aware pointer helper that uses gdk_device_get_position while retaining GTK2 behavior under #if !HAVE_GTK3.
Wrapped GTK2-only cursor unref and background pixmap calls with GTK3-compatible g_object_unref and gdk_window_set_background_pattern alternatives.
2026-01-22 23:24:43 -07:00
dae5eadf1a Updated setup color dialog RGBA derivation to parse hex palette components with gdk_rgba_parse for GTK3 paths.
Standardized GtkCellRendererText foreground color binding to use the palette foreground property macro across user list, DCC, and notify views.
2026-01-22 23:18:59 -07:00
bc11f40a7a Updated notify list cell rendering to apply GTK3 RGBA foreground properties and free boxed colors correctly while keeping GTK2 behavior intact.
Switched user list and DCC tree view text columns to select the GTK3 foreground-rgba property (with GTK2 fallbacks) for cell renderer text colors.
Reused RGBA parsing for palette-backed color chooser defaults and clarified palette change tracking comments.
2026-01-22 23:03:50 -07:00
51fd0fca91 Routed GTK cell renderer foreground bindings through PALETTE_FOREGROUND_PROPERTY for user list, notify, and DCC views to ensure GTK3 uses RGBA while preserving GTK2 behavior.
Tightened GTK3 RGBA parsing by using stack buffers in palette color conversion and guarded parsing in the setup color chooser dialog.
2026-01-22 22:47:11 -07:00
3c0a4e4995 Updated RGB16 palette parsing to use 16-bit RGBA strings with gdk_rgba_parse for GTK3 builds.
Parsed palette colors before initializing the GTK3 color chooser dialog to ensure RGBA normalization.
Switched GTK3 GtkCellRendererText foreground bindings to foreground-rgba with GTK2 fallbacks in user list, notify, and DCC views.
2026-01-22 22:36:49 -07:00
9959cf1f24 Standardized GtkCellRendererText foreground bindings to use the palette foreground property macro across user list, notify list, and DCC views (GTK2/GTK3 aware).
Generated GTK3 caret-color CSS using GdkRGBA string conversion instead of manual RGB math for input styling.
Simplified palette RGB16 parsing by building a GdkRGBA-compatible color string before parsing.
2026-01-22 22:25:26 -07:00
61669f6b98 Added a GTK3 fallback when parsing palette RGB16 values into GdkRGBA colors to keep RGBA initialization robust.
Updated GTK3 list-model color storage and GtkCellRendererText foreground properties to use RGBA values in the user list, notify list, and DCC views while retaining GTK2 behavior.
Copied palette RGBA values before initializing the GTK3 color chooser dialog to ensure RGBA usage on the GTK3 path.
2026-01-22 22:03:31 -07:00
d7d29a843f Added a forward declaration for userlist_store_color to prevent implicit declaration errors in GTK2 builds. 2026-01-20 12:51:11 -07:00
dbb9168426 Parse GTK3 palette RGB16 values into explicit GdkRGBA structs before assignment in the palette helper.
Copy RGBA values from the GTK color chooser into palette entries for the setup dialog path.
Added RGBA-aware list-store color helpers and usage for userlist, notify, and DCC views to keep color handling consistent across GTK versions.
2026-01-20 12:26:01 -07:00
cd52ebd7e8 Centralized the palette foreground property definition for GTK2/GTK3 and applied it to the user list, notify list, and DCC tree renderers to use RGBA where supported.
Removed legacy colormap allocation/free calls in palette handling and setup color selection while preserving the GTK2 path logic.
2026-01-19 22:58:52 -07:00
99e20751a8 Converted palette storage to GdkRGBA with GTK2-guarded helpers, including RGB16 conversion support for shared consumers and dark-mode palette handling.
Updated setup color selection and styling to use RGBA-aware GTK3 overrides/CSS while preserving GTK2 behavior in guarded paths.
Switched tree view color models/renderers and other palette consumers (user list, notify, DCC, menus, spell entry, input style) to RGBA-aware types/properties with shared RGB16 conversion usage.
2026-01-19 22:50:17 -07:00
01108d7c2f Aligned the GTK3 quit dialog checkbox to fill horizontally and stay vertically centered within the grid layout, keeping GTK2 behavior unchanged. 2026-01-19 22:17:57 -07:00
7e5ca51486 Added a GTK3/GTK2-aware helper to create the banlist table/grid with consistent spacing setup.
Updated the banlist UI setup to use the new helper when building the table container.
2026-01-19 22:01:45 -07:00
5441ab1a58 Aligned ban list checkboxes in GTK3 grids to preserve GTK2-style placement using GTK3 alignment helpers. 2026-01-19 21:42:55 -07:00
0c34c94397 Added a GTK2/GTK3-aware helper for channel list horizontal boxes and reused it for the filter rows to keep the GtkBox/GtkHBox split in one place. 2026-01-19 20:35:13 -07:00
a5f97fc018 Added mg_box_new to centralize GTK3/GTK2 GtkBox creation with homogeneous/spacing handling in maingui.c.
Updated main GUI layout construction to use mg_box_new for topic bars, text areas, meters, search/entry bars, dialog buttons, and generic tabs to keep GTK3-friendly box creation consistent while preserving GTK2 behavior.
2026-01-19 20:11:07 -07:00
91cdc28846 Added a chanlist label alignment helper and reused it for the filter labels to keep GTK3/GTK2 alignment behavior consistent.
Added a main GUI alignment helper and applied it to the quit dialog label alignment path for GTK3/GTK2 compatibility
2026-01-19 19:37:03 -07:00
2470954006 Added a Meson option to enable building the GTK frontend against GTK 3.
Switched the GTK frontend build logic to select GTK2/GTK3 dependencies and emit corresponding preprocessor defines.
Added GTK3 GtkGrid/alignment handling and GTK3 GtkBox replacements for the channel list controls while preserving GTK2 table behavior behind guards.
Switched the ban list layout to use GtkGrid under GTK3 with GTK2 table fallback for checkbox placement.
Updated main GTK UI layouts to use GTK3 GtkGrid/GtkBox and alignment/attachment logic (quit dialog, topic bar, search/entry, chanview placement, main window table) while keeping GTK2 behavior via HAVE_GTK3 guards.
2026-01-19 19:26:29 -07:00
deepend-tildeclub
0e661dec95 Delete win32/installer/zoitechat-arm64.iss 2026-01-19 14:43:40 -07:00
deepend-tildeclub
e503bec31a Fix command line argument formatting in installer script 2026-01-19 14:42:57 -07:00
deepend-tildeclub
628bb2e157 Update submodule URL for shared-modules 2026-01-19 13:06:09 -07:00
deepend-tildeclub
afeae7380d Update submodule URL for shared-modules 2026-01-18 21:01:04 -07:00
deepend-tildeclub
3530a5c191 Add options for Perl and Python in Meson setup 2026-01-18 19:16:40 -07:00
deepend-tildeclub
92b9577a19 Update .mailmap
undoing email change that shouldn't have changed.
2026-01-18 18:48:01 -07:00
deepend-tildeclub
56dc9b1b4a Merge pull request #30 from ZoiteChat/auto-dark-mode-on-windows-fix
fix auto dark/light mode on windows.
2026-01-18 15:53:02 -07:00
8c3986ffe0 fix auto dark/light mode on windows. 2026-01-18 10:46:41 -07:00
deepend-tildeclub
c2b67e647d Merge pull request #29 from ZoiteChat/gtk-ciaro
Gtk ciaro
2026-01-18 02:11:54 -07:00
6137fdbd91 Updated the channel list theme application to honor explicit light mode selection so it applies the light palette instead of staying dark. 2026-01-18 01:21:51 -07:00
35ecc2c643 Standardized non-numbered color selector button labels to use two figure spaces so their width matches the numbered palette buttons. 2026-01-18 01:14:49 -07:00
cb8b8bd4cc - Added a helper to apply the selected palette color across all GTK button states so color selector backgrounds stay consistent in preferences (GTK Ciara compatible).
- Reused the helper when initializing and updating color selector buttons to keep the UI in sync with chosen colors.
2026-01-17 23:50:44 -07:00
7279e3592f - Replaced the dark mode checkbox with an Auto/Dark/Light selector in Preferences → Colors and added the new mode labels/setting metadata to match the combo box UI.
- Updated palette handling to respect the effective dark mode (including auto) when saving colors, applying themes, and refreshing user list styling.
- Added auto dark-mode tracking that listens to system theme changes and reapplies palette/styles live when Auto is selected, so updates happen without restart (including channel list styling updates via setup_apply_real).
- Synced the stored auto dark-mode state when preferences are applied, keeping Auto mode consistent after manual changes.
- Exposed a helper for keeping the Auto state synchronized from the GTK layer to preferences handling.
2026-01-17 23:09:38 -07:00
8d275ddb31 - Added dark mode mode constants, config storage as an integer, and a helper to resolve Auto/Dark/Light using system preferences where available.
- Replaced the dark mode checkbox with an Auto/Dark/Light color mode selector and ensured palette edits use the resolved mode.
- Applied the resolved color mode consistently across palette saving and GTK styling in the user list and channel tree/theme application paths.
2026-01-17 22:52:32 -07:00
cf41615cb3 - Reworked GTK window snapshotting in the main GUI to capture into cairo surfaces and convert via gdk_pixbuf_get_from_surface.
- Added a Cairo surface → RGBA pixbuf conversion helper that unpremultiplies ARGB32 data for GTK2 compatibility while keeping window snapshots Cairo-based.
- Updated window snapshotting to use the new Cairo surface conversion instead of gdk_pixbuf_get_from_surface
2026-01-17 22:25:12 -07:00
c1f855c2ab - Updated main GUI color helpers and tab palette generation to use XTextColor, and simplified drag icon snapshotting to use gdk_pixbuf_get_from_window with a null guard.
- Added pixbuf-based cairo surface capture for xtext window scrolling with a fallback to full redraw when capture fails.
2026-01-17 21:56:00 -07:00
4ac836fc66 - Added a shared XTextColor definition and a palette conversion helper for Cairo-ready colors, decoupling renderer palettes from GdkColor usage in the API surface.
- Updated xtext palette APIs to accept internal color arrays directly for rendering setup.
- Wired xtext palette creation through UI entry points to use the new palette helper when constructing or refreshing text views.
2026-01-17 21:39:45 -07:00
5986e6a78b -Added the standard type attribute to the GTK file info query so file type checks no longer trigger GLib-GIO warnings.
-Replaced GtkStyle application in the channel tree view with explicit base/text/font modifications to avoid style attach/detach issues on teardown.

-Updated user list styling to apply the font directly instead of setting a shared GtkStyle instance.

-Switched color button updates to use background modifications instead of creating per-button styles, reducing detach warnings on shutdown.
2026-01-17 18:31:04 -07:00
0601be026c - Converted text background loading to build Cairo surfaces directly from pixbufs for renderer use.
- Updated the xtext renderer to accept Cairo background surfaces and dropped the GtkStyle attach during realize to keep rendering Cairo/Pango-focused.
- Switched background surface ownership and cleanup to use cairo_surface_t across the shared state and settings update path.
2026-01-17 18:19:00 -07:00
24b0a3d75f - Introduced the XTextColor struct and stored xtext palette/foreground/background colors in internal renderer state rather than GdkColor fields.
- Converted palette colors and background pixmaps into cairo-ready values/surfaces for rendering (including background tiling and separator colors).
2026-01-17 17:44:49 -07:00
2ac5234803 - Added Cairo-based window snapshot conversion (with unpremultiplication) for drag icons and updated drag rendering to use the new helper instead of drawable capture.
- Updated GtkXText to track the draw window and use a pixmap-to-surface helper for Cairo contexts, avoiding drawable references in the struct and rendering flow.
- Added a Cairo helper for capturing window-backed surfaces and used it when blitting during scrolling, fixing the build break from the removed drawable helper.
2026-01-17 17:34:38 -07:00
30e309853c Added the required gdk/gdk.h include before gdkcairo.h in maingui.c to satisfy GDK header include order requirements on Windows builds.
Added cairo surface tracking and context creation helpers for xtext rendering, including state initialization for the new draw surface field.

Replaced GdkPixmap-based offscreen text buffering with cairo surfaces and routed rendering/underline/strikethrough operations through the cairo context helper.
2026-01-17 16:56:35 -07:00
944ce69906 Added a Cairo color helper for drag highlight rendering and applied it to the drag motion drawing path.
Replaced GDK source helpers in the text rendering pipeline with Cairo surface/color helpers for lines, backgrounds, and blits.

Updated render sizing to use window dimensions and switched window copy paths to Cairo surfaces.
2026-01-17 16:46:21 -07:00
4bf5316cfa Replaced legacy GDK rectangle drawing in the drag highlight path with Cairo calls and ensured cleanup before early return 2026-01-17 16:34:38 -07:00
136e63a6cd ciaro fixes 2026-01-17 16:19:56 -07:00
5ea424d0e8 start of ciaro implementation. 2026-01-17 16:08:00 -07:00
deepend-tildeclub
d0e7e45a41 Revise changelog for ZoiteChat 2.17.3 release
Updated changelog for ZoiteChat version 2.17.3 with new features, fixes, and known issues.
2026-01-17 15:34:53 -07:00
deepend-tildeclub
8df91eb382 Fix XML structure in appdata file
Fix XML structure by closing the 'component' tag and removing an extra closing 'releases' tag.
2026-01-17 15:14:30 -07:00
deepend-tildeclub
40ed3bc0bc Merge pull request #28 from ZoiteChat/upcoming-version-bump
Upcoming version bump
2026-01-17 15:01:33 -07:00
deepend-tildeclub
437e8fc3d1 Merge pull request #27 from ZoiteChat/master
sync with master
2026-01-17 14:56:36 -07:00
deepend-tildeclub
4c86105183 Bump version from 2.17.2 to 2.17.3 2026-01-17 14:55:54 -07:00
deepend-tildeclub
87e9d93f5e Bump version from 2.17.2 to 2.17.3 2026-01-17 14:54:56 -07:00
deepend-tildeclub
b6fba447da Update release notes for version 2.17.3
Added details for version 2.17.3 release including fixes and features.
2026-01-17 14:53:34 -07:00
deepend-tildeclub
95d31bad57 Merge pull request #24 from ZoiteChat/Github-Action-Changes
Update Windows build workflow with permissions and attestations
2026-01-17 13:38:19 -07:00
deepend-tildeclub
19fbceec93 Add permissions for AppImage build workflow 2026-01-16 23:45:13 -07:00
deepend-tildeclub
4c13b96bd9 Merge pull request #26 from ZoiteChat/win-emoji-fix
fix windows color emojis
2026-01-16 23:40:43 -07:00
deepend-tildeclub
113c026ffa Merge pull request #20 from ZoiteChat/theme-integration-in-preferences
Theme integration in preferences
2026-01-16 23:40:29 -07:00
e985506737 fix windows color emojis 2026-01-16 23:18:12 -07:00
deepend-tildeclub
d858b12d8e Merge pull request #25 from ZoiteChat/merge-with-theme-update
sync with master
2026-01-16 23:10:14 -07:00
deepend-tildeclub
e97937f82c Merge branch 'theme-integration-in-preferences' into merge-with-theme-update 2026-01-16 23:09:44 -07:00
deepend-tildeclub
960b51933d Merge pull request #16 from ZoiteChat/emoji-menu
Update maingui.c
2026-01-16 23:04:55 -07:00
deepend-tildeclub
ccc6580652 Enhance Flatpak build workflow with permissions and steps
Added permissions for contents, id-token, attestations, and artifact-metadata. Included steps for uploading and attesting the Flatpak bundle.
2026-01-16 22:57:03 -07:00
f473f3d4b9 fixes for importing themes. 2026-01-16 22:42:18 -07:00
2c349deee2 theme import fixes. 2026-01-16 22:07:01 -07:00
deepend-tildeclub
94e92b8edf Update Windows build workflow with permissions and attestations
Added permissions for artifact handling and attestation.
2026-01-16 21:36:10 -07:00
85d0edbbed stop application from treating the theme files as server urls. 2026-01-16 20:02:37 -07:00
b1fc133883 associated .hct and .zct files with ZoiteChat for easy Theme importation like there was in the Theme Manager that was removed. 2026-01-16 19:34:18 -07:00
f480366c87 add button in theme preferences to open themes folder. 2026-01-16 19:26:22 -07:00
deepend-tildeclub
51bd5376aa Merge pull request #21 from ZoiteChat/master
sync branch to master
2026-01-16 19:09:49 -07:00
deepend-tildeclub
44880a41f9 Remove theme-manager option from build configuration
Removed theme-manager option from meson setup.
2026-01-16 18:57:52 -07:00
deepend-tildeclub
1766ec558f Remove theme-manager option from build configuration
Removed theme-manager option from Meson setup.
2026-01-16 18:57:35 -07:00
deepend-tildeclub
58073542ff Remove theme-manager option in debian-build.yml
Remove theme-manager option from Meson setup.
2026-01-16 18:57:18 -07:00
deepend-tildeclub
b7177b9fe6 Delete data/misc/net.zoite.Zoitechat.ThemeManager.xml 2026-01-16 18:47:10 -07:00
deepend-tildeclub
c7dd1d6eef Delete data/misc/net.zoite.Zoitechat.ThemeManager.desktop.in 2026-01-16 18:47:01 -07:00
19d47c1d13 associate .hct and .zct files with ZoiteChat for theme importing. 2026-01-16 18:31:13 -07:00
deepend-tildeclub
e5e22fc103 removed mention of thememan.exe 2026-01-16 18:16:22 -07:00
deepend-tildeclub
84f62080c4 fixed removal of theme manager 2026-01-16 18:12:05 -07:00
deepend-tildeclub
2f30c86be8 Update print statement from 'Hello' to 'Goodbye' 2026-01-16 18:07:38 -07:00
46da9fe581 remove theme manager in favor of theme selector in preferences. 2026-01-16 17:54:40 -07:00
deepend-tildeclub
33efa85ac9 fix theme option in preferences 2026-01-16 17:52:57 -07:00
deepend-tildeclub
724f71b650 integrate a theme manager into preferences.
Fix missing newline at end of file in setup.c
2026-01-16 16:29:12 -07:00
deepend-tildeclub
93cd47de5c Merge pull request #15 from ZoiteChat/Fix-channel-config-line-endings
Refactor newline handling in servlist.c
2026-01-16 15:59:55 -07:00
deepend-tildeclub
e270199560 Merge pull request #14 from ZoiteChat/update-python-to-v3.14
update python to v3.14
2026-01-16 15:59:37 -07:00
deepend-tildeclub
3fdd639028 Merge pull request #13 from ZoiteChat/fix-sni-extension-handling
Fix SNI extension handling
2026-01-16 15:59:12 -07:00
deepend-tildeclub
90b227ed59 Update documentation links in readme.md 2026-01-16 13:32:38 -07:00
deepend-tildeclub
44f6fc357e Refactor emoji widget application to use child handling 2026-01-15 20:21:30 -07:00
deepend-tildeclub
20dca7dc2f Enhance emoji widget handling in menu items 2026-01-15 20:10:58 -07:00
deepend-tildeclub
81b2325aa1 Refactor emoji font handling in mg_update_xtext
Removed the emoji fallback font function and related code.
2026-01-15 19:58:12 -07:00
deepend-tildeclub
fa1912bb5d Update maingui.c 2026-01-15 18:35:27 -07:00
deepend-tildeclub
7df9b08313 Refactor newline handling in servlist.c
Remove redundant newline character handling in fgets buffer.
2026-01-15 11:12:56 -07:00
deepend-tildeclub
d54669982a Refactor Python directory setup in Windows build workflow
Updated Python directory creation logic and resolved version discrepancies.
2026-01-15 10:51:04 -07:00
e79564b501 Update to Python v3.14 2026-01-15 10:47:36 -07:00
1be65ff216 Update Python to v3.14.2 2026-01-15 10:15:48 -07:00
0bcf4bee6e Change to Python 3.14 2026-01-15 10:02:24 -07:00
78c4b474db update python to v3.14 2026-01-15 09:48:31 -07:00
af12c6557a Fix SNI extension handling 2026-01-15 09:15:38 -07:00
deepend-tildeclub
24a5c3b50d Merge pull request #11 from ZoiteChat/gtk3-migration
Merge pull request #8 from ZoiteChat/master
2026-01-14 13:36:15 -07:00
708fb3de42 moving website to zoitechat.zoite.net 2026-01-14 12:54:25 -07:00
deepend-tildeclub
7ecc469385 Rename workflow from 'OpenBSD Package' to 'OpenBSD Build' 2026-01-14 10:50:05 -07:00
deepend-tildeclub
34575bc603 Add OpenBSD Build badge to README
Added OpenBSD build badge to the README.
2026-01-14 10:49:20 -07:00
deepend-tildeclub
7021031ea0 Merge pull request #9 from ZoiteChat/deepend-tildeclub-patch-1
Add OpenBSD package build workflow
2026-01-14 10:48:13 -07:00
deepend-tildeclub
8cdc6cb966 Fix EOF syntax in openbsd-build.yml 2026-01-14 10:27:33 -07:00
deepend-tildeclub
cc359bd3e3 Modify OpenBSD package creation for ZoiteChat
Update package creation script for ZoiteChat to include full package path and comment.
2026-01-14 10:26:47 -07:00
deepend-tildeclub
3225a28e12 Fix EOF syntax in openbsd-build.yml 2026-01-14 09:28:31 -07:00
deepend-tildeclub
758f879700 Refactor OpenBSD build workflow for clarity and efficiency 2026-01-14 09:17:27 -07:00
deepend-tildeclub
d8460692ac Update OpenBSD build workflow with rsync and staging 2026-01-14 01:03:55 -07:00
deepend-tildeclub
5e4bc8966c Replace ntpd with rdate for time synchronization 2026-01-14 00:45:26 -07:00
deepend-tildeclub
4373516256 Add ntpd command to OpenBSD build workflow 2026-01-14 00:40:08 -07:00
deepend-tildeclub
4ebdaf7c1e Enable sync option in OpenBSD build workflow 2026-01-14 00:33:08 -07:00
deepend-tildeclub
3690011933 Update pkg_create command to include staging path 2026-01-14 00:22:20 -07:00
deepend-tildeclub
212b6d8a57 Fix directory listing format in OpenBSD build workflow 2026-01-14 00:14:41 -07:00
deepend-tildeclub
de4812cf93 Update dependencies in OpenBSD build workflow 2026-01-14 00:03:35 -07:00
deepend-tildeclub
37babfa29a Update PKG_PATH to use ftp mirror 2026-01-13 23:56:23 -07:00
deepend-tildeclub
9e6850eb4f Change OpenBSD package release to 7.5
Updated OpenBSD package release from 7.4 to 7.5.
2026-01-13 23:51:31 -07:00
deepend-tildeclub
f544a9d009 Add OpenBSD package build workflow 2026-01-13 23:17:03 -07:00
deepend-tildeclub
d455b44fef Merge pull request #8 from ZoiteChat/master
Change Lua build option in Zoitechat Flatpak config
2026-01-13 20:44:38 -07:00
deepend-tildeclub
f33801e59b Change Lua build option in Zoitechat Flatpak config 2026-01-13 18:59:45 -07:00
deepend-tildeclub
e70085a8c4 Enable Lua support and disable Python in Flatpak config 2026-01-13 16:59:28 -07:00
445 changed files with 26747 additions and 12824 deletions

View File

@@ -8,7 +8,13 @@ on:
jobs:
appimage_build:
runs-on: ubuntu-24.04
runs-on: ubuntu-22.04
permissions:
contents: read
id-token: write
attestations: write
artifact-metadata: write
steps:
- uses: actions/checkout@v4
@@ -23,10 +29,13 @@ jobs:
build-essential pkg-config meson ninja-build cmake \
gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev \
libgtk2.0-dev libgtk-3-dev \
libarchive-dev \
libgtk-3-dev \
libwayland-client0 libwayland-cursor0 libwayland-egl1 \
libxkbcommon0 \
libgtk-3-bin libglib2.0-bin shared-mime-info gsettings-desktop-schemas \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev \
python3-dev python3-cffi mono-devel desktop-file-utils \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev libayatana-appindicator3-dev \
perl python3 python3-minimal python3-dev python3-cffi mono-devel desktop-file-utils \
patchelf file curl
- name: Configure
@@ -36,8 +45,10 @@ jobs:
meson setup build \
--prefix=/usr \
-Dtext-frontend=true \
-Dtheme-manager=true \
-Dauto_features=enabled
-Dwith-perl=perl \
-Dwith-python=python3 \
-Dauto_features=enabled \
-Dappindicator=enabled
- name: Build
run: |
@@ -50,6 +61,60 @@ jobs:
rm -rf AppDir
DESTDIR="${PWD}/AppDir" ninja -C build install
- name: Bundle scripting runtimes in AppDir
run: |
set -eux
python3_version="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
install -Dm755 "$(command -v python3)" "AppDir/usr/bin/python3"
if [ -x "/usr/bin/perl" ]; then
install -Dm755 /usr/bin/perl AppDir/usr/bin/perl
fi
install -d AppDir/usr/lib
cp -a "/usr/lib/python${python3_version}" "AppDir/usr/lib/"
if [ -d "/usr/lib/python3/dist-packages" ]; then
install -d AppDir/usr/lib/python3
cp -a /usr/lib/python3/dist-packages AppDir/usr/lib/python3/
fi
if [ -d "/usr/lib/x86_64-linux-gnu/python3/dist-packages" ]; then
install -d AppDir/usr/lib/x86_64-linux-gnu/python3
cp -a /usr/lib/x86_64-linux-gnu/python3/dist-packages AppDir/usr/lib/x86_64-linux-gnu/python3/
fi
if [ -d "/usr/lib/x86_64-linux-gnu/perl" ]; then
install -d AppDir/usr/lib/x86_64-linux-gnu
cp -a /usr/lib/x86_64-linux-gnu/perl AppDir/usr/lib/x86_64-linux-gnu/
fi
if [ -d "/usr/share/perl" ]; then
install -d AppDir/usr/share
cp -a /usr/share/perl AppDir/usr/share/
fi
if [ -d "/usr/share/perl5" ]; then
install -d AppDir/usr/share
cp -a /usr/share/perl5 AppDir/usr/share/
fi
if compgen -G '/usr/lib/x86_64-linux-gnu/libpython3*.so*' > /dev/null; then
install -d AppDir/usr/lib/x86_64-linux-gnu
cp -a /usr/lib/x86_64-linux-gnu/libpython3*.so* AppDir/usr/lib/x86_64-linux-gnu/
fi
- name: Verify bundled plugins
run: |
set -eux
# Include every built-in plugin except the Windows-only update plugin.
find AppDir/usr/lib -maxdepth 4 -type f -name '*.so' -path '*/zoitechat/plugins/*' -print | sort
for plugin in checksum fishlim lua perl python sysinfo; do
find "AppDir/usr/lib" -maxdepth 4 -type f -name "${plugin}.so" -path '*/zoitechat/plugins/*' -print -quit | grep -q .
done
- name: Build AppImage
env:
APPIMAGE_EXTRACT_AND_RUN: 1
@@ -67,21 +132,25 @@ jobs:
chmod +x linuxdeploy-plugin-gtk
export PATH="${PWD}:${PATH}"
# Bundle CA certificates into the AppDir
install -Dm644 /etc/ssl/certs/ca-certificates.crt \
AppDir/etc/ssl/certs/ca-certificates.crt
# Custom AppRun: preserve typical AppDir runtime paths AND force CA bundle
cat > AppRun <<'EOF'
#!/bin/sh
set -eu
APPDIR="${APPDIR:-$(dirname "$(readlink -f "$0")")}"
export PATH="$APPDIR/usr/bin:${PATH:-/usr/bin:/bin}"
export PATH="${PATH:-/usr/bin:/bin}:$APPDIR/usr/bin"
export LD_LIBRARY_PATH="$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}"
export XDG_DATA_DIRS="$APPDIR/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" ]; then
export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins"
elif [ -d "$APPDIR/usr/lib/zoitechat/plugins" ]; then
export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/zoitechat/plugins"
fi
if [ -d "$APPDIR/usr/share/glib-2.0/schemas" ]; then
export GSETTINGS_SCHEMA_DIR="$APPDIR/usr/share/glib-2.0/schemas${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
fi
@@ -92,21 +161,48 @@ jobs:
export GIO_EXTRA_MODULES="$APPDIR/usr/lib/gio/modules${GIO_EXTRA_MODULES:+:$GIO_EXTRA_MODULES}"
fi
# OpenSSL trust store override (fixes “unable to get local issuer certificate (20)”)
export PYTHONHOME="$APPDIR/usr"
python_stdlib_dir="$(find "$APPDIR/usr/lib" -maxdepth 1 -type d -name 'python3.*' | head -n 1 || true)"
pythonpath_entries=""
if [ -n "$python_stdlib_dir" ] && [ -d "$python_stdlib_dir/dist-packages" ]; then
pythonpath_entries="$python_stdlib_dir/dist-packages"
fi
if [ -d "$APPDIR/usr/lib/python3/dist-packages" ]; then
pythonpath_entries="${pythonpath_entries:+$pythonpath_entries:}$APPDIR/usr/lib/python3/dist-packages"
fi
if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/python3/dist-packages" ]; then
pythonpath_entries="${pythonpath_entries:+$pythonpath_entries:}$APPDIR/usr/lib/x86_64-linux-gnu/python3/dist-packages"
fi
if [ -n "$pythonpath_entries" ]; then
export PYTHONPATH="$pythonpath_entries${PYTHONPATH:+:$PYTHONPATH}"
fi
# OpenSSL trust store override
export SSL_CERT_FILE="${SSL_CERT_FILE:-$APPDIR/etc/ssl/certs/ca-certificates.crt}"
export SSL_CERT_DIR="${SSL_CERT_DIR:-$APPDIR/etc/ssl/certs}"
export CURL_CA_BUNDLE="${CURL_CA_BUNDLE:-$SSL_CERT_FILE}"
# Prefer Wayland if the session provides it, but keep X11 fallback.
# Don't override if the user already set GDK_BACKEND explicitly.
if [ -z "${GDK_BACKEND:-}" ]; then
if [ -n "${WAYLAND_DISPLAY:-}" ] || [ "${XDG_SESSION_TYPE:-}" = "wayland" ]; then
export GDK_BACKEND="wayland,x11"
else
export GDK_BACKEND="x11"
fi
fi
exec "$APPDIR/usr/bin/zoitechat" "$@"
EOF
chmod +x AppRun
VERSION="$(git describe --tags --always)"
./linuxdeploy-x86_64.AppImage \
--appdir AppDir \
--desktop-file AppDir/usr/share/applications/io.github.Zoitechat.desktop \
--icon-file AppDir/usr/share/icons/hicolor/48x48/apps/io.github.Zoitechat.png \
--desktop-file AppDir/usr/share/applications/net.zoite.Zoitechat.desktop \
--icon-file AppDir/usr/share/icons/hicolor/48x48/apps/net.zoite.Zoitechat.png \
--custom-apprun ./AppRun \
--plugin gtk \
--output appimage
@@ -114,6 +210,12 @@ jobs:
appimage_path="$(ls -1 *.AppImage | grep -v linuxdeploy | head -n 1)"
mv "$appimage_path" "Zoitechat-${VERSION}-x86_64.AppImage"
- name: Attest AppImage (Build Provenance)
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/attest-build-provenance@v3
with:
subject-path: Zoitechat-*-x86_64.AppImage
- name: Upload AppImage artifact
uses: actions/upload-artifact@v4
with:

View File

@@ -1,60 +0,0 @@
name: Debian Build
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
debian_build:
runs-on: ubuntu-24.04
container:
image: debian:bookworm
steps:
- name: Install base tooling (git + deps)
run: |
set -eux
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends \
git ca-certificates \
build-essential pkg-config meson ninja-build cmake \
gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev libgtk2.0-dev \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev \
python3-dev python3-cffi mono-devel desktop-file-utils
- uses: actions/checkout@v4
with:
submodules: true
- name: Configure
run: |
set -eux
rm -rf build
meson setup build \
-Dtext-frontend=true \
-Dtheme-manager=true \
-Dauto_features=enabled
# If configure fails, show the project's actual option names in the log.
- name: Show Meson options (on failure)
if: failure()
run: |
set -eux
meson configure build || true
- name: Build
run: |
set -eux
ninja -C build
- name: Test
run: |
set -eux
ninja -C build test
- name: Install
run: |
set -eux
ninja -C build install

View File

@@ -9,6 +9,13 @@ on:
jobs:
flatpak_build:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
attestations: write
artifact-metadata: write
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49
options: --privileged
@@ -18,8 +25,24 @@ jobs:
with:
submodules: true
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
- name: Build Flatpak
id: flatpak_builder
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: zoitechat.flatpak
manifest-path: flatpak/io.github.Zoitechat.json
cache-key: flatpak-builder-${{ github.sha }}
manifest-path: flatpak/net.zoite.Zoitechat.json
cache: false
restore-cache: false
- name: Upload Flatpak Bundle
id: upload_flatpak
uses: actions/upload-artifact@v4
with:
name: zoitechat.flatpak
path: zoitechat.flatpak
- name: Attest Flatpak Bundle (Build Provenance)
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/attest-build-provenance@v3
with:
subject-path: zoitechat.flatpak

View File

@@ -0,0 +1,81 @@
name: Manjaro Package Build
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
workflow_dispatch:
permissions:
contents: read
jobs:
manjaro-package:
runs-on: ubuntu-latest
container:
image: manjarolinux/base:latest
steps:
- name: Install packaging toolchain
run: |
set -euxo pipefail
pacman -Syu --noconfirm
pacman -S --noconfirm --needed \
base-devel \
git \
namcap \
meson \
ninja \
pkgconf \
glib2 \
glib2-devel \
gtk3 \
openssl \
dbus-glib \
libcanberra \
libayatana-appindicator \
luajit \
iso-codes \
lua \
perl \
python \
python-cffi \
pciutils
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Build package and generate .SRCINFO (non-root)
run: |
set -euxo pipefail
id -u builder >/dev/null 2>&1 || useradd -m builder
chown -R builder:builder "$GITHUB_WORKSPACE"
su builder -c "cd '$GITHUB_WORKSPACE/packaging/manjaro' && makepkg --noconfirm --syncdeps --cleanbuild"
su builder -c "cd '$GITHUB_WORKSPACE/packaging/manjaro' && makepkg --printsrcinfo > .SRCINFO"
- name: Lint PKGBUILD and package with namcap
run: |
set -euxo pipefail
cd "$GITHUB_WORKSPACE/packaging/manjaro"
namcap PKGBUILD
pkg_file="$(find . -maxdepth 1 -type f -name '*.pkg.tar.*' | head -n1)"
namcap "$pkg_file"
- name: Collect artifacts
run: |
set -euxo pipefail
mkdir -p artifacts
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/*.pkg.tar.* artifacts/
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/PKGBUILD artifacts/
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/.SRCINFO artifacts/
- name: Upload package artifacts
uses: actions/upload-artifact@v4
with:
name: zoitechat-manjaro-package
path: artifacts/*
if-no-files-found: error

View File

@@ -1,56 +0,0 @@
name: MSYS2 Build
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
msys2_build:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-pkg-config
mingw-w64-x86_64-python-cffi
mingw-w64-x86_64-meson
mingw-w64-x86_64-ninja
mingw-w64-x86_64-gtk2
mingw-w64-x86_64-gtk-update-icon-cache
mingw-w64-x86_64-luajit
mingw-w64-x86_64-desktop-file-utils
mingw-w64-x86_64-gettext-tools
- name: Sanity check gettext ITS rules
run: |
set -eux
which msgfmt || true
msgfmt --version
ls -la /mingw64/share/gettext-*/its || true
- name: Configure
run: |
set -eux
rm -rf build
meson setup build \
-Dtext-frontend=true \
-Ddbus=disabled \
-Dwith-upd=false \
-Dwith-perl=false
- name: Build
run: ninja -C build
- name: Test
run: ninja -C build test

View File

@@ -10,16 +10,18 @@ on:
jobs:
windows_build:
runs-on: windows-2019
runs-on: windows-2022
permissions:
contents: read
id-token: write
attestations: write
artifact-metadata: write
strategy:
matrix:
platform: [x64, win32]
arch: [x64, x86]
exclude:
- platform: x64
arch: x86
- platform: win32
arch: x64
platform: [x64]
arch: [x64]
fail-fast: false
steps:
@@ -27,54 +29,100 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: '3.8'
python-version: '3.14.2'
architecture: ${{ matrix.arch }}
- name: Install Dependencies
run: |
New-Item -Name "deps" -ItemType "Directory"
Invoke-WebRequest http://files.jrsoftware.org/is/5/innosetup-5.5.9-unicode.exe -OutFile deps\innosetup-unicode.exe
& deps\innosetup-unicode.exe /VERYSILENT | Out-Null
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/idpsetup-1.5.1.exe -OutFile deps\idpsetup.exe
& deps\idpsetup.exe /VERYSILENT
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/gtk-${{ matrix.platform }}-2018-08-29-openssl1.1.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/gendef-20111031.7z -OutFile deps\gendef.7z
& 7z.exe x deps\gendef.7z -oC:\gtk-build
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/WinSparkle-20151011.7z -OutFile deps\WinSparkle.7z
& 7z.exe x deps\WinSparkle.7z -oC:\gtk-build\WinSparkle
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/perl-5.20.0-${{ matrix.arch }}.7z -OutFile deps\perl-${{ matrix.arch }}.7z
& 7z.exe x deps\perl-${{ matrix.arch }}.7z -oC:\gtk-build\perl-5.20\${{ matrix.platform }}
New-Item -Path "C:\gtk-build\python-3.8" -ItemType Directory -Force | Out-Null
$pyRoot = $env:pythonLocation
if (-not $pyRoot) {
$pyRoot = & python -c "import sys; print(sys.prefix)"
}
$target = "C:\gtk-build\python-3.8\${{ matrix.platform }}"
if (Test-Path $target) { Remove-Item $target -Recurse -Force }
New-Item -Path "C:\gtk-build\python-3.8" -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null
New-Item -Name "deps" -ItemType "Directory" -Force | Out-Null
python -m pip install --upgrade pip
python -m pip install cffi
python -m pip install zstandard
$ProgressPreference = 'SilentlyContinue'
function Download-WithRetry {
param(
[string]$Url,
[string]$OutFile,
[int]$MaxAttempts = 5,
[int]$InitialDelaySeconds = 2
)
for ($attempt = 1; $attempt -le $MaxAttempts; $attempt++) {
try {
Invoke-WebRequest -Uri $Url -OutFile $OutFile -ErrorAction Stop
return
}
catch {
if ($attempt -eq $MaxAttempts) {
throw
}
Start-Sleep -Seconds ($InitialDelaySeconds * [math]::Pow(2, $attempt - 1))
}
}
}
Download-WithRetry -Url https://files.jrsoftware.org/is/6/innosetup-6.7.0.exe -OutFile deps\innosetup-unicode.exe
& deps\innosetup-unicode.exe /VERYSILENT | Out-Null
Download-WithRetry -Url https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/idpsetup-1.5.1.exe -OutFile deps\idpsetup.exe
& deps\idpsetup.exe /VERYSILENT
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre1/GTK3_Gvsbuild_zoitechat-2.18.0-pre1_${{ matrix.platform }}.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk\x64\release
Download-WithRetry -Url https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-hicolor-icon-theme-0.18-1-any.pkg.tar.zst -OutFile deps\hicolor-icon-theme.pkg.tar.zst
python -c "import tarfile,zstandard,pathlib;archive=pathlib.Path(r'deps\\hicolor-icon-theme.pkg.tar.zst');target=pathlib.Path(r'C:\\gtk-build\\gtk\\x64\\release');dctx=zstandard.ZstdDecompressor();f=archive.open('rb');reader=dctx.stream_reader(f);tf=tarfile.open(fileobj=reader,mode='r|');[tf.extract(m,path=target) for m in tf if m.name.startswith('mingw64/share/icons/hicolor/')];tf.close();reader.close();f.close()"
Download-WithRetry -Url https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-libarchive-3.8.1-1-any.pkg.tar.zst -OutFile deps\libarchive.pkg.tar.zst
python -c "import tarfile,zstandard,pathlib;archive=pathlib.Path(r'deps\\libarchive.pkg.tar.zst');target=pathlib.Path(r'C:\\gtk-build\\gtk\\x64\\release');dctx=zstandard.ZstdDecompressor();f=archive.open('rb');reader=dctx.stream_reader(f);tf=tarfile.open(fileobj=reader,mode='r|');[tf.extract(m,path=target) for m in tf if m.name.startswith(('mingw64/include/archive','mingw64/lib/libarchive','mingw64/bin/libarchive'))];tf.close();reader.close();f.close()"
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\share\icons\hicolor) {
New-Item -Path C:\gtk-build\gtk\x64\release\share\icons -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\share\icons\hicolor -Destination C:\gtk-build\gtk\x64\release\share\icons\hicolor -Recurse -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\include) {
New-Item -Path C:\gtk-build\gtk\x64\release\include -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\include\archive* -Destination C:\gtk-build\gtk\x64\release\include -Recurse -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\lib) {
New-Item -Path C:\gtk-build\gtk\x64\release\lib -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\lib\libarchive* -Destination C:\gtk-build\gtk\x64\release\lib -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\bin) {
New-Item -Path C:\gtk-build\gtk\x64\release\bin -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\bin\libarchive*.dll -Destination C:\gtk-build\gtk\x64\release\bin -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64) {
Remove-Item -Path C:\gtk-build\gtk\x64\release\mingw64 -Recurse -Force
}
Download-WithRetry -Url https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/gendef-20111031.7z -OutFile deps\gendef.7z
& 7z.exe x deps\gendef.7z -oC:\gtk-build
Download-WithRetry -Url https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/WinSparkle-20151011.7z -OutFile deps\WinSparkle.7z
& 7z.exe x deps\WinSparkle.7z -oC:\gtk-build\WinSparkle
Download-WithRetry -Url https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/perl-5.20.0-${{ matrix.arch }}.7z -OutFile deps\perl-${{ matrix.arch }}.7z
& 7z.exe x deps\perl-${{ matrix.arch }}.7z -oC:\gtk-build\perl-5.20\${{ matrix.platform }}
$pyRoot = $env:pythonLocation
if (-not $pyRoot) { $pyRoot = & python -c "import sys; print(sys.prefix)" }
foreach ($pyDir in @("C:\gtk-build\python-3.14.2", "C:\gtk-build\python-3.14")) {
New-Item -Path $pyDir -ItemType Directory -Force | Out-Null
$target = Join-Path $pyDir "${{ matrix.platform }}"
if (Test-Path $target) { Remove-Item $target -Recurse -Force }
New-Item -Path $pyDir -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null
}
- name: Build
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set "PYTHON_DIR=C:\gtk-build\python-3.8\${{ matrix.platform }}"
if not exist "%PYTHON_DIR%\libs\python38.lib" (
echo Missing %PYTHON_DIR%\libs\python38.lib
set "PYTHON_DIR=C:\gtk-build\python-3.14.2\${{ matrix.platform }}"
if not exist "%PYTHON_DIR%\libs\python314.lib" (
echo Missing %PYTHON_DIR%\libs\python314.lib
dir "%PYTHON_DIR%\libs"
exit /b 1
)
@@ -82,21 +130,41 @@ jobs:
set "LIB=%PYTHON_DIR%\libs;%LIB%"
set "INCLUDE=%PYTHON_DIR%\include;%INCLUDE%"
powershell -NoProfile -ExecutionPolicy Bypass -Command "$archiveLib='C:\gtk-build\gtk\x64\release\lib\libarchive.lib'; if (-not (Test-Path $archiveLib)) { $archiveDll = Get-ChildItem 'C:\gtk-build\gtk\x64\release\bin\libarchive*.dll' | Select-Object -First 1; if ($archiveDll) { Push-Location 'C:\gtk-build\gtk\x64\release\lib'; & 'C:\gtk-build\gendef\gendef.exe' $archiveDll.FullName | Out-Null; $archiveDef = Get-ChildItem 'libarchive*.def' | Select-Object -First 1; if ($archiveDef) { & lib /def:$archiveDef.Name /machine:${{ matrix.platform }} /out:libarchive.lib | Out-Null }; Pop-Location } }"
msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }}
shell: cmd
- name: Preparing Artifacts
run: |
move ..\zoitechat-build\${{ matrix.platform }}\ZoiteChat*.exe .\
move ..\zoitechat-build\${{ matrix.platform }}\ZoiteChat-*.exe .\
move ..\zoitechat-build .\
shell: cmd
- uses: actions/upload-artifact@v4
- name: Upload Installer
id: upload_installer
uses: actions/upload-artifact@v4
with:
name: Installer ${{ matrix.arch }}
path: ZoiteChat*.exe
path: ZoiteChat-*.exe
- uses: actions/upload-artifact@v4
- name: Attest Installer (Artifact Attestation)
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/attest-build-provenance@v3
with:
subject-name: Installer ${{ matrix.arch }}
subject-digest: sha256:${{ steps.upload_installer.outputs.artifact-digest }}
- name: Upload Build Files
id: upload_buildfiles
uses: actions/upload-artifact@v4
with:
name: Build Files ${{ matrix.arch }}
path: zoitechat-build
- name: Attest Build Files (Artifact Attestation)
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
uses: actions/attest-build-provenance@v3
with:
subject-name: Build Files ${{ matrix.arch }}
subject-digest: sha256:${{ steps.upload_buildfiles.outputs.artifact-digest }}

View File

@@ -1,5 +1,5 @@
Berke Viktor <github.bviktor@outlook.com> <berkeviktor@aol.com>
Berke Viktor <github.bviktor@outlook.com> <bviktor@zoitechat.org>
Berke Viktor <github.bviktor@outlook.com> <bviktor@hexchat.org>
Berke Viktor <github.bviktor@outlook.com> <bviktor@outlook.com>
Berke Viktor <github.bviktor@outlook.com> berkeviktor@aol.com
Patrick Griffis <tingping@tingping.se> TingPing <tingping@fedoraproject.org>

44
Makefile Normal file
View File

@@ -0,0 +1,44 @@
PREFIX ?= /usr/local
BUILD_DIR ?= build
MESON ?= meson
NINJA ?= ninja
C_STD ?= c17
MESON_SETUP_ARGS ?=
MESON_SETUP_ARGS += -Dc_std=$(C_STD)
MESON_COMPILE_ARGS ?=
MESON_INSTALL_ARGS ?=
CONFIG_STAMP := $(BUILD_DIR)/build.ninja
.PHONY: all configure build reconfigure install uninstall clean distclean
all: build
$(CONFIG_STAMP):
@mkdir -p $(BUILD_DIR)
@env NINJA=$(NINJA) $(MESON) setup $(BUILD_DIR) --prefix=$(PREFIX) $(MESON_SETUP_ARGS)
configure: $(CONFIG_STAMP)
build: configure
@env NINJA=$(NINJA) $(MESON) compile -C $(BUILD_DIR) $(MESON_COMPILE_ARGS)
reconfigure:
@mkdir -p $(BUILD_DIR)
@env NINJA=$(NINJA) $(MESON) setup --reconfigure $(BUILD_DIR) --prefix=$(PREFIX) $(MESON_SETUP_ARGS)
install: build
@env NINJA=$(NINJA) $(MESON) install -C $(BUILD_DIR) $(MESON_INSTALL_ARGS)
uninstall: configure
@$(NINJA) -C $(BUILD_DIR) uninstall
clean:
@if [ -f "$(CONFIG_STAMP)" ]; then \
env NINJA=$(NINJA) $(MESON) compile -C $(BUILD_DIR) --clean; \
else \
echo "Nothing to clean (no $(CONFIG_STAMP))."; \
fi
distclean:
rm -rf $(BUILD_DIR)

1132
changelog.rst Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M8 7v4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="8" cy="4.8" r=".9" fill="#e5e7eb"/>
</svg>

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="4.8" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M8 5.8v4.4M5.8 8h4.4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="3.5" cy="5.5" r=".2" fill="#e5e7eb"/>
</svg>

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M3.2 5.2h9.6" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<path d="M5 5.2v7.3c0 .6.4 1 1 1h4c.6 0 1-.4 1-1V5.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M6.5 3.5h3" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<path d="M6.8 7v4M9.2 7v4" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2.5" y="2.5" width="11" height="11" rx="1.6" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M5.2 5.2l5.6 5.6M10.8 5.2 5.2 10.8" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M4.5 10.5h7" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="8" cy="8" r="1.1" fill="#e5e7eb"/>
</svg>

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M6 4.5h6.5v8H6z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M3.5 2.5H10v1.8" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/><path d="M3.5 2.5v8.8H5.3" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M5.2 5.3h5.6v7.2H5.2z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M4 5.3h8" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/><path d="M6.3 3.7h3.4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/><path d="M7.1 6.6v4.6M8.9 6.6v4.6" stroke="#e5e7eb" stroke-width="1.1" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2" y="4" width="8" height="8" rx="1.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M8 8h5M10.5 5.5 13 8l-2.5 2.5" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M4.5 10.5h7" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<path d="M5 5l6 6" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="8" cy="8" r="5.6" fill="rgb(255,199,64)" stroke="rgb(240,240,240)" stroke-width="1"/><circle cx="6" cy="7" r="0.8" fill="rgb(240,240,240)"/><circle cx="10" cy="7" r="0.8" fill="rgb(240,240,240)"/><path d="M5.5 9.4c.6 1 1.4 1.6 2.5 1.6s1.9-.6 2.5-1.6" fill="none" stroke="rgb(240,240,240)" stroke-width="1" stroke-linecap="round"/></svg>

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="7" cy="7" r="3.5" fill="none" stroke="#e5e7eb" stroke-width="1.4"/>
<path d="M9.8 9.8 13 13" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/>
<path d="M7 5.4v3.2M5.4 7h3.2" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M6.4 6.2a1.8 1.8 0 1 1 2.8 1.5c-.7.5-1.2.9-1.2 1.8" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="8" cy="11.8" r=".8" fill="#e5e7eb"/>
</svg>

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8h6" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<path d="M6 5l3 3-3 3" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="10" y="3" width="3.5" height="10" rx="1" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
</svg>

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8h6" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<path d="M6 5l2.8 3L6 11" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="9" y="4" width="4.5" height="8" rx="1" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M11.25 6v1.8" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="3.5" cy="5.5" r=".2" fill="#e5e7eb"/>
</svg>

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M3 2.5h6l4 4V13.5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M9 2.5v4h4" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M8 8v4M6 10h4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M5.5 3.5 10.5 8l-5 4.5" fill="none" stroke="#e5e7eb" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="2.1" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<path d="M8 2.8v1.4M8 11.8v1.4M13.2 8h-1.4M4.2 8H2.8M11.7 4.3l-1 1M5.3 10.7l-1 1M11.7 11.7l-1-1M5.3 5.3l-1-1" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M10.5 3.5 5.5 8l5 4.5" fill="none" stroke="#e5e7eb" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M8 2.5v5" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/>
<path d="M5 4.3a5 5 0 1 0 6 0" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M12.8 7.4A4.8 4.8 0 1 0 8 12.8" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round"/><path d="M13 3.5v3.7H9.3" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="4.8" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M5.8 8h4.4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M3 2.5h8l2 2v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<rect x="5" y="3.5" width="4.5" height="2.5" fill="none" stroke="#e5e7eb" stroke-width="1.2"/>
<rect x="5" y="9" width="3.4" height="3" fill="none" stroke="#e5e7eb" stroke-width="1.2"/>
<path d="M9.8 8.9v3.6M8.1 10.7l1.7-1.8 1.8 1.8" fill="none" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M3 2.5h8l2 2v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/>
<rect x="5" y="3.5" width="4.5" height="2.5" fill="none" stroke="#e5e7eb" stroke-width="1.2"/>
<rect x="5" y="9" width="6" height="3" fill="none" stroke="#e5e7eb" stroke-width="1.2"/>
</svg>

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="7" cy="7" r="3.5" fill="none" stroke="#e5e7eb" stroke-width="1.4"/>
<path d="M9.8 9.8 13 13" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M4 4.2h4M6 4.2v7.4M3.2 7.2h5.6" fill="none" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/><path d="m8.9 9.3 1.5 1.5 2.8-3" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><g fill="none" stroke="rgb(240,240,240)" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 5.8A5.5 5.5 0 1 0 5 13"/><path d="M13 2.2v3h-3"/><path d="M3 10.2A5.5 5.5 0 1 0 11 3"/><path d="M3 13.8v-3h3"/></g></svg>

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M8 7v4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="8" cy="4.8" r=".9" fill="#1f2937"/>
</svg>

After

Width:  |  Height:  |  Size: 316 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="4.8" fill="none" stroke="#1f2937" stroke-width="1.3"/><path d="M8 5.8v4.4M5.8 8h4.4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="3.5" cy="5.5" r=".2" fill="#1f2937"/>
</svg>

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M3.2 5.2h9.6" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<path d="M5 5.2v7.3c0 .6.4 1 1 1h4c.6 0 1-.4 1-1V5.2" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M6.5 3.5h3" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<path d="M6.8 7v4M9.2 7v4" stroke="#1f2937" stroke-width="1.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2.5" y="2.5" width="11" height="11" rx="1.6" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M5.2 5.2l5.6 5.6M10.8 5.2 5.2 10.8" stroke="#1f2937" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M4.5 10.5h7" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="8" cy="8" r="1.1" fill="#1f2937"/>
</svg>

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M6 4.5h6.5v8H6z" fill="none" stroke="#1f2937" stroke-width="1.3"/><path d="M3.5 2.5H10v1.8" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/><path d="M3.5 2.5v8.8H5.3" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M5.2 5.3h5.6v7.2H5.2z" fill="none" stroke="#1f2937" stroke-width="1.3"/><path d="M4 5.3h8" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/><path d="M6.3 3.7h3.4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/><path d="M7.1 6.6v4.6M8.9 6.6v4.6" stroke="#1f2937" stroke-width="1.1" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2" y="4" width="8" height="8" rx="1.2" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M8 8h5M10.5 5.5 13 8l-2.5 2.5" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M4.5 10.5h7" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<path d="M5 5l6 6" stroke="#1f2937" stroke-width="1.4" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="8" cy="8" r="5.6" fill="rgb(255,211,67)" stroke="rgb(56,56,56)" stroke-width="1"/><circle cx="6" cy="7" r="0.8" fill="rgb(56,56,56)"/><circle cx="10" cy="7" r="0.8" fill="rgb(56,56,56)"/><path d="M5.5 9.4c.6 1 1.4 1.6 2.5 1.6s1.9-.6 2.5-1.6" fill="none" stroke="rgb(56,56,56)" stroke-width="1" stroke-linecap="round"/></svg>

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="7" cy="7" r="3.5" fill="none" stroke="#1f2937" stroke-width="1.4"/>
<path d="M9.8 9.8 13 13" stroke="#1f2937" stroke-width="1.5" stroke-linecap="round"/>
<path d="M7 5.4v3.2M5.4 7h3.2" stroke="#1f2937" stroke-width="1.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 368 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M6.4 6.2a1.8 1.8 0 1 1 2.8 1.5c-.7.5-1.2.9-1.2 1.8" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="8" cy="11.8" r=".8" fill="#1f2937"/>
</svg>

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8h6" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<path d="M6 5l3 3-3 3" fill="none" stroke="#1f2937" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="10" y="3" width="3.5" height="10" rx="1" fill="none" stroke="#1f2937" stroke-width="1.3"/>
</svg>

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M2.5 8h6" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<path d="M6 5l2.8 3L6 11" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="9" y="4" width="4.5" height="8" rx="1" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M11.25 6v1.8" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
<circle cx="3.5" cy="5.5" r=".2" fill="#1f2937"/>
</svg>

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true">
<path d="M3 2.5h6l4 4V13.5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M9 2.5v4h4" fill="none" stroke="#1f2937" stroke-width="1.3"/>
<path d="M8 8v4M6 10h4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Some files were not shown because too many files have changed in this diff Show More