mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-18 11:40:18 +00:00
Unified tray tooltip handling so GTK3 uses the tooltip-text property while GTK2 keeps the legacy API behind guards, and wired fe_tray_set_tooltip to the shared helper.
Centralized embedded-state checks through a GTK3-safe helper in the tray notification callback, avoiding GTK2-only calls under GTK3.
This commit is contained in:
@@ -188,16 +188,21 @@ tray_set_custom_icon_state (TrayCustomIcon icon, TrayIconState state)
|
|||||||
tray_icon_state = state;
|
tray_icon_state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_GTK3
|
|
||||||
static void
|
static void
|
||||||
tray_set_tooltip_text (GtkStatusIcon *icon, const char *text)
|
tray_set_tooltip_text (GtkStatusIcon *icon, const char *text)
|
||||||
{
|
{
|
||||||
|
#if HAVE_GTK3
|
||||||
g_object_set (G_OBJECT (icon), "tooltip-text", text, NULL);
|
g_object_set (G_OBJECT (icon), "tooltip-text", text, NULL);
|
||||||
|
#endif
|
||||||
|
#if !HAVE_GTK3
|
||||||
|
gtk_status_icon_set_tooltip_text (icon, text);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
tray_is_embedded (GtkStatusIcon *icon)
|
tray_is_embedded (GtkStatusIcon *icon)
|
||||||
{
|
{
|
||||||
|
#if HAVE_GTK3
|
||||||
GObjectClass *klass;
|
GObjectClass *klass;
|
||||||
gboolean embedded = TRUE;
|
gboolean embedded = TRUE;
|
||||||
|
|
||||||
@@ -209,19 +214,17 @@ tray_is_embedded (GtkStatusIcon *icon)
|
|||||||
g_object_get (G_OBJECT (icon), "embedded", &embedded, NULL);
|
g_object_get (G_OBJECT (icon), "embedded", &embedded, NULL);
|
||||||
|
|
||||||
return embedded;
|
return embedded;
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
#if !HAVE_GTK3
|
||||||
|
return gtk_status_icon_is_embedded (icon);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
fe_tray_set_tooltip (const char *text)
|
fe_tray_set_tooltip (const char *text)
|
||||||
{
|
{
|
||||||
if (sticon)
|
if (sticon)
|
||||||
#if HAVE_GTK3
|
|
||||||
tray_set_tooltip_text (sticon, text);
|
tray_set_tooltip_text (sticon, text);
|
||||||
#endif
|
|
||||||
#if !HAVE_GTK3
|
|
||||||
gtk_status_icon_set_tooltip_text (sticon, text);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -461,12 +464,7 @@ tray_menu_notify_cb (GObject *tray, GParamSpec *pspec, gpointer user_data)
|
|||||||
{
|
{
|
||||||
if (sticon)
|
if (sticon)
|
||||||
{
|
{
|
||||||
#if HAVE_GTK3
|
|
||||||
if (!tray_is_embedded (sticon))
|
if (!tray_is_embedded (sticon))
|
||||||
#endif
|
|
||||||
#if !HAVE_GTK3
|
|
||||||
if (!gtk_status_icon_is_embedded (sticon))
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
tray_restore_timer = g_timeout_add(500, (GSourceFunc)tray_menu_try_restore, NULL);
|
tray_restore_timer = g_timeout_add(500, (GSourceFunc)tray_menu_try_restore, NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user