[banshee] Don't activate the full-screen while in mini-mode (bgo#573068)



commit 49e9c1fba754d81348cc784de221cdf06d4effa4
Author: Alexander Kojevnikov <alexander kojevnikov com>
Date:   Fri May 15 11:33:29 2009 +1000

    Don't activate the full-screen while in mini-mode (bgo#573068)
---
 .../Banshee.MiniMode/MiniModeWindow.cs             |   38 +++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs b/src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs
index 197a800..76c8c8b 100644
--- a/src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs
+++ b/src/Extensions/Banshee.MiniMode/Banshee.MiniMode/MiniModeWindow.cs
@@ -164,12 +164,15 @@ namespace Banshee.MiniMode
 
             default_main_window.Hide ();
 
+            OverrideFullscreen ();
+
             Show ();
         }
 
         public void Disable ()
         {
             Hide ();
+            RelinquishFullscreen ();
             default_main_window.Show ();
         }
 
@@ -218,7 +221,40 @@ namespace Banshee.MiniMode
                 SetHeightLimit ();
             } catch (Exception) {
             }
-        }        
+        }
+
+#region Mini-mode Fullscreen Override
+
+        private ViewActions.FullscreenHandler previous_fullscreen_handler;
+
+        private void OverrideFullscreen ()
+        {
+            InterfaceActionService service = ServiceManager.Get<InterfaceActionService> (); 
+            if (service == null || service.ViewActions == null) {
+                return;
+            }
+
+            previous_fullscreen_handler = service.ViewActions.Fullscreen;
+            service.ViewActions.Fullscreen = FullscreenHandler;
+        }
+
+        private void RelinquishFullscreen ()
+        {
+            InterfaceActionService service = ServiceManager.Get<InterfaceActionService> (); 
+            if (service == null || service.ViewActions == null) {
+                return;
+            }
+
+            service.ViewActions.Fullscreen = previous_fullscreen_handler;
+        }
+
+        private void FullscreenHandler (bool fullscreen)
+        {
+            // Do nothing, we don't want full-screen while in mini-mode.
+        }
+
+#endregion
+
     }
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]