Commit Graph
1196 Commits
Author SHA1 Message Date
deepend 0f036383b2 build: GTK deprecation cleanup + follow-up warning fixes 2026-03-11 01:49:14 -06:00
deepend c0e5ef79ec build: fix GTK/OpenSSL warnings + tab color OOB 2026-03-10 23:05:56 -06:00
deepend 0aa6c26490 fix: quiet GTK/GLib warn spam; fix include order; normalize imported CSS 2026-03-09 14:21:20 -06:00
deepend 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
deepend f2354a7fa2 refactor: unify tree/xtext/input colors via ThemeWidgetStyleValues (canonical widget-style path) 2026-03-07 22:11:09 -07:00
deepend ca043be197 fix: KDE Wayland alert flash—detect Plasma+Wayland, present() before urgency hint 2026-03-07 19:21:37 -07:00
deepend 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 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 5983befd5b icons: add system_icon_name API, make gtkutil fall back via resolver registry 2026-03-01 10:14:41 -07:00
deepend 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
deepend 1ef81951b7 win32: wire icon-resolver into VS build, kill old menu icon payload (copy + installer) 2026-02-28 23:39:08 -07:00
deepend 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 b93bad9859 windows x64-only purge: kill Win32 configs, simplify installer. 2026-02-28 09:53:37 -07:00
deepend 733f932b78 squash: win32 packaging detox (no comsupp/VC2013, trim payload, gate lua/python) 2026-02-28 09:36:50 -07:00
deepend 50d99e1314 userlist highlight: focusable treeview + palette CSS gets real :selected theme colors 2026-02-27 09:28:44 -07:00
deepend-tildeclub 2bf32fc770 Merge pull request #90 from ZoiteChat/code-cleanup
Code cleanup
2026-02-25 18:16:54 -07:00
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend-tildeclub 118ac25059 Change network name check from 'Libera.Chat' to 'Zoite' 2026-02-24 14:22:01 -07:00
deepend 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
deepend a79d34bcc0 cleaned up some gtk2 specific comments 2026-02-23 12:42:44 -07:00
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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 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
deepend 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
deepend a459d0a086 fixed docs url, removed extra help menu. 2026-02-21 19:17:31 -07:00
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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