]> jfr.im git - irc/hexchat/hexchat.git/commitdiff
Fixed undefined behavior causing hover highlights on the plugin tray menu not working.
authorArnavion <redacted>
Sat, 28 Feb 2015 01:24:57 +0000 (17:24 -0800)
committerArnavion <redacted>
Sat, 28 Feb 2015 01:24:57 +0000 (17:24 -0800)
Fixes #602

src/fe-gtk/plugin-tray.c

index 1ec8d2a392a5b34f99010ff6b17a33bd1fd74a29..447bd0cffd4b07da6869b03879d86472f8daaca1 100644 (file)
@@ -487,25 +487,30 @@ tray_menu_destroy (GtkWidget *menu, gpointer userdata)
 }
 
 #ifdef WIN32
-static void
+static gboolean
 tray_menu_enter_cb (GtkWidget *menu)
 {
        tray_menu_inactivetime = 0;
+       return FALSE;
 }
 
-static void
+static gboolean
 tray_menu_left_cb (GtkWidget *menu)
 {
        tray_menu_inactivetime = g_get_real_time ();
+       return FALSE;
 }
 
-static void
+static gboolean
 tray_check_hide (GtkWidget *menu)
 {
        if (tray_menu_inactivetime && g_get_real_time () - tray_menu_inactivetime  >= 2000000)
        {
                tray_menu_destroy (menu, NULL);
+               return G_SOURCE_REMOVE;
        }
+
+       return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -581,7 +586,7 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata)
        g_signal_connect (G_OBJECT (menu), "enter-notify-event",
                                                        G_CALLBACK (tray_menu_enter_cb), NULL);
 
-       tray_menu_timer = g_timeout_add(500, (GSourceFunc) tray_check_hide, menu);
+       tray_menu_timer = g_timeout_add (500, tray_check_hide, menu);
 #endif
 
        gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL,