diff --git a/Launcher2/Gui/Widgets/LauncherBooleanWidget.cs b/Launcher2/Gui/Widgets/LauncherBooleanWidget.cs
index 09aea7bf1..61fc1d8b2 100644
--- a/Launcher2/Gui/Widgets/LauncherBooleanWidget.cs
+++ b/Launcher2/Gui/Widgets/LauncherBooleanWidget.cs
@@ -22,6 +22,7 @@ namespace Launcher2 {
}
public override void Redraw( IDrawer2D drawer ) {
+ if( Window.Minimised ) return;
drawer.DrawRect( FastColour.Black, X, Y, Width, Height );
if( Value ) {
DrawTextArgs args = new DrawTextArgs( "X", font, false );
diff --git a/Launcher2/Gui/Widgets/LauncherButtonWidget.cs b/Launcher2/Gui/Widgets/LauncherButtonWidget.cs
index d71f2ee3b..ebeb20844 100644
--- a/Launcher2/Gui/Widgets/LauncherButtonWidget.cs
+++ b/Launcher2/Gui/Widgets/LauncherButtonWidget.cs
@@ -27,6 +27,7 @@ namespace Launcher2 {
}
public override void Redraw( IDrawer2D drawer ) {
+ if( Window.Minimised ) return;
string text = Text;
if( !Active ) text = "&7" + text;
int xOffset = Width - textSize.Width, yOffset = Height - textSize.Height;
@@ -62,11 +63,13 @@ namespace Launcher2 {
}
public void RedrawBackground() {
+ if( Window.Minimised ) return;
using( FastBitmap dst = new FastBitmap( Window.Framebuffer, true ) )
RedrawBackground( dst );
}
public void RedrawBackground( FastBitmap dst ) {
+ if( Window.Minimised ) return;
Rectangle rect = new Rectangle( X + border, Y + border, Width - border * 2, Height - border * 2 );
if( Window.ClassicMode ) {
FastColour foreCol = Active ? new FastColour( 126, 136, 191 ) : new FastColour( 111, 111, 111 );
diff --git a/Launcher2/Gui/Widgets/LauncherInputWidget.cs b/Launcher2/Gui/Widgets/LauncherInputWidget.cs
index 4bf9b3b70..19c10ab5f 100644
--- a/Launcher2/Gui/Widgets/LauncherInputWidget.cs
+++ b/Launcher2/Gui/Widgets/LauncherInputWidget.cs
@@ -73,7 +73,8 @@ namespace Launcher2 {
Size size = drawer.MeasureSize( ref args );
Width = Math.Max( ButtonWidth, size.Width + 15 );
textHeight = size.Height;
- args.SkipPartsCheck = true;
+ args.SkipPartsCheck = true;
+ if( Window.Minimised ) return;
FastColour col = Active ? new FastColour( 240, 240, 240 ) : new FastColour( 180, 180, 180 );
drawer.Clear( col, X + 1, Y, Width - 2, 2 );
diff --git a/Launcher2/Gui/Widgets/LauncherLabelWidget.cs b/Launcher2/Gui/Widgets/LauncherLabelWidget.cs
index 8addff9a9..a78f71e9f 100644
--- a/Launcher2/Gui/Widgets/LauncherLabelWidget.cs
+++ b/Launcher2/Gui/Widgets/LauncherLabelWidget.cs
@@ -24,6 +24,7 @@ namespace Launcher2 {
}
public override void Redraw( IDrawer2D drawer ) {
+ if( Window.Minimised ) return;
DrawTextArgs args = new DrawTextArgs( Text, font, true );
drawer.DrawText( ref args, X, Y );
}
diff --git a/Launcher2/LauncherWindow.cs b/Launcher2/LauncherWindow.cs
index 4cd0798fd..840cd6c77 100644
--- a/Launcher2/LauncherWindow.cs
+++ b/Launcher2/LauncherWindow.cs
@@ -44,6 +44,10 @@ namespace Launcher2 {
/// Whether at the next tick, the launcher window should proceed to stop displaying frames and subsequently exit.
public bool ShouldExit;
+ public bool Minimised {
+ get { return Window.WindowState == WindowState.Minimized || (Width == 1 && Height == 1); }
+ }
+
/// Contains metadata attached for different screen instances,
/// typically used to save 'last text entered' text when a screen is disposed.
public Dictionary> ScreenMetadata =
@@ -60,6 +64,7 @@ namespace Launcher2 {
logoFont = new Font( "Arial", 24, FontStyle.Regular );
string path = Assembly.GetExecutingAssembly().Location;
Window.Icon = Icon.ExtractAssociatedIcon( path );
+ //Minimised = Window.WindowState == WindowState.Minimized;
if( Configuration.RunningOnWindows )
platformDrawer = new WinPlatformDrawer();