Index: mythgallery/mythgallery/glsingleview.cpp
===================================================================
--- mythgallery/mythgallery/glsingleview.cpp	(revision 10857)
+++ mythgallery/mythgallery/glsingleview.cpp	(working copy)
@@ -243,6 +243,8 @@
 
     bool wasInfo = m_info_show;
     m_info_show = false;
+    bool wasInfoShort = m_info_show_short;
+    m_info_show_short = false;
 
     QStringList actions;
     gContext->GetMainWindow()->TranslateKeyPress("Gallery", e, actions);
@@ -250,6 +252,13 @@
     float scrollX = 0.02f;
     float scrollY = 0.02f;
 
+    if( actions.size() == 0 ) {
+        handled = false;
+        m_info_show = wasInfo;
+        m_info_show_short = true;
+        m_slideshow_running = wasRunning;
+    }
+
     for (unsigned int i = 0; i < actions.size() && !handled; i++)
     {
         QString action = actions[i];
@@ -257,10 +266,14 @@
 
         if (action == "LEFT" || action == "UP")
         {
+            m_info_show = wasInfo;
+            m_slideshow_running = wasRunning;
             DisplayPrev(true, true);
         }
         else if (action == "RIGHT" || action == "DOWN")
         {
+            m_info_show = wasInfo;
+            m_slideshow_running = wasRunning;
             DisplayNext(true, true);
         }
         else if (action == "ZOOMOUT")
@@ -380,6 +393,8 @@
                 item->SetPixmap(NULL);
                 DisplayNext(true, true);
             }
+            m_info_show = wasInfo;
+            m_slideshow_running = wasRunning;
         }
         else if (action == "PLAY" || action == "SLIDESHOW" ||
                  action == "RANDOMSHOW")
@@ -387,25 +402,36 @@
             m_source_x   = 0;
             m_source_y   = 0;
             SetZoom(1.0f);
+            m_info_show = wasInfo;
+            m_info_show_short = true;
             m_slideshow_running = !wasRunning;
         }
         else if (action == "INFO")
         {
-            m_info_show = !wasInfo;
+            m_info_show = !wasInfo && !wasInfoShort;
+            m_slideshow_running = wasRunning;
         }
         else
+        {
             handled = false;
+            m_info_show = wasInfo;
+            m_info_show_short = true;
+            m_slideshow_running = wasRunning;
+        }
     }
 
+    if (m_slideshow_running || m_info_show_short)
+    {
+        m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
+    }
     if (m_slideshow_running)
     {
-        m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
         gContext->DisableScreensaver();
     }
 
+    updateGL();
     if (handled)
     {
-        updateGL();
         e->accept();
     }
     else {
@@ -423,7 +449,7 @@
 
     m_texItem[m_texCur].MakeQuad();
 
-    if (m_info_show)
+    if (m_info_show || m_info_show_short)
     {
         createTexInfo();
 
@@ -1150,38 +1176,45 @@
             // timed out after showing current image
             // load next image and start effect
 
-            if (m_effect_random)
-                m_effect_method = GetRandomEffect();
+            if (m_slideshow_running)
+            {
+                if (m_effect_random)
+                    m_effect_method = GetRandomEffect();
 
-            DisplayNext(false, false);
+                DisplayNext(false, false);
 
-            wasMovie = m_movieState > 0;
-            LoadImage();
-            isMovie = m_movieState > 0;
-            // If transitioning to/from a movie, don't do an effect,
-            // and shorten timeout
-            if (wasMovie || isMovie)
-            {
-                m_slideshow_frame_delay_state = 1;
+                wasMovie = m_movieState > 0;
+                LoadImage();
+                isMovie = m_movieState > 0;
+                // If transitioning to/from a movie, don't do an effect,
+                // and shorten timeout
+                if (wasMovie || isMovie)
+                {
+                    m_slideshow_frame_delay_state = 1;
+                }
+                else
+                {
+                    m_slideshow_frame_delay_state = 10;
+                    m_effect_running = true;
+                    m_effect_current_frame = 0;
+                }
+                m_effect_frame_time.restart();
             }
-            else
-            {
-                m_slideshow_frame_delay_state = 10;
-                m_effect_running = true;
-                m_effect_current_frame = 0;
-            }
-            m_effect_frame_time.restart();
+            m_info_show_short = false;
         }
     }
 
     updateGL();
-    m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
+    if (m_slideshow_running)
+    {
+        m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
 
-    // If transitioning to/from a movie, no effect is running so
-    // next timeout should trigger proper immage delay.
-    if (wasMovie || isMovie)
-    {
-        m_slideshow_frame_delay_state = -1;
+        // If transitioning to/from a movie, no effect is running so
+        // next timeout should trigger proper immage delay.
+        if (wasMovie || isMovie)
+        {
+            m_slideshow_frame_delay_state = -1;
+        }
     }
 }
 
@@ -1190,7 +1223,7 @@
     if (m_texInfo)
         glDeleteTextures(1, &m_texInfo);
 
-    QString info = m_texItem[m_texCur].GetDescription();
+    QString info = m_texItem[m_texCur].GetDescription(GetDescriptionStatus());
     if (info.isEmpty())
         return;
 
Index: mythgallery/mythgallery/thumbview.cpp
===================================================================
--- mythgallery/mythgallery/thumbview.cpp	(revision 10857)
+++ mythgallery/mythgallery/thumbview.cpp	(working copy)
@@ -90,11 +90,12 @@
     return GalleryUtil::GetNaturalRotation(m_path);
 }
 
-QString ThumbItem::GetDescription(const QSize &sz, int angle) const
+QString ThumbItem::GetDescription(const QString status, const QSize &sz, int angle) const
 {
     QFileInfo fi(GetPath());
 
     QString info = GetName();
+    info += status;
     info += "\n\n" + QObject::tr("Folder: ") + fi.dir().dirName();
     info += "\n" + QObject::tr("Created: ") + fi.created().toString();
     info += "\n" + QObject::tr("Modified: ") +
Index: mythgallery/mythgallery/singleview.cpp
===================================================================
--- mythgallery/mythgallery/singleview.cpp	(revision 10857)
+++ mythgallery/mythgallery/singleview.cpp	(working copy)
@@ -239,7 +239,7 @@
                 p.end();
             }
 
-            if (m_info_show)
+            if (m_info_show || m_info_show_short)
             {
                 if (!m_info_pixmap)
                 {
@@ -255,7 +255,7 @@
                 ThumbItem *item = m_itemList.at(m_pos);
                 QString info = QString::null;
                 if (item)
-                    info = item->GetDescription(m_image.size(), m_angle);
+                    info = item->GetDescription(GetDescriptionStatus(), m_image.size(), m_angle);
 
                 if (!info.isEmpty())
                 {
@@ -292,6 +292,8 @@
 
     bool wasInfo = m_info_show;
     m_info_show = false;
+    bool wasInfoShort = m_info_show_short;
+    m_info_show_short = false;
     
     QStringList actions;
     gContext->GetMainWindow()->TranslateKeyPress("Gallery", e, actions);
@@ -299,6 +301,13 @@
     int scrollX = (int)(10*wmult);
     int scrollY = (int)(10*hmult);
     
+    if( actions.size() == 0 ) {
+        handled = false;
+        m_info_show = wasInfo;
+        m_info_show_short = true;
+        m_slideshow_running = wasRunning;
+    }
+
     for (unsigned int i = 0; i < actions.size() && !handled; i++)
     {
         QString action = actions[i];
@@ -306,10 +315,14 @@
 
         if (action == "LEFT" || action == "UP")
         {
+            m_info_show = wasInfo;
+            m_slideshow_running = wasRunning;
             DisplayPrev(true, true);
         }
         else if (action == "RIGHT" || action == "DOWN")
         {
+            m_info_show = wasInfo;
+            m_slideshow_running = wasRunning;
             DisplayNext(true, true);
         }
         else if (action == "ZOOMOUT")
@@ -431,6 +444,8 @@
                 item->SetPixmap(NULL);
                 DisplayNext(true, true);
             }
+            m_info_show = wasInfo;
+            m_slideshow_running = wasRunning;
         }
         else if (action == "PLAY" || action == "SLIDESHOW" ||
                  action == "RANDOMSHOW")
@@ -438,25 +453,36 @@
             m_source_loc = QPoint(0, 0);
             m_zoom = 1.0f;
             m_angle = 0;
+            m_info_show = wasInfo;
+            m_info_show_short = true;
             m_slideshow_running = !wasRunning;
         }
         else if (action == "INFO")
         {
-            m_info_show = !wasInfo;
+            m_info_show = !wasInfo && !wasInfoShort;
+            m_slideshow_running = wasRunning;
         }
         else 
+        {
             handled = false;
+            m_info_show = wasInfo;
+            m_info_show_short = true;
+            m_slideshow_running = wasRunning;
+        }
     }
 
+    if (m_slideshow_running || m_info_show_short)
+    {
+        m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
+    }
     if (m_slideshow_running)
     {
-        m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
         gContext->DisableScreensaver();
     }
 
+    update();
     if (handled)
     {
-        update();
     }
     else
     {
@@ -1315,38 +1341,45 @@
         {
             // timed out after showing current image
             // load next image and start effect
-            if (m_effect_random)
-                m_effect_method = GetRandomEffect();
+            if (m_slideshow_running)
+            {
+                if (m_effect_random)
+                    m_effect_method = GetRandomEffect();
 
-            DisplayNext(false, false);
+                DisplayNext(false, false);
 
-            wasMovie = m_movieState > 0;
-            LoadImage();
-            isMovie = m_movieState > 0;
-            // If transitioning to/from a movie, don't do an effect,
-            // and shorten timeout
-            if (wasMovie || isMovie)
-            {
-                m_slideshow_frame_delay_state = 1;
-            }
-            else
-            {
-                CreateEffectPixmap();
-                m_effect_running = true;
-                m_slideshow_frame_delay_state = 10;
-                m_effect_current_frame = 0;
-            }
-        }   
+                wasMovie = m_movieState > 0;
+                LoadImage();
+                isMovie = m_movieState > 0;
+                // If transitioning to/from a movie, don't do an effect,
+                // and shorten timeout
+                if (wasMovie || isMovie)
+                {
+                    m_slideshow_frame_delay_state = 1;
+                }
+                else
+                {
+                    CreateEffectPixmap();
+                    m_effect_running = true;
+                    m_slideshow_frame_delay_state = 10;
+                    m_effect_current_frame = 0;
+                }
+            }   
+            m_info_show_short = false;
+        }
     }
 
     update();
-    m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
+    if (m_slideshow_running)
+    {
+        m_slideshow_timer->start(m_slideshow_frame_delay_state, true);
 
-    // If transitioning to/from a movie, no effect is running so 
-    // next timeout should trigger proper immage delay.
-    if (wasMovie || isMovie)
-    {
-        m_slideshow_frame_delay_state = -1;
+        // If transitioning to/from a movie, no effect is running so 
+        // next timeout should trigger proper immage delay.
+        if (wasMovie || isMovie)
+        {
+            m_slideshow_frame_delay_state = -1;
+        }
     }
 }
 
Index: mythgallery/mythgallery/imageview.cpp
===================================================================
--- mythgallery/mythgallery/imageview.cpp	(revision 10857)
+++ mythgallery/mythgallery/imageview.cpp	(working copy)
@@ -41,6 +41,7 @@
 
       // Info variables
       m_info_show(false),
+      m_info_show_short(false),
 
       // Common slideshow variables
       m_slideshow_running(false),
@@ -108,11 +109,13 @@
     if (slideShow > 1)
     {
         m_slideshow_sequence = new SequenceShuffle(m_itemList.count());
+        m_slideshow_mode = "Random Slideshow";
         m_pos = 0;
     }
     else
     {
         m_slideshow_sequence = new SequenceInc(m_itemList.count());
+        m_slideshow_mode = "Slideshow";
     }
 
     m_pos = m_slideshow_sequence->index(m_pos);
@@ -163,3 +166,16 @@
 
     lcd->switchToGeneric(&textItems);
 }
+
+const QString ImageView::GetDescriptionStatus(void)
+{
+    QString info;
+
+    if( m_slideshow_running ) {
+            info = " [" + QObject::tr(m_slideshow_mode) + "]";
+    } else {
+            info = " [" + QObject::tr("Paused") + "]";
+    }
+
+    return info;
+}
Index: mythgallery/mythgallery/thumbview.h
===================================================================
--- mythgallery/mythgallery/thumbview.h	(revision 10857)
+++ mythgallery/mythgallery/thumbview.h	(working copy)
@@ -49,7 +49,7 @@
     QString GetCaption(void) const { return m_caption;            }
     QString GetPath(void)    const { return m_path;               }
     bool    IsDir(void)      const { return m_isDir;              }
-    QString GetDescription(const QSize &sz, int angle) const;
+    QString GetDescription(const QString status, const QSize &sz, int angle) const;
 
     // non-const gets
     QPixmap         *GetPixmap(void)      { return m_pixmap;      }
Index: mythgallery/mythgallery/imageview.h
===================================================================
--- mythgallery/mythgallery/imageview.h	(revision 10857)
+++ mythgallery/mythgallery/imageview.h	(working copy)
@@ -58,6 +58,7 @@
     virtual void RunEffect(const QString &effect) = 0;
 
     void UpdateLCD(const ThumbItem *item);
+    const QString GetDescriptionStatus(void);
   protected:
     QSize                  m_screenSize;
     float                  m_wmult;
@@ -68,6 +69,7 @@
     float                  m_zoom;
 
     bool                   m_info_show;
+    bool                   m_info_show_short;
 
     // Common slideshow variables
     bool                   m_slideshow_running;
@@ -77,6 +79,7 @@
     int                    m_slideshow_frame_delay;
     int                    m_slideshow_frame_delay_state;
     QTimer                *m_slideshow_timer;
+    const char            *m_slideshow_mode;
 
     // Common effect state variables
     bool                   m_effect_running;
Index: mythgallery/mythgallery/gltexture.cpp
===================================================================
--- mythgallery/mythgallery/gltexture.cpp	(revision 10857)
+++ mythgallery/mythgallery/gltexture.cpp	(working copy)
@@ -104,10 +104,10 @@
     }
 }
 
-QString GLTexture::GetDescription(void) const
+QString GLTexture::GetDescription(const QString status) const
 {
     if (item)
-        return item->GetDescription(GetSize(), angle);
+        return item->GetDescription(status, GetSize(), angle);
 
     return QString::null;
 }
Index: mythgallery/mythgallery/gltexture.h
===================================================================
--- mythgallery/mythgallery/gltexture.h	(revision 10857)
+++ mythgallery/mythgallery/gltexture.h	(working copy)
@@ -59,7 +59,7 @@
     float   GetTextureX(void)    const { return cx; }
     float   GetTextureY(void)    const { return cy; }
     int     GetAngle(void)       const { return angle; }
-    QString GetDescription(void) const;
+    QString GetDescription(const QString status) const;
 
   private:
     GLuint     tex;
