Fixed undefined behavior causing hover highlights on the plugin tray menu not working.

Fixes #602
This commit is contained in:
Arnavion 2015-02-27 17:24:57 -08:00
parent ec12871e60
commit b6c4cfa2a3
1 changed files with 9 additions and 4 deletions

View File

@ -487,25 +487,30 @@ tray_menu_destroy (GtkWidget *menu, gpointer userdata)
} }
#ifdef WIN32 #ifdef WIN32
static void static gboolean
tray_menu_enter_cb (GtkWidget *menu) tray_menu_enter_cb (GtkWidget *menu)
{ {
tray_menu_inactivetime = 0; tray_menu_inactivetime = 0;
return FALSE;
} }
static void static gboolean
tray_menu_left_cb (GtkWidget *menu) tray_menu_left_cb (GtkWidget *menu)
{ {
tray_menu_inactivetime = g_get_real_time (); tray_menu_inactivetime = g_get_real_time ();
return FALSE;
} }
static void static gboolean
tray_check_hide (GtkWidget *menu) tray_check_hide (GtkWidget *menu)
{ {
if (tray_menu_inactivetime && g_get_real_time () - tray_menu_inactivetime >= 2000000) if (tray_menu_inactivetime && g_get_real_time () - tray_menu_inactivetime >= 2000000)
{ {
tray_menu_destroy (menu, NULL); tray_menu_destroy (menu, NULL);
return G_SOURCE_REMOVE;
} }
return G_SOURCE_CONTINUE;
} }
static void 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_signal_connect (G_OBJECT (menu), "enter-notify-event",
G_CALLBACK (tray_menu_enter_cb), NULL); 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 #endif
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL,