Commit Graph
1131 Commits
Author SHA1 Message Date
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 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
deepend 136e63a6cd ciaro fixes 2026-01-17 16:19:56 -07:00
deepend 5ea424d0e8 start of ciaro implementation. 2026-01-17 16:08:00 -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 e985506737 fix windows color emojis 2026-01-16 23:18:12 -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 2c349deee2 theme import fixes. 2026-01-16 22:07:01 -07:00
deepend f480366c87 add button in theme preferences to open themes folder. 2026-01-16 19:26:22 -07:00
deepend-tildeclub 33efa85ac9 fix theme option in preferences 2026-01-16 17:52:57 -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 3ffa020c2c Fixed auto replace. Now will handle auto replace no matter where or how the text is put in. 2026-01-13 14:16:40 -07:00
deepend dbc95b9121 fixed dark/light color saving. Remembers both dark mode colors and light mode colors. 2026-01-12 22:52:56 -07:00
deepend 8a4b19a8fd minor feature release 2.17.1 (dark mode) 2026-01-12 21:43:18 -07:00
deepend e265ad4454 dark mode v1 2026-01-12 21:24:09 -07:00
deepend c1cbe14871 dark mode 2026-01-11 12:02:58 -07:00
deepend-tildeclub 288d0e5751 Change menu entry from 'He_xChat' to '_ZoiteChat' 2026-01-09 00:01:59 -07:00
deepend-tildeclub ded8119e41 Update copyright information in about dialog 2026-01-06 19:05:50 -07:00
deepend-tildeclub f287ee97d8 Update URLs in menu.c for documentation and website 2026-01-06 01:21:58 -07:00
deepend 4683ef705b new name after fork 2026-01-05 23:12:38 -07:00
Collin Funk 180ce9f4fd Change various types to the correct signedness to avoid warnings.
Also cast the check of "inet_addr" to guint32. The POSIX declaration
of this function returns in_addr_t which is the same as uint32_t.
Windows does not define this type and instead uses unsigned long.
2024-01-29 09:06:29 -06:00
Patrick Okraku 9b76b557ec Added support for SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512 2023-11-05 07:12:01 -06:00
Patrick Griffis c48afe3799 Be even more picky about invalid URLs 2023-03-14 21:22:01 -05:00
konsolebox 67b25fddf1 Add option to exclude nickname in window title (#2759) 2023-01-24 17:03:53 -06:00
Andreas Schärtl bd4290a1a9 Support whitespace between language codes
So far, when configuring multiple spell check languages, Hexchat
requires the user to separate multiple entries with commas and
only commas. This patch allows users to also enter whitespace, e.g.

  de_DE, en_US

as is common in many applications.
2022-09-20 18:08:37 -05:00
Sadie Powell 46c9df1863 Fix various compiler warnings.
fish.c: -Wincompatible-pointer-types
fkeys.c: -Wmisleading-indentation
proto-irc.c: -Wincompatible-pointer-types
util.c: -Wdeprecated-declarations
xtext.c: -Wmaybe-uninitialized
2022-08-29 13:50:03 -05:00
Adrian 20c50fd7ef notification_plugin_deinit: Set function signature to int(void *)
Previously the function signature was inconsistent throughout
src/fe-gtk/plugin-notification.{h,c}: One file had the signature
int(void), while the other had int(void *). Since this type mismatch
might lead to problems (especially with LTO) and the (possibly provided)
function argument isn't used in the function's definition, this commit
sets int(void *) as function signature for both the declaration and
definition of the function.

Fixes: https://github.com/hexchat/hexchat/issues/2726
2022-08-26 12:40:15 -05:00
Patrick Griffis 13b6a40b9c Change preferences sub-dialogs to be modal
This solves the issue where the parent dialog is closed and then
the child dialog is used.

This is however only a partial fix:

- Many other dialogs throughout the codebase do not currently have
  parent windows and need to be refactored.

- Not all window managers respect modal so users can still trigger
  bugs. We can be more defensive against this but it requires more
  refactoring.

Closes #2686
2022-04-16 18:41:34 -05:00
Patrick d99a98ff4c notification: Don't print failure to load backend in UI
This isn't actually helpful information to users generally

Closes #2152
Closes #2684
2022-03-26 11:18:00 -05:00
Patrick d936b653ac Add missing header
https://github.com/hexchat/hexchat/issues/2652#issuecomment-1007015314
2022-01-06 20:36:14 -06:00
Patrick Griffis 66f5968225 Update comment 2021-12-22 12:05:08 -06:00
Patrick Griffis ba5d79b496 Be smarter about conditionally escaping URIs that are opened
Fixes #2659
2021-12-22 11:50:36 -06:00
Nolan Lum 9039a5d75b Add -NOOVERRIDE flag to GUI COLOR. (#2644) 2021-10-14 09:44:11 -05:00
Patrick Griffis 2985dde7f0 Explicitly set app icon in notifications 2021-10-01 11:56:49 -05:00
Patrick Griffis 91439f04c0 Fix whitespace issues 2021-07-13 12:30:47 -05:00
Patrick Griffis c144d0468b Remove libnotify dependency
Instead just talk directly to the service. This fixes *sending*
a notification being blocking IO.
2021-07-13 12:26:34 -05:00
Patrick Griffis cbb0927a7a build: Misc cleanup of options
Cleanup of option names, use features where applicable, and printing
of summary.
2021-07-13 11:26:59 -05:00
Michael Catanzaro 25440a07c3 Avoid direct use of libproxy
Since hexchat already depends on GLib, it's better to use GProxyResolver
instead. This might use libproxy, or not, as appropriate.

P.S. This removes a memory safety issue because proxy_list is allocated
using malloc(), not g_malloc(), and therefore using g_strfreev() is
incorrect. The proper way to free the proxy list returned by libproxy
is to use px_proxy_factory_free_proxies() (but nobody does that because
it was added in libproxy 0.4.16, which is somewhat recent).
2021-07-12 11:29:15 -05:00
Patrick Griffis 869a8d7ab3 Fix allowed characters when escaping URIs
Closes #2608
2021-07-10 11:35:35 -05:00