Aiuto Istruzione void waitForIt(int x1, int y1, int x2, int y2)

Ciao a tutti, ho realizzato un sketch prendendo spunto su un tutorial semplice e ampliato da parte mia.
Ho un display touch screen, "UTFT myLCD(SSD1289,38,39,40,41);" ho realizzato due maschere con due pulsanti. maschera 1 pulsante 1 e maschera 2 pulsante 2.
Ora mi si crea questa situazione se premo il pulsate 1 su maschera 1 si sposta in maschera 2 però in maschera 2 mi rimane anche se non si vede il pulsante numero 1. Infatti se vado a cliccare in corrispondenza del pulsante 1 noto che mi ricarica la maschera 2. Come faccio ad azzerare la maschera 2 in modo che mi toglie il pulsante fantasma 1 ? Chi mi sa spiegare la funzione "waitForIt"

#include <UTFT.h>
#include <UTouch.h>
#include <dht11.h>
#define DHT11_PIN 10
dht11 DHT;

  UTFT    LCD(SSD1289,38,39,40,41);
  UTouch  TOUCH(  21, 20, 19, 18, 17);
  extern uint8_t BigFont[];
  extern uint8_t SmallFont[];
  const int ledVerde=8;
  const int ledRosso=9;
  const int vcc=13;
  int triggerPort = 6;
  int echoPort = 7;
  int r;
  const int pinLux = 0;
  int sensLux = 0;
void setup()
{
  pinMode(triggerPort,OUTPUT);
  pinMode(echoPort, INPUT);
  Serial.begin(9600);
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
  pinMode(vcc,OUTPUT);
  digitalWrite(vcc,HIGH);
  pinMode(ledRosso,OUTPUT);
  pinMode(ledVerde,OUTPUT);
  digitalWrite(ledRosso,LOW);
  digitalWrite(ledVerde,LOW);
  LCD.InitLCD(LANDSCAPE);
  LCD.clrScr();
  TOUCH.InitTouch(LANDSCAPE);
  TOUCH.setPrecision(PREC_MEDIUM);
  LCD.setFont(BigFont);
  LCD.setBackColor (0,0,0);
  LCD.setColor(255,255,155);
  disegnaGraficaHomePage();
  disegnaTasti();
  //Cucina();
}


void waitForIt(int x1, int y1, int x2, int y2)
{
 LCD.setColor(0, 168, 107);
 LCD.drawRoundRect (x1, y1, x2, y2);
 while (TOUCH.dataAvailable())
 TOUCH.read();
 LCD.setColor(0, 168, 107);
 LCD.drawRoundRect (x1, y1, x2, y2);
}

void loop(){
  int chk;
  chk =DHT.read(DHT11_PIN);
  int senLux = analogRead(pinLux);
{
 //porta bassa l'uscita del trigger
  digitalWrite( triggerPort, LOW );
 //invia un impulso di 10microsec su trigger
  digitalWrite( triggerPort, HIGH );
  delayMicroseconds( 10 );
  digitalWrite( triggerPort, LOW );
  long duration = pulseIn( echoPort, HIGH );
  long r = 0.034 * duration / 2;                
  if(r <= 99 && r > 3){
    LCD.setFont(BigFont);
    LCD.print(String((int)r), 200, 60);
  }  
}
 // DISPLAY DATA
  LCD.setFont(BigFont);
  LCD.print(String((int)senLux), 200, 120);
  LCD.print(String((int)DHT.temperature), 200, 30);
  LCD.print(String((int)DHT.humidity), 200, 90);
  delay(500);

  leggiTasti();
//  TastiCucina();
}

//GRAFICA PAGINA INIZIALE
void disegnaGraficaHomePage()
{
  LCD.print("VALORI ATTUALI", CENTER, 0);
  LCD.print("Temperatura: ", 0, 30);
  LCD.print("Distanza:", 0, 60); 
  LCD.print("Umidita': ", 0, 90);
  LCD.print("Luminosita'",0,120);
  LCD.print("C", 250, 30);
  LCD.print("cm", 250, 60);
  LCD.print("%", 250, 90);
  LCD.print("db",250,120);
}

//METODO PER DISEGNARE I TASTI

void disegnaTasti()
{
 //TASTO ON VERDE
 //IMPOSTO IL COLORE DELLO SFONDO E IL COLORE DI SCRITTURA
  LCD.setFont(SmallFont);
  LCD.setBackColor(0,255,0);
  LCD.setColor(0,255,0);

 //DISEGNO E COLORO UN RETTANGOLO CON IL COLORE IMPOSTATO
  //TASTO OFF VERDE
  LCD.fillRoundRect (10,160,40,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",15,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,255,255);

 //TASTO ON VERDE
  LCD.setBackColor(0,255,0);
  LCD.setColor(0,255,0);
  LCD.fillRoundRect (10,200,40,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",15,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,255,255);

 //TASTO OFF ROSSO
  LCD.setBackColor(255,0,0);
  LCD.setColor(255,0,0);
  LCD.fillRoundRect (50,160,80,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",55,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

 //TASTO ON ROSSO
  LCD.setBackColor(255,0,0);
  LCD.setColor(255,0,0);
  LCD.fillRoundRect (50,200,80,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",55,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);
/*
//TASTO OFF BLU
  LCD.setBackColor(0,127,255);
  LCD.setColor(0,127,255);
  LCD.fillRoundRect (90,160,120,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",95,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

 //TASTO ON BLU
  LCD.setBackColor(0,127,255);
  LCD.setColor(0,127,255);
  LCD.fillRoundRect (90,200,120,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",95,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

//TASTO OFF GIALLO
  LCD.setBackColor(255,255,0);
  LCD.setColor(255,255,0);
  LCD.fillRoundRect (130,160,160,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",135,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

 //TASTO ON GIALLO
  LCD.setBackColor(255,255,0);
  LCD.setColor(255,255,0);
  LCD.fillRoundRect (130,200,160,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",135,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

  //TASTO OFF GRIGIO
  LCD.setBackColor(178,178,178);
  LCD.setColor(178,178,178);
  LCD.fillRoundRect (170,160,200,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",175,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

 //TASTO ON GRIGIO
  LCD.setBackColor(178,178,178);
  LCD.setColor(178,178,178);
  LCD.fillRoundRect (170,200,200,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",175,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);
  
   //TASTO OFF CELESTE
  LCD.setBackColor(0,204,204);
  LCD.setColor(0,204,204);
  LCD.fillRoundRect (210,160,240,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",215,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

 //TASTO ON CELESTE
  LCD.setBackColor(0,204,204);
  LCD.setColor(0,204,204);
  LCD.fillRoundRect (210,200,240,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",215,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);
  
     //TASTO OFF ROSA
  LCD.setBackColor(255,209,220);
  LCD.setColor(255,209,220);
  LCD.fillRoundRect (250,160,280,190);
  LCD.setColor(0,0,0);
  LCD.print("OFF",255,170);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);

 //TASTO ON ROSA
  LCD.setBackColor(255,209,220);
  LCD.setColor(255,209,220);
  LCD.fillRoundRect (250,200,280,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",255,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);
*/  
}
 //METODO PER LEGGERE I TASTI PREMUTI
  void leggiTasti()
{
  if (TOUCH.dataAvailable())
{
  TOUCH.read();
  int x=TOUCH.getX();
  int y=TOUCH.getY();
  if((x>=10) && (x<=40)) 
{
  if((y>=160) && (y<=190))
{
  LED_verde(true);// led verde si accende
  Cucina();
}
  if((y>=200) && (y<=230))
{
   LED_verde(false); // led verde si spegne
}
}
/*  if((x>=50) && (x<=80)) 
{
  if((y>=160) && (y<=190))
{
  LED_rosso(true);
}
  if((y>=200) && (y<=230))
  {
  LED_rosso(false);
}
}
}
*/
}
void LED_verde(boolean stato)
{
  if(stato)
{
  digitalWrite(ledVerde,HIGH);
}
  else
{
  digitalWrite(ledVerde,LOW);
}
}
void LED_rosso(boolean stato)
{
  if(stato)
{
  digitalWrite(ledRosso,HIGH);
}
  else
{
  digitalWrite(ledRosso,LOW);
}
}


void Cucina()
{
LCD.clrScr();
LCD.InitLCD();
  LCD.setBackColor(255,209,220);
  LCD.setColor(255,209,220);
  LCD.fillRoundRect (250,210,280,230);
  LCD.setColor(0,0,0);
  LCD.print("ON",255,210);
  LCD.setBackColor(0,0,0);
  LCD.setColor(255,0,0);
 if (TOUCH.dataAvailable())
{
  TOUCH.read();
  int x=TOUCH.getX();
  int y=TOUCH.getY();
  if((x>=250) && (x<=210)) 
{
  if((y>=280) && (y<=230))
{

 // LED_verde(true);// led verde si accende
  waitForIt(250,210,280,230);
}
 }
}
}