--- mythvideo/mythvideo/videogallery.cpp 2008-09-19 03:43:19.000000000 -0600 +++ mythvideo/mythvideo/videogallery.cpp.new 2008-09-19 03:27:28.000000000 -0600 @@ -783,11 +783,22 @@ void VideoGallery::positionIcon() // determine which part of the list is shown computeLastRowCol(where_we_are->siblingCount()); - topRow = QMIN(currRow, QMAX(lastRow - nRows + 1, 0)); + + GenericTree *lparent = where_we_are->getParent(); + if (lparent && lparent != video_tree_root) + topRow = QMIN(currRow, QMAX(lastRow - nRows + 1, 0)); + else + topRow = mainTopRow; } void VideoGallery::handleDirSelect() { + + // Set the main top row if we are leaving video tree root + GenericTree *lparent = where_we_are->getParent(); + if (lparent && lparent == video_tree_root) + mainTopRow = topRow; + // move one node down in the video tree int list_count = where_we_are->childCount(); if (list_count > 0) // should be --- mythvideo/mythvideo/videogallery.h 2008-09-19 03:43:19.000000000 -0600 +++ mythvideo/mythvideo/videogallery.h.new 2008-09-19 03:20:33.000000000 -0600 @@ -75,6 +75,7 @@ class VideoGallery : public VideoDialog int lastRow; int lastCol; int topRow; + int mainTopRow; int nRows; int nCols;