3 Commits

7 changed files with 30 additions and 19 deletions

View File

@@ -1,6 +1,15 @@
ZoiteChat ChangeLog ZoiteChat ChangeLog
================= =================
2.18.0~pre4 (2026-03-15)
------------------------
- Fixed a regression where Ctrl+A could incorrectly mark you away instead of selecting all text.
- Fixed a crash when toggling the GUI with F9 or the menu toggle action.
- Fixed sidebar collapse behavior on fresh installs.
- Added multiline topic bar support with clickable URLs.
- Improved GTK selection styling so text selection is shown visually on topic and chat text box.
2.18.0~pre3 (2026-03-13) 2.18.0~pre3 (2026-03-13)
------------------------ ------------------------

View File

@@ -29,6 +29,18 @@
<id>zoitechat.desktop</id> <id>zoitechat.desktop</id>
</provides> </provides>
<releases> <releases>
<release date="2026-03-14" version="2.18.0~pre4">
<description>
<p>UI fixes, topic bar improvements, and selection styling updates:</p>
<ul>
<li>Fixed a regression where <code>Ctrl+A</code> could incorrectly mark you away instead of selecting all text.</li>
<li>Fixed a crash when toggling the GUI with <code>F9</code> or the menu toggle action.</li>
<li>Fixed sidebar collapse behavior on fresh installs.</li>
<li>Added multiline topic bar support with clickable URLs.</li>
<li>Improved GTK selection styling so text selection is shown visually in the topic bar and chat input box.</li>
</ul>
</description>
</release>
<release date="2026-03-13" version="2.18.0~pre3"> <release date="2026-03-13" version="2.18.0~pre3">
<description> <description>
<p>GTK3 theming, UI, and platform improvements:</p> <p>GTK3 theming, UI, and platform improvements:</p>

View File

@@ -1,5 +1,5 @@
project('zoitechat', 'c', project('zoitechat', 'c',
version: '2.18.0~pre3', version: '2.18.0~pre4',
meson_version: '>= 0.55.0', meson_version: '>= 0.55.0',
default_options: [ default_options: [
'c_std=c17', 'c_std=c17',

View File

@@ -19,7 +19,7 @@ else:
if not hasattr(sys, 'argv'): if not hasattr(sys, 'argv'):
sys.argv = ['<zoitechat>'] sys.argv = ['<zoitechat>']
VERSION = b'2.18.0~pre3' VERSION = b'2.18.0~pre4'
PLUGIN_NAME = ffi.new('char[]', b'Python') PLUGIN_NAME = ffi.new('char[]', b'Python')
PLUGIN_DESC = ffi.new('char[]', b'Python %d.%d scripting interface' % (sys.version_info[0], sys.version_info[1])) PLUGIN_DESC = ffi.new('char[]', b'Python %d.%d scripting interface' % (sys.version_info[0], sys.version_info[1]))
PLUGIN_VERSION = ffi.new('char[]', VERSION) PLUGIN_VERSION = ffi.new('char[]', VERSION)

View File

@@ -869,6 +869,9 @@ menu_nickmenu (session *sess, GdkEventButton *event, char *nick, int num_sel)
static void static void
menu_showhide_cb (session *sess) menu_showhide_cb (session *sess)
{ {
if (!sess->gui->menu || !GTK_IS_WIDGET (sess->gui->menu))
return;
if (prefs.hex_gui_hide_menu) if (prefs.hex_gui_hide_menu)
gtk_widget_hide (sess->gui->menu); gtk_widget_hide (sess->gui->menu);
else else
@@ -940,7 +943,7 @@ menu_setting_foreach (void (*callback) (session *), int id, guint state)
{ {
GtkWidget *menu_item = sess->gui->menu_item[id]; GtkWidget *menu_item = sess->gui->menu_item[id];
if (menu_item != NULL) if (menu_item != NULL && GTK_IS_CHECK_MENU_ITEM (menu_item))
{ {
guint toggled_signal = g_signal_lookup ("toggled", G_OBJECT_TYPE (menu_item)); guint toggled_signal = g_signal_lookup ("toggled", G_OBJECT_TYPE (menu_item));
@@ -968,7 +971,7 @@ void
menu_bar_toggle (void) menu_bar_toggle (void)
{ {
prefs.hex_gui_hide_menu = !prefs.hex_gui_hide_menu; prefs.hex_gui_hide_menu = !prefs.hex_gui_hide_menu;
menu_setting_foreach (menu_showhide_cb, MENU_ID_MENUBAR, !prefs.hex_gui_hide_menu); menu_setting_foreach (menu_showhide_cb, -1, !prefs.hex_gui_hide_menu);
} }
static void static void

View File

@@ -1132,25 +1132,12 @@ theme_preferences_create_color_page (GtkWindow *parent,
static void static void
theme_preferences_open_gtk3_folder_cb (GtkWidget *button, gpointer user_data) theme_preferences_open_gtk3_folder_cb (GtkWidget *button, gpointer user_data)
{ {
theme_preferences_ui *ui = user_data;
GAppInfo *handler;
char *themes_dir; char *themes_dir;
(void)user_data;
(void)button; (void)button;
themes_dir = zoitechat_gtk3_theme_service_get_user_themes_dir (); themes_dir = zoitechat_gtk3_theme_service_get_user_themes_dir ();
g_mkdir_with_parents (themes_dir, 0700); g_mkdir_with_parents (themes_dir, 0700);
handler = g_app_info_get_default_for_uri_scheme ("file");
if (!handler)
{
theme_preferences_show_message (ui,
GTK_MESSAGE_ERROR,
_("No application is configured to open folders."));
g_free (themes_dir);
return;
}
g_object_unref (handler);
fe_open_url (themes_dir); fe_open_url (themes_dir);
g_free (themes_dir); g_free (themes_dir);
} }

View File

@@ -1 +1 @@
2.18.0~pre3 2.18.0~pre4