diff --git a/drivers/gdisp/SSD1289/gdisp_lld.c b/drivers/gdisp/SSD1289/gdisp_lld.c index 49600349..0f000637 100644 --- a/drivers/gdisp/SSD1289/gdisp_lld.c +++ b/drivers/gdisp/SSD1289/gdisp_lld.c @@ -95,7 +95,7 @@ static __inline void set_cursor(coord_t x, coord_t y) { } } -static __inline void set_viewport(coord_t x, coord_t y, coord_t cx, coord_t cy) { +void set_viewport(coord_t x, coord_t y, coord_t cx, coord_t cy) { set_cursor(x, y); @@ -134,6 +134,19 @@ static __inline void set_viewport(coord_t x, coord_t y, coord_t cx, coord_t cy) set_cursor(x, y); } +void reset_viewport(void) { + switch(GDISP.Orientation) { + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + set_viewport(0, 0, GDISP_SCREEN_WIDTH, GDISP_SCREEN_HEIGHT); + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + set_viewport(0, 0, GDISP_SCREEN_HEIGHT, GDISP_SCREEN_WIDTH); + break; + } +} + /*===========================================================================*/ /* Driver interrupt handlers. */ /*===========================================================================*/ diff --git a/src/ginput/mouse.c b/src/ginput/mouse.c index 5e762ef9..01689283 100644 --- a/src/ginput/mouse.c +++ b/src/ginput/mouse.c @@ -527,6 +527,10 @@ bool_t ginputCalibrateMouse(uint16_t instance) { MouseConfig.fnsavecal(instance, (const uint8_t *)&MouseConfig.caldata, sizeof(MouseConfig.caldata)); MouseConfig.flags |= FLG_CAL_SAVED; } + + /* FIX THIS PROPERLY!!! */ + reset_viewport(); + return TRUE; #endif }