tft lcd screen blur problem

I am new to tft lcd programming, I have Created a Rectangle on screen now when someone touches it ,it should do some work(as written in program) but when i touch the Rectangle, Screen becomes blur and white line appears over the previous screen instead of going to next screen.
I am attaching my program , Problem in the void loop() i have commented the whole as problem.
Here is what is should do when we touch Rectangle

tft.fillScreen(RED);
tft.setCursor(50,80);
tft.setTextSize(4);
tft.setTextColor(BLACK);
tft.print(“WORKING”);
Libraries i used are SPFD5408 library
P.S. : I have 2.4" SPFD5408 tft lcd touch Screen , library used is also attached.
Please Help

sketch_jun21a_try.ino (3.73 KB)

SPFD5408-master.zip (187 KB)

Please, for such a small amount of code, just post it, in code tags

The Whole Code is

// *** SPFD5408 change -- Begin
#include <SPFD5408_Adafruit_GFX.h>    // Core graphics library
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
#include <SPFD5408_TouchScreen.h>
// *** SPFD5408 change -- End

#if defined(__SAM3X8E__)
    #undef __FlashStringHelper::F(string_literal)
    #define F(string_literal) string_literal
#endif

#define YP A2  // must be an analog pin, use "An" notation!
#define XM A1  // must be an analog pin, use "An" notation!
#define YM 6   // can be a digital pin
#define XP 7   // can be a digital pin

#define TS_MINX 125
#define TS_MINY 85
#define TS_MAXX 965
#define TS_MAXY 905

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
// optional
#define LCD_RESET A4

// Assign human-readable names to some common 16-bit color values:
#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF


Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
int currentpage;

void setup() {
  Serial.begin(9600);
  tft.reset();
  tft.begin(0x9341); // SDFP5408

  tft.setRotation(1);
  HomeScreen();

}

#define MINPRESSURE 100
#define MAXPRESSURE 1000
void loop() {
// Problem======================================================================================Problem - begin
  //if(currentpage == 1)
 //{
     TSPoint t1 = ts.getPoint();
     if (t1.z > MINPRESSURE && t1.z < MAXPRESSURE)
  {
     Serial.print("X = "); Serial.print(t1.x);
    Serial.print("\tY = "); Serial.print(t1.y);
    Serial.print("\tPressure = "); Serial.println(t1.z);

     t1.x = map(t1.x, TS_MINX, TS_MAXX, 0, tft.width());
     t1.y = map(t1.y, TS_MINY, TS_MAXY, 0, tft.height());;
     Serial.print("("); Serial.print(t1.x);
    Serial.print(", "); Serial.print(t1.y);
    Serial.println(")");
     if((t1.x >= 60)&&(t1.x <= 145) && (t1.y >=171)&&(t1.y <=217))
     {
      tft.fillScreen(RED);
      tft.setCursor(50,80);
      tft.setTextSize(4);
      tft.setTextColor(BLACK);
      tft.print("WORKING");
      waitOneTouch();
      MainScreen();
     }
  }
// }
//Problem===========================================================================================Problem-ends
}
void MainScreen()
{
  currentpage =1 ;
  
  tft.fillScreen(BLACK);
  tft.drawCircle(155,115,70,WHITE);
  tft.setCursor(131,108);
  tft.setTextSize(4);
  tft.setTextColor(RED);
    tft.print("10");
    delay(1000);
  for(int i = 9;i > 0;i--)
   {
    tft.fillScreen(BLACK);
  tft.drawCircle(155,115,70,WHITE);
  tft.setCursor(143,105);
  tft.setTextSize(4);
  tft.setTextColor(RED);
    tft.print(i);
    delay(1000);
   }
   tft.fillScreen(BLACK);
  tft.drawCircle(155,115,70,WHITE);
  tft.setCursor(105,110);
  tft.setTextSize(2);
  tft.setTextColor(RED);
  tft.print("Let's Go!!");
  delay(3000);
  tft.fillScreen(BLACK);
  tft.setTextSize(2);
  tft.setCursor(10,20);
  tft.setTextColor(WHITE);
  tft.print("WELCOME TO ISS");
  tft.drawLine(0,40,319,40,WHITE);
  tft.fillRect(40,56,60,60,GREEN);
  tft.setTextSize(2);
  tft.setCursor(60,80);
  tft.setTextColor(RED);
  tft.println("OK");
    
}
void HomeScreen()
{
  currentpage = 0;
  tft.fillScreen(BLACK);
  tft.setCursor(20,10);
  tft.setTextSize(3);
  tft.setTextColor(GREEN);
  tft.println("International    Space Station");
  tft.setCursor(75,120);
  tft.setTextSize(2);
  tft.setTextColor(WHITE);
  tft.print("Touch to Launch");
  waitOneTouch();
  MainScreen();
}
TSPoint waitOneTouch() {

  // wait 1 touch to exit function
  
  TSPoint p;
  
  do {
    p= ts.getPoint(); 
  
    pinMode(XM, OUTPUT); //Pins configures again for TFT control
    pinMode(YP, OUTPUT);
  
  } while((p.z < MINPRESSURE )|| (p.z > MAXPRESSURE));
  
  return p;
}