Fixed undefined behavior causing hover highlights on the plugin tray menu not working.
Fixes #602
This commit is contained in:
		
							parent
							
								
									ec12871e60
								
							
						
					
					
						commit
						b6c4cfa2a3
					
				
					 1 changed files with 9 additions and 4 deletions
				
			
		| 
						 | 
					@ -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,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue