diff src/audacious/ui_playlist.c @ 2351:911743d27aba trunk

[svn] - simplify and optimize the metadata tooltip trigger function
author giacomo
date Tue, 16 Jan 2007 16:49:21 -0800
parents 564e8a1fe09a
children 4b2c7d9523e7
line wrap: on
line diff
--- a/src/audacious/ui_playlist.c	Tue Jan 16 11:12:11 2007 -0800
+++ b/src/audacious/ui_playlist.c	Tue Jan 16 16:49:21 2007 -0800
@@ -70,7 +70,7 @@
 static gboolean playlistwin_hint_flag = FALSE;
 
 static GtkWidget *playlistwin_infopopup = NULL;
-static gint playlistwin_infopopup_sid = 0;
+static guint playlistwin_infopopup_sid = 0;
 
 static PlaylistSlider *playlistwin_slider = NULL;
 static TextBox *playlistwin_time_min, *playlistwin_time_sec;
@@ -1805,8 +1805,9 @@
     playlistwin_set_toprow(0);
     playlist_check_pos_current(playlist_get_active());
 
-    playlistwin_infopopup_sid = g_timeout_add(
-      50 , (GSourceFunc)playlistwin_fileinfopopup_probe , playlistwin_infopopup );
+    if ( playlistwin_infopopup_sid == 0 )
+      playlistwin_infopopup_sid = g_timeout_add(
+        50 , (GSourceFunc)playlistwin_fileinfopopup_probe , playlistwin_infopopup );
 
     gtk_widget_show(playlistwin);
 }
@@ -1824,7 +1825,10 @@
 
     /* no point in probing for playlistwin_infopopup trigger when the playlistwin is hidden */
     if ( playlistwin_infopopup_sid != 0 )
+    {
       g_source_remove( playlistwin_infopopup_sid );
+      playlistwin_infopopup_sid = 0;
+    }
 
     if ( cfg.player_visible )
     {
@@ -2183,9 +2187,7 @@
 	{
 		prev_pos = pos;
 		ctr = 0;
-                if ( GTK_WIDGET(filepopup_win)->window != NULL &&
-                     gdk_window_is_viewable(GDK_WINDOW(GTK_WIDGET(filepopup_win)->window)) )
-                  audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL);
+                audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL);
 		return TRUE;
 	}
 
@@ -2200,16 +2202,13 @@
 		return TRUE;
 	}
 
-	if (GTK_WIDGET(filepopup_win)->window == NULL)
-		skip = TRUE;
-
 	if (playlistwin_is_shaded()) {
 		shaded_pos = playlist_get_position(playlist);
 		if (shaded_prev_pos != shaded_pos)
 			skip = TRUE;
 	}
 
-        if (ctr >= cfg.filepopup_delay && (skip == TRUE || gdk_window_is_viewable(GDK_WINDOW(GTK_WIDGET(filepopup_win)->window)) != TRUE)) {
+        if (ctr >= cfg.filepopup_delay && (skip == TRUE || GTK_WIDGET_VISIBLE(GTK_WIDGET(filepopup_win)) != TRUE)) {
 		if (pos == -1 && !playlistwin_is_shaded()) {
 			audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL);
 			return TRUE;