From e336913b32b47c3d3384d71addf65aba89665b2b Mon Sep 17 00:00:00 2001 From: gemu Date: Sun, 31 Mar 2024 08:16:15 +0200 Subject: [PATCH] fix multidisplay mode (#21067) --- .../tasmota_xdrv_driver/xdrv_13_display.ino | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino index 18a387e41..2d289e1d7 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino @@ -638,14 +638,20 @@ void DisplayText(void) model = Settings->display_model; fp.read((uint8_t*)fdesc, size); fp.close(); - Renderer *svptr = renderer; - Get_display(temp); - renderer = svptr; - if (rot >= 0) { - srot = Settings->display_rotate; - Settings->display_rotate = rot; + if (renderer) { + // save ptr + Set_display(temp); + renderer = nullptr; + } else { + Renderer *svptr = renderer; + Get_display(temp); + renderer = svptr; + if (rot >= 0) { + srot = Settings->display_rotate; + Settings->display_rotate = rot; + } } - renderer = Init_uDisplay(fdesc); + renderer = Init_uDisplay(fdesc); if (rot >= 0) { Settings->display_rotate = srot; }