The screen is rotated to 90 and the cursor in the input box is not working

Description

Using the screen rotation function lv_disp_set_rotation(NULL, LV_DISP_ROT_90), rotate the screen to 90. The cursor of the input box control appears with a black stripe (the default is portrait, rotated to landscape), and when you animate to return to the previous screen, it also appears with a black stripe.

What MCU/Processor/Board and compiler are you using?

君正x2000

What LVGL version are you using?

v8.3.4

What do you want to achieve?

Want to achieve screen rotation, control normal display.

What have you tried so far?

1.At first, I thought it was full_cb, so I printed the refresh coordinates, but it turned out that full_cb was called and x returned negative coordinates.
2.I’ll start with the layer set to lv_typer_top(), invalid.
3.I set the default screen orientation to 90 when I started disp_init, and the result was the same.
4.Currently I can only mask the relevant coordinates, which causes the cursor to refresh only 1/2.

Code to reproduce

void lv_port_disp_init(void)
{
    /*------------------------- 
     * Initialize your display
     * -----------------------*/
    fbdev_init();
        static lv_disp_draw_buf_t draw_buf_dsc_3;
    static lv_color_t buf_3_1[MY_DISP_HOR_RES * MY_DISP_VER_RES];            /*A screen sized buffer*/
    static lv_color_t buf_3_2[MY_DISP_HOR_RES * MY_DISP_VER_RES];            /*Another screen sized buffer*/
    lv_disp_draw_buf_init(&draw_buf_dsc_3, buf_3_1, buf_3_2,                                                
                          MY_DISP_VER_RES * MY_DISP_VER_RES);   /*Initialize the display buffer*/
    /*-----------------------------------
     * Register the display in LVGL
     *----------------------------------*/

    static lv_disp_drv_t disp_drv;                         /*Descriptor of a display driver*/
    lv_disp_drv_init(&disp_drv);                    /*Basic initialization*/

    /*Set up the functions to access to your display*/

    /*Set the resolution of the display*/
    disp_drv.hor_res = MY_DISP_HOR_RES;
    disp_drv.ver_res = MY_DISP_VER_RES;

    /*Used to copy the buffer's content to the display*/
    disp_drv.flush_cb = fbdev_flush;

    /*Set a display buffer*/
    disp_drv.draw_buf = &draw_buf_dsc_3;

    /*Rotate*/
    disp_drv.sw_rotate = 1;
    disp_drv.rotated = LV_DISP_ROT_NONE;
    /*Finally register the driver*/
    lv_disp_drv_register(&disp_drv);
}

This is the original code that had the truncation in it, and I tried to remove the screen truncation, but obviously negative values crash.(Here I’ve added two printf functions)

void fbdev_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_p)
{
    if(fbp == NULL ||
            area->x2 < 0 ||
            area->y2 < 0 ||
            area->x1 > (int32_t)vinfo.xres - 1 ||
            area->y1 > (int32_t)vinfo.yres - 1) {
        lv_disp_flush_ready(drv);
        return;
    }
    printf("x1 = %d, y1 = %d\nx2 = %d, y2 = %d\n", area->x1, area->y1, area->x2, area->y2);

    /*Truncate the area to the screen*/
    int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
    int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
    int32_t act_x2 = area->x2 > (int32_t)vinfo.xres - 1 ? (int32_t)vinfo.xres - 1 : area->x2;
    int32_t act_y2 = area->y2 > (int32_t)vinfo.yres - 1 ? (int32_t)vinfo.yres - 1 : area->y2;

    printf("x1 = %d, y1 = %d\nx2 = %d, y2 = %d\n", act_x1, act_y1, act_x2, act_y2);

    lv_coord_t w = (act_x2 - act_x1 + 1);
    long int location = 0;

    /*32 or 24 bit per pixel*/
    if(vinfo.bits_per_pixel == 32 || vinfo.bits_per_pixel == 24) {
        uint32_t * fbp32 = (uint32_t *)fbp;
        int32_t y;
        for(y = act_y1; y <= act_y2; y++) {
            location = (act_x1 + vinfo.xoffset) + (y + vinfo.yoffset) * finfo.line_length / 4;
            memcpy(&fbp32[location], (uint32_t *)color_p, (act_x2 - act_x1 + 1) * 4);
            color_p += w;
        }
    }
    lv_disp_flush_ready(drv);
}

Screenshot and/or video

If possible, add screenshots and/or videos about the current state.