Browse Source

Merge pull request #555 from BDisp/curses-resize-color

Fixed resizing update and correct the Toplevel colors without colors.
Charlie Kindel 5 years ago
parent
commit
05c9ec7e2f
2 changed files with 12 additions and 8 deletions
  1. 10 6
      Terminal.Gui/Drivers/CursesDriver.cs
  2. 2 2
      Terminal.Gui/MonoCurses/mainloop.cs

+ 10 - 6
Terminal.Gui/Drivers/CursesDriver.cs

@@ -487,6 +487,7 @@ namespace Terminal.Gui {
 			TopTee = Curses.ACS_TTEE;
 			BottomTee = Curses.ACS_BTEE;
 
+			Colors.TopLevel = new ColorScheme ();
 			Colors.Base = new ColorScheme ();
 			Colors.Dialog = new ColorScheme ();
 			Colors.Menu = new ColorScheme ();
@@ -496,6 +497,11 @@ namespace Terminal.Gui {
 				Curses.StartColor ();
 				Curses.UseDefaultColors ();
 
+				Colors.TopLevel.Normal = MakeColor (Curses.COLOR_GREEN, Curses.COLOR_BLACK);
+				Colors.TopLevel.Focus = MakeColor (Curses.COLOR_WHITE, Curses.COLOR_CYAN);
+				Colors.TopLevel.HotNormal = MakeColor (Curses.COLOR_YELLOW, Curses.COLOR_BLACK);
+				Colors.TopLevel.HotFocus = MakeColor (Curses.COLOR_YELLOW, Curses.COLOR_CYAN);
+
 				Colors.Base.Normal = MakeColor (Curses.COLOR_WHITE, Curses.COLOR_BLUE);
 				Colors.Base.Focus = MakeColor (Curses.COLOR_BLACK, Curses.COLOR_CYAN);
 				Colors.Base.HotNormal = Curses.A_BOLD | MakeColor (Curses.COLOR_YELLOW, Curses.COLOR_BLUE);
@@ -522,6 +528,10 @@ namespace Terminal.Gui {
 				Colors.Error.HotNormal = Curses.A_BOLD | MakeColor (Curses.COLOR_YELLOW, Curses.COLOR_RED);
 				Colors.Error.HotFocus = Colors.Error.HotNormal;
 			} else {
+				Colors.TopLevel.Normal = Curses.COLOR_GREEN;
+				Colors.TopLevel.Focus = Curses.COLOR_WHITE;
+				Colors.TopLevel.HotNormal = Curses.COLOR_YELLOW;
+				Colors.TopLevel.HotFocus = Curses.COLOR_YELLOW;
 				Colors.Base.Normal = Curses.A_NORMAL;
 				Colors.Base.Focus = Curses.A_REVERSE;
 				Colors.Base.HotNormal = Curses.A_BOLD;
@@ -539,12 +549,6 @@ namespace Terminal.Gui {
 				Colors.Error.HotNormal = Curses.A_BOLD | Curses.A_REVERSE;
 				Colors.Error.HotFocus = Curses.A_REVERSE;
 			}
-			Colors.TopLevel = new ColorScheme ();
-
-			Colors.TopLevel.Normal = MakeColor (Curses.COLOR_GREEN, Curses.COLOR_BLACK);
-			Colors.TopLevel.Focus = MakeColor (Curses.COLOR_WHITE, Curses.COLOR_CYAN);
-			Colors.TopLevel.HotNormal = MakeColor (Curses.COLOR_YELLOW, Curses.COLOR_BLACK);
-			Colors.TopLevel.HotFocus = MakeColor (Curses.COLOR_YELLOW, Curses.COLOR_CYAN);
 		}
 
 		static int MapColor (Color color)

+ 2 - 2
Terminal.Gui/MonoCurses/mainloop.cs

@@ -188,7 +188,7 @@ namespace Mono.Terminal {
 			poll_dirty = false;
 
 			pollmap = new Pollfd [descriptorWatchers.Count];
-			int i = 0;
+			int i = 0;	
 			foreach (var fd in descriptorWatchers.Keys) {
 				pollmap [i].fd = fd;
 				pollmap [i].events = (short)descriptorWatchers [fd].Condition;
@@ -208,7 +208,7 @@ namespace Mono.Terminal {
 
 			while (true) {
 				n = poll (pollmap, (uint)pollmap.Length, 0);
-				if (n > 0) {
+				if (pollmap != null) {
 					break;
 				}
 				if (mainLoop.idleHandlers.Count > 0 || CkeckTimeout (wait, ref pollTimeout)) {