Mercurial > audlegacy
comparison 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 |
comparison
equal
deleted
inserted
replaced
2350:54cb84d3a581 | 2351:911743d27aba |
---|---|
68 static GdkGC *playlistwin_gc; | 68 static GdkGC *playlistwin_gc; |
69 | 69 |
70 static gboolean playlistwin_hint_flag = FALSE; | 70 static gboolean playlistwin_hint_flag = FALSE; |
71 | 71 |
72 static GtkWidget *playlistwin_infopopup = NULL; | 72 static GtkWidget *playlistwin_infopopup = NULL; |
73 static gint playlistwin_infopopup_sid = 0; | 73 static guint playlistwin_infopopup_sid = 0; |
74 | 74 |
75 static PlaylistSlider *playlistwin_slider = NULL; | 75 static PlaylistSlider *playlistwin_slider = NULL; |
76 static TextBox *playlistwin_time_min, *playlistwin_time_sec; | 76 static TextBox *playlistwin_time_min, *playlistwin_time_sec; |
77 static TextBox *playlistwin_info, *playlistwin_sinfo; | 77 static TextBox *playlistwin_info, *playlistwin_sinfo; |
78 static SButton *playlistwin_srew, *playlistwin_splay; | 78 static SButton *playlistwin_srew, *playlistwin_splay; |
1803 cfg.playlist_visible = TRUE; | 1803 cfg.playlist_visible = TRUE; |
1804 | 1804 |
1805 playlistwin_set_toprow(0); | 1805 playlistwin_set_toprow(0); |
1806 playlist_check_pos_current(playlist_get_active()); | 1806 playlist_check_pos_current(playlist_get_active()); |
1807 | 1807 |
1808 playlistwin_infopopup_sid = g_timeout_add( | 1808 if ( playlistwin_infopopup_sid == 0 ) |
1809 50 , (GSourceFunc)playlistwin_fileinfopopup_probe , playlistwin_infopopup ); | 1809 playlistwin_infopopup_sid = g_timeout_add( |
1810 50 , (GSourceFunc)playlistwin_fileinfopopup_probe , playlistwin_infopopup ); | |
1810 | 1811 |
1811 gtk_widget_show(playlistwin); | 1812 gtk_widget_show(playlistwin); |
1812 } | 1813 } |
1813 | 1814 |
1814 void | 1815 void |
1822 tbutton_set_toggled(mainwin_pl, FALSE); | 1823 tbutton_set_toggled(mainwin_pl, FALSE); |
1823 cfg.playlist_visible = FALSE; | 1824 cfg.playlist_visible = FALSE; |
1824 | 1825 |
1825 /* no point in probing for playlistwin_infopopup trigger when the playlistwin is hidden */ | 1826 /* no point in probing for playlistwin_infopopup trigger when the playlistwin is hidden */ |
1826 if ( playlistwin_infopopup_sid != 0 ) | 1827 if ( playlistwin_infopopup_sid != 0 ) |
1828 { | |
1827 g_source_remove( playlistwin_infopopup_sid ); | 1829 g_source_remove( playlistwin_infopopup_sid ); |
1830 playlistwin_infopopup_sid = 0; | |
1831 } | |
1828 | 1832 |
1829 if ( cfg.player_visible ) | 1833 if ( cfg.player_visible ) |
1830 { | 1834 { |
1831 gtk_window_present(GTK_WINDOW(mainwin)); | 1835 gtk_window_present(GTK_WINDOW(mainwin)); |
1832 gtk_widget_grab_focus(mainwin); | 1836 gtk_widget_grab_focus(mainwin); |
2181 || pos != prev_pos | 2185 || pos != prev_pos |
2182 || win != GDK_WINDOW(playlistwin->window)) | 2186 || win != GDK_WINDOW(playlistwin->window)) |
2183 { | 2187 { |
2184 prev_pos = pos; | 2188 prev_pos = pos; |
2185 ctr = 0; | 2189 ctr = 0; |
2186 if ( GTK_WIDGET(filepopup_win)->window != NULL && | 2190 audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL); |
2187 gdk_window_is_viewable(GDK_WINDOW(GTK_WIDGET(filepopup_win)->window)) ) | |
2188 audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL); | |
2189 return TRUE; | 2191 return TRUE; |
2190 } | 2192 } |
2191 | 2193 |
2192 if (prev_x == x && prev_y == y) | 2194 if (prev_x == x && prev_y == y) |
2193 ctr++; | 2195 ctr++; |
2198 prev_y = y; | 2200 prev_y = y; |
2199 audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL); | 2201 audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL); |
2200 return TRUE; | 2202 return TRUE; |
2201 } | 2203 } |
2202 | 2204 |
2203 if (GTK_WIDGET(filepopup_win)->window == NULL) | |
2204 skip = TRUE; | |
2205 | |
2206 if (playlistwin_is_shaded()) { | 2205 if (playlistwin_is_shaded()) { |
2207 shaded_pos = playlist_get_position(playlist); | 2206 shaded_pos = playlist_get_position(playlist); |
2208 if (shaded_prev_pos != shaded_pos) | 2207 if (shaded_prev_pos != shaded_pos) |
2209 skip = TRUE; | 2208 skip = TRUE; |
2210 } | 2209 } |
2211 | 2210 |
2212 if (ctr >= cfg.filepopup_delay && (skip == TRUE || gdk_window_is_viewable(GDK_WINDOW(GTK_WIDGET(filepopup_win)->window)) != TRUE)) { | 2211 if (ctr >= cfg.filepopup_delay && (skip == TRUE || GTK_WIDGET_VISIBLE(GTK_WIDGET(filepopup_win)) != TRUE)) { |
2213 if (pos == -1 && !playlistwin_is_shaded()) { | 2212 if (pos == -1 && !playlistwin_is_shaded()) { |
2214 audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL); | 2213 audacious_fileinfopopup_hide(GTK_WIDGET(filepopup_win), NULL); |
2215 return TRUE; | 2214 return TRUE; |
2216 } | 2215 } |
2217 else { /* shaded mode */ | 2216 else { /* shaded mode */ |