Commit Graph

189 Commits

Author SHA1 Message Date
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
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
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
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
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
dbc95b9121 fixed dark/light color saving. Remembers both dark mode colors and light mode colors. 2026-01-12 22:52:56 -07:00
8a4b19a8fd minor feature release 2.17.1 (dark mode) 2026-01-12 21:43:18 -07:00
e265ad4454 dark mode v1 2026-01-12 21:24:09 -07:00
c1cbe14871 dark mode 2026-01-11 12:02:58 -07:00
4683ef705b new name after fork 2026-01-05 23:12:38 -07:00
konsolebox
67b25fddf1 Add option to exclude nickname in window title (#2759) 2023-01-24 17:03:53 -06: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
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
Allan Nordhøy
a388d0c553 Spelling: SOCKS5, Byte per second (#2056)
* Spelling: SOCKS5

* SOCKS4/5, Byte per second

As per https://en.wikipedia.org/wiki/Data_rate_units
2017-09-16 22:04:52 -04:00
Chase Patterson
18b741804c Use localized "HexChat" in window titles
Also allow rearranging of "HexChat" in window titles
2017-09-15 19:18:29 -04:00
Chase Patterson
d935197895 Change windows from starting with "Hexchat: " to ending with " - Hexchat" 2017-09-15 19:18:29 -04:00
Patrick Griffis
d99cd18fb9 Improve detection of system tray support
Closes #2045
2017-08-31 10:16:03 -04:00
torhus
281038e725 UI text consistency, capitalization etc. 2017-08-19 16:49:30 -04:00
Patrick Griffis
dfaf0e31c7 Tweak shadow in preferences 2016-12-27 10:12:05 -05:00
Patrick Griffis
2c80cb7efd Use a scrolled window for large preference pages
Closes #1722
2016-12-22 07:32:44 -05:00
Patrick Griffis
dc09f2c75d Remove unused preference
I can't really think of a reason this would be needed
and since it doesn't do anything, and didn't since xchat,
 might as well remove it.
2016-08-20 23:24:19 -04:00
Patrick Griffis
e647cd00c6 setup: Disabling input styling requires restarting 2016-07-05 15:40:42 -04:00
Ben Gamari
9e4c2ddc47 Apply timeout changes made in preferences dialog
Just involves a bit of refactoring.
2016-06-29 15:42:11 -04:00
Patrick Griffis
f14ad5e9dd Add identd to preferences 2016-01-25 22:51:11 -05:00
TingPing
afd2135393 Fix possible overflow
gtk_entry_get_text_length() returns len in utf8
chars not in bytes
2015-06-04 04:02:33 -04:00
TingPing
f4f27e438b Implement windows 8.1+ notifications
This splits notifications up into multiple backends
currently only libnotify on unix and win8 toasts.

The win8 backend was originally written by @leeter
though heavily modified.
2015-02-04 20:24:53 -05:00
TingPing
aab243592f Workaround crash when timestamp format is blank
Somebody else can fix the numerous assumptions elsewhere
2015-01-13 04:14:32 -05:00
TingPing
9f7444baa2 Move userlist sorting to frontend
This Fixes possible crashes when the two
usertrees get out of sync and a double free occurs.

Also now requires restart to change sort orders.

Fixes #1252
Fixes #818 (probably)
2014-12-31 03:56:36 -05:00
TingPing
9cb73f839f Remove MSProxy support
It's not enabled anywhere, certainly not maintained
2014-12-28 13:28:19 -05:00
TingPing
95febd978c Fix building as c89 2014-12-28 06:47:23 -05:00
TingPing
83032b1aa3 Use glib for all allocations
- Removes need to check for malloc failure
- Removes need for NULL checks on free
- Adds checks for integer overflows
- Removes some extra memset calls
- Removes chance of mixing libc and glib malloc/free
2014-12-28 06:44:44 -05:00
md_5
74ff67acd3 Create configuration option to control middle click tab close.
Some might argue that this shouldn't be able to be configured as it is "common" behaviour
in other programs such as web browsers, but for me it is an annoyance because for 15
years this has not been the behaviour of X-Chat.
Quite simply, this creates a configuration option for 537fb856, as unobtrusively as
possible, under the channel switcher preferences tab.

Closes #1232
2014-12-10 15:09:04 -05:00
TingPing
9181ea068a Fix dcc dir warning showing when not auto-accept 2014-06-04 20:55:34 -04:00
Berke Viktor
0dccf692d4 Add global option to suppress nick change events
Might as well add a per-channel option, too but for me that seems a bit unnecessary.
Closes #971
2014-05-12 05:01:24 -04:00
TingPing
fea144dd19 Add option to bounce dock icon on OSX 2014-05-11 04:50:35 -04:00
TingPing
40e8ca9f6e Hide tray balloon option on OSX 2014-02-15 12:34:46 -05:00
TingPing
655b524ee6 Cleanup the preferences window
Simplifies some code and removes many widgets
2014-02-14 16:17:08 -05:00
TingPing
ce09cb4a91 Update most deprecated gtk functions 2014-01-18 14:47:17 -05:00
TingPing
a817072e6f Add Turkish language to preferences
Users of uk, vi, and wa languages will have to manually change their
lang on Windows after this.
2014-01-11 18:34:30 -05:00
TingPing
afb6685593 Merge pull request #842 from ManiacTwister/setup-fix
Fixed setup window title offsets
2013-12-25 08:31:13 -08:00
ManiacTwister
2bbb2ac7db Fixed setup window title offsets 2013-11-18 03:37:11 +01:00