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 <hdegoede@redhat.com>
calculate-0.9.5
Hans de Goede 5 years ago
parent 665c2852af
commit 28cb15c61c

@ -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)

Loading…
Cancel
Save