Mercurial > audlegacy
diff audacious/ui_fileinfo.c @ 1605:ce3ce44d6814 trunk
[svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
author | yaz |
---|---|
date | Mon, 28 Aug 2006 08:51:36 -0700 |
parents | 15d92c51bde6 |
children | 694d3edcd208 |
line wrap: on
line diff
--- a/audacious/ui_fileinfo.c Sun Aug 27 09:04:05 2006 -0700 +++ b/audacious/ui_fileinfo.c Mon Aug 28 08:51:36 2006 -0700 @@ -175,14 +175,22 @@ { gint x, y, pos; TitleInput *tuple; - static gint prev_x = 0, prev_y = 0, ctr = 0; + static gint prev_x = 0, prev_y = 0, ctr = 0, prev_pos = -1; gboolean skip = FALSE; + GdkWindow *win; + + win = gdk_window_at_pointer(NULL, NULL); + gdk_window_get_pointer(GDK_WINDOW(playlistwin->window), &x, &y, NULL); + pos = playlist_list_get_playlist_position(playlistwin_list, x, y); - if (!cfg.show_filepopup_for_tuple || playlistwin_is_shaded() + if (win == NULL + || cfg.show_filepopup_for_tuple == FALSE || playlistwin_list->pl_tooltips == FALSE - || gdk_window_at_pointer(NULL, NULL) != GDK_WINDOW(playlistwin->window) - || gdk_window_at_pointer(NULL, NULL) == NULL) + || pos != prev_pos + || win != GDK_WINDOW(playlistwin->window) + || playlistwin_is_shaded()) { + prev_pos = pos; ctr = 0; if ( filepopup_win->window != NULL && gdk_window_is_viewable(GDK_WINDOW(filepopup_win->window)) ) @@ -190,8 +198,6 @@ return TRUE; } - gdk_window_get_pointer(playlistwin->window, &x, &y, NULL); - if (prev_x == x && prev_y == y) ctr++; else @@ -208,14 +214,14 @@ if (ctr >= 20 && (skip == TRUE || gdk_window_is_viewable(GDK_WINDOW(filepopup_win->window)) != TRUE)) { - pos = playlist_list_get_playlist_position(playlistwin_list, x, y); - if (pos == -1) { filepopup_hide(NULL); return TRUE; } + prev_pos = pos; + tuple = playlist_get_tuple(pos); filepopup_show_for_tuple(tuple); }