From 28cb15c61c0a4aa5726a88c2a797ffe1d1fea266 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Sep 2019 21:20:33 +0200 Subject: [PATCH] capslock-icon: Draw the icon on show Mark the display area where the icon is as damaged on show to force it being drawn on show, in case capslock is on at show time. Signed-off-by: Hans de Goede --- .../ply-capslock-icon.c | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/libply-splash-graphics/ply-capslock-icon.c b/src/libply-splash-graphics/ply-capslock-icon.c index aa35c60f..7d19a187 100644 --- a/src/libply-splash-graphics/ply-capslock-icon.c +++ b/src/libply-splash-graphics/ply-capslock-icon.c @@ -95,6 +95,15 @@ ply_capslock_icon_update_state (ply_capslock_icon_t *capslock_icon) capslock_icon->is_on = ply_renderer_get_capslock_state (renderer); } +static void +ply_capslock_icon_draw (ply_capslock_icon_t *capslock_icon) +{ + ply_pixel_display_draw_area (capslock_icon->display, + capslock_icon->x, capslock_icon->y, + capslock_icon->width, + capslock_icon->height); +} + static void on_timeout (void *user_data, ply_event_loop_t *loop) @@ -104,12 +113,8 @@ on_timeout (void *user_data, ply_capslock_icon_update_state (capslock_icon); - if (capslock_icon->is_on != old_is_on) { - ply_pixel_display_draw_area (capslock_icon->display, - capslock_icon->x, capslock_icon->y, - capslock_icon->width, - capslock_icon->height); - } + if (capslock_icon->is_on != old_is_on) + ply_capslock_icon_draw (capslock_icon); ply_event_loop_watch_for_timeout (capslock_icon->loop, 1.0 / FRAMES_PER_SECOND, @@ -160,6 +165,8 @@ ply_capslock_icon_show (ply_capslock_icon_t *capslock_icon, capslock_icon->x = x; capslock_icon->y = y; + ply_capslock_icon_draw (capslock_icon); + ply_event_loop_watch_for_timeout (capslock_icon->loop, 1.0 / FRAMES_PER_SECOND, on_timeout, capslock_icon); @@ -175,10 +182,7 @@ ply_capslock_icon_hide (ply_capslock_icon_t *capslock_icon) capslock_icon->is_hidden = true; - ply_pixel_display_draw_area (capslock_icon->display, - capslock_icon->x, capslock_icon->y, - capslock_icon->width, - capslock_icon->height); + ply_capslock_icon_draw (capslock_icon); ply_event_loop_stop_watching_for_timeout (capslock_icon->loop, (ply_event_loop_timeout_handler_t) -- 2.47.3