Screen issue when button pressed multiple times

Hi all,
I am using LVGL library for my application on nrf52840 controller where i have to create a brightness control screen.As per the requirement, i have created two buttons toe increase/decrease the brightness.
First thing i observed that button response is slow.When i press the button,it takes around 1-2 seconds to increase/decrease the brightness.Can someone guide how to improve the the response?
Second thing is when button is presses multiple times,the screen shifts to left/right side and white screen appears on the display.I have no clue why this is happening.Please suggest a solution for this as well.
Any help will be appreciated. @kisvegabor @embeddedt
I am attaching the video of the issue .(display issue.mp4 - Google Drive).
TIA.

Hi,

It seems you use disp_drv.full_refresh=1 buffering and loading a new screen really takes a lot of time. I can see it at the content is updated slowly from top to bottom. I’m not sure but it seems the interface on which you update the screen (SPI?) is the bottle neck. What is the resolution of the display and the speed of the the interface?

Regarding the screen shifting issue, please try calling lv_obj_invalidate(lv_scr_act()) after lv_timer_handler. It will update the screen at max speed. Do you see the issue in this case as well?

If so, maybe you are sending new data to display while the bus is still busy?

Hey @kisvegabor ,
thanks for the response.
I am using SPI interface for the display with 8 Mbps data rate.I checked the configuration and i am not using full refresh mode at all.
Display resolution is 240280 and buffer size used is 24050;

For the second problem,after using lv_obj_invalidate(lv_scr_act()); issue is still coming.

Please also copy your disp_flush_cb function.