From: Hans de Goede Date: Mon, 30 Sep 2019 19:20:33 +0000 (+0200) Subject: capslock-icon: Draw the icon on show X-Git-Tag: 0.9.5~34^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=28cb15c61c0a4aa5726a88c2a797ffe1d1fea266;p=thirdparty%2Fplymouth.git 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 --- 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)