Explorar el Código

ccmake: Fix rendering on window resize

Repro steps: configure (without errors), the logs are displayed then the
cache is displayed again, resize the window up -> the logs are
redisplayed after resize instead of the cache

The 'CurrentForm' pointer were left pointed to the last log message
form, this resets it to the main form when configure or generate is done
Sylvain Joubert hace 6 años
padre
commit
ce99f5ee69
Se han modificado 1 ficheros con 8 adiciones y 12 borrados
  1. 8 12
      Source/CursesDialog/cmCursesMainForm.cxx

+ 8 - 12
Source/CursesDialog/cmCursesMainForm.cxx

@@ -498,10 +498,6 @@ void cmCursesMainForm::UpdateProgress(const std::string& msg, float prog)
 
 int cmCursesMainForm::Configure(int noconfigure)
 {
-  int xi;
-  int yi;
-  getmaxyx(stdscr, yi, xi);
-
   this->ResetOutputs();
 
   if (noconfigure == 0) {
@@ -559,11 +555,13 @@ int cmCursesMainForm::Configure(int noconfigure)
     if (retVal == -2) {
       return retVal;
     }
-    CurrentForm = this;
-    this->Render(1, 1, xx, yy);
   }
 
   this->InitializeUI();
+  CurrentForm = this;
+  int xi;
+  int yi;
+  getmaxyx(stdscr, yi, xi);
   this->Render(1, 1, xi, yi);
 
   return 0;
@@ -571,10 +569,6 @@ int cmCursesMainForm::Configure(int noconfigure)
 
 int cmCursesMainForm::Generate()
 {
-  int xi;
-  int yi;
-  getmaxyx(stdscr, yi, xi);
-
   this->ResetOutputs();
 
   this->UpdateProgress("Generating", 0);
@@ -614,11 +608,13 @@ int cmCursesMainForm::Generate()
     if (retVal == -2) {
       return retVal;
     }
-    CurrentForm = this;
-    this->Render(1, 1, xx, yy);
   }
 
   this->InitializeUI();
+  CurrentForm = this;
+  int xi;
+  int yi;
+  getmaxyx(stdscr, yi, xi);
   this->Render(1, 1, xi, yi);
 
   return 0;