Commit Graph

73 Commits

Author SHA1 Message Date
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-tildeclub
99b93d1b71 Merge pull request #60 from ZoiteChat/raw_bytes_keyboard_shortcut
Raw bytes keyboard shortcut
2026-02-16 19:16:11 -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
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
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
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
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
4008d94571 fix(portability): replace POSIX-only string funcs and legacy hostent fields 2026-01-26 15:56:52 -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
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
4683ef705b new name after fork 2026-01-05 23:12:38 -07: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
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
Rastus Vernon
0667519d17 fkeys: Change unprintable characters to octal notation
- ^O is \017
- ^B is \002
- ^C is \003
- ^] is \035
- ^_ is \037
- ^V is \026

See ASCII(7) for an octal and hexadecimal table.
2016-06-29 15:51:53 -04:00
Rastus Vernon
fbacb82191 Add keybinding for reverse video text
This adds the Ctrl+R keybinding by default to insert \026, the
character used for the reverse video text attribute.
2016-06-29 15:50:53 -04:00
Patrick Griffis
aab881fda2 Fix strict prototype warnings 2016-02-18 08:57:22 -05:00
Anthony Ryan
26d3461f46 Make tab completion prefer other people
If you are talking with someone else with the same prefix as your
own nickname, and attempt to tab complete theirs. It will complete
your own nickname before theirs if you talked more recently. Since
people rarely intend to highlight themselves, this improves the
logic to complete your own name only as a last resort.
2015-11-14 23:22:57 -05:00
TingPing
ac54a2ed45 Allow reordering some dialogs with dnd
This sadly can't work everywhere since they all
have entirely different ways of saving the data..

Related to #1288
2015-02-08 01:51:22 -05:00
TingPing
afee9fd42b Only send utf8 string in Key Press event
Fixes #869
2015-02-02 02:56:08 -05:00
TingPing
85fd6f525e Add default keybinding for shift+tab (Previous tab complete) 2015-01-26 17:53:33 -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
TingPing
0ba8b922a2 Fix tab completing with no completion char 2014-12-09 23:03:44 -05:00
TingPing
b296839538 Respect servers chantypes and nickprefixes when tab completing
Closes #441
2014-12-09 05:45:50 -05:00
TingPing
5fb21a04ad Use gboolean for bools 2014-12-09 05:45:01 -05:00
TingPing
fda692d250 Fix various unsafe string handling in fkeys
Also removes the 2048 input byte limit
And fixes utf8 completion chars in some cases
2014-12-09 05:30:35 -05:00
Arnavion
c1831cb19d Minor tidying up 2014-12-08 21:24:59 -08:00
Arnavion
65da34f19e Removed some unnecessary null-checks for calls to g_free and g_strfreev 2014-12-08 21:24:59 -08:00
Arnavion
8062bce835 Fix some obvious type warnings. 2014-12-04 04:06:38 -08:00
TingPing
637c153de3 Use newer format for default keybindings
This uses the proper bindings on OS X
2014-05-28 01:39:45 -04:00
TingPing
fea528c39d Don't ignore command key in keybindings on OSX 2014-05-11 04:48:44 -04:00
TingPing
8f6a596057 Properly handle shift tab in keyboard shortcuts 2014-02-16 14:48:17 -05:00
TingPing
85aff53a88 Use more user friendly label for keys in keyboard shortcuts 2014-02-16 11:08:32 -05:00
TingPing
725aed43ff Redesign keyboard shortcuts window
- Convert GtkCLists to GtkTreeViews
- Save keybindings in GtkAccelerator format
- Store keybindings in a GSList
2014-02-14 16:29:44 -05:00
TingPing
5f7321280e Use a standard GtkScrolledWindow with xtext
Used in maingui, fkeys, text events, rawlog

This also implements the set_scroll_adjustments signal in xtext
2014-02-06 20:17:07 -05:00
TingPing
7fcf70c539 Fix loading default keybindings w/o write permissions
Closes #615
2014-01-26 06:30:33 -05:00
TingPing
ce09cb4a91 Update most deprecated gtk functions 2014-01-18 14:47:17 -05:00
TingPing
eb93130cd3 Remove gtkspell support 2013-10-03 16:23:46 -04:00
TingPing
d552415abe Add default keybindings for italics and underline 2013-09-29 01:47:10 -04:00
TingPing
449553ffb0 Replace xtext's transparency with full window transparency
Xtext's transparency barely worked on windows, didn't work on any modern
linux wm and used fake transparency.
This uses gtk's built in window opacity that works on more systems and
is real transparency.
Text area only transparency may return with a transition to cairo, if it
works on Windows.
2013-09-27 17:40:05 -04:00
TingPing
4c9b193b45 Fix tab completion with utf8 completion char
Closes #738
2013-09-24 17:03:19 -04:00
TingPing
ae04663aa9 First round of using GTK accessor functions
This is the first step to build with GSEAL_ENABLE
setup.c uses a deprecated fontchooser,
chanview-tabs.c didn't like the conversion, and
I am waiting to do some work on xtext.c before
converting it.
2013-09-20 17:24:39 -04:00
TingPing
ddb3bf05d8 use GDK_KEY 2013-09-15 03:22:04 -04:00
RichardHitt
bca0ad8e1e Fix description line for Scroll Page in fkeys.c. 2013-08-01 11:55:22 -07:00
Richard Hitt
be252e271f Scroll-page keybindings: Add Top (C+HOME), Bottom (C+END) 2013-07-30 13:11:07 -07:00
Berke Viktor
171dbcdedf Remove dead GLib code 2013-05-12 05:58:16 +02:00
RichardHitt
eef74ed263 Add '#define GLIB_DISABLE_DEPRECATION_WARNINGS' to fix fkeys.c warnings 2013-04-23 12:46:32 -07:00
Andreas Rönnquist
a1daf03538 Fix spelling seperate/separate 2013-04-04 17:11:05 +02:00