mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-07 08:28:03 +02:00
Merge branch 'drm-hotplug-fixes' into 'master'
Drm hotplug fixes See merge request plymouth/plymouth!92
This commit is contained in:
commit
ae2fedb1eb
3 changed files with 24 additions and 16 deletions
|
|
@ -52,6 +52,8 @@ struct _ply_capslock_icon
|
|||
bool is_on;
|
||||
};
|
||||
|
||||
static void ply_capslock_stop_polling (ply_capslock_icon_t *capslock_icon);
|
||||
|
||||
ply_capslock_icon_t *
|
||||
ply_capslock_icon_new (const char *image_dir)
|
||||
{
|
||||
|
|
@ -74,7 +76,7 @@ ply_capslock_icon_free (ply_capslock_icon_t *capslock_icon)
|
|||
return;
|
||||
|
||||
if (!capslock_icon->is_hidden)
|
||||
ply_capslock_icon_hide (capslock_icon);
|
||||
ply_capslock_stop_polling (capslock_icon);
|
||||
|
||||
if (capslock_icon->buffer != NULL)
|
||||
ply_pixel_buffer_free (capslock_icon->buffer);
|
||||
|
|
@ -121,6 +123,14 @@ on_timeout (void *user_data,
|
|||
on_timeout, capslock_icon);
|
||||
}
|
||||
|
||||
static void
|
||||
ply_capslock_stop_polling (ply_capslock_icon_t *capslock_icon)
|
||||
{
|
||||
ply_event_loop_stop_watching_for_timeout (capslock_icon->loop,
|
||||
(ply_event_loop_timeout_handler_t)
|
||||
on_timeout, capslock_icon);
|
||||
}
|
||||
|
||||
bool
|
||||
ply_capslock_icon_load (ply_capslock_icon_t *capslock_icon)
|
||||
{
|
||||
|
|
@ -183,10 +193,8 @@ ply_capslock_icon_hide (ply_capslock_icon_t *capslock_icon)
|
|||
capslock_icon->is_hidden = true;
|
||||
|
||||
ply_capslock_icon_draw (capslock_icon);
|
||||
ply_capslock_stop_polling (capslock_icon);
|
||||
|
||||
ply_event_loop_stop_watching_for_timeout (capslock_icon->loop,
|
||||
(ply_event_loop_timeout_handler_t)
|
||||
on_timeout, capslock_icon);
|
||||
capslock_icon->loop = NULL;
|
||||
capslock_icon->display = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,9 +130,6 @@ ply_keymap_icon_free (ply_keymap_icon_t *keymap_icon)
|
|||
if (keymap_icon == NULL)
|
||||
return;
|
||||
|
||||
if (!keymap_icon->is_hidden)
|
||||
ply_keymap_icon_hide (keymap_icon);
|
||||
|
||||
ply_pixel_buffer_free (keymap_icon->icon_buffer);
|
||||
ply_pixel_buffer_free (keymap_icon->keymap_buffer);
|
||||
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ struct _ply_throbber
|
|||
uint32_t is_stopped : 1;
|
||||
};
|
||||
|
||||
static void ply_throbber_stop_now (ply_throbber_t *throbber);
|
||||
static void ply_throbber_stop_now (ply_throbber_t *throbber, bool redraw);
|
||||
|
||||
ply_throbber_t *
|
||||
ply_throbber_new (const char *image_dir,
|
||||
|
|
@ -126,7 +126,7 @@ ply_throbber_free (ply_throbber_t *throbber)
|
|||
return;
|
||||
|
||||
if (!throbber->is_stopped)
|
||||
ply_throbber_stop_now (throbber);
|
||||
ply_throbber_stop_now (throbber, false);
|
||||
|
||||
ply_throbber_remove_frames (throbber);
|
||||
ply_array_free (throbber->frames);
|
||||
|
|
@ -324,15 +324,18 @@ ply_throbber_start (ply_throbber_t *throbber,
|
|||
}
|
||||
|
||||
static void
|
||||
ply_throbber_stop_now (ply_throbber_t *throbber)
|
||||
ply_throbber_stop_now (ply_throbber_t *throbber, bool redraw)
|
||||
{
|
||||
throbber->is_stopped = true;
|
||||
|
||||
ply_pixel_display_draw_area (throbber->display,
|
||||
throbber->x,
|
||||
throbber->y,
|
||||
throbber->frame_area.width,
|
||||
throbber->frame_area.height);
|
||||
if (redraw) {
|
||||
ply_pixel_display_draw_area (throbber->display,
|
||||
throbber->x,
|
||||
throbber->y,
|
||||
throbber->frame_area.width,
|
||||
throbber->frame_area.height);
|
||||
}
|
||||
|
||||
if (throbber->loop != NULL) {
|
||||
ply_event_loop_stop_watching_for_timeout (throbber->loop,
|
||||
(ply_event_loop_timeout_handler_t)
|
||||
|
|
@ -356,7 +359,7 @@ ply_throbber_stop (ply_throbber_t *throbber,
|
|||
}
|
||||
|
||||
if (stop_trigger == NULL) {
|
||||
ply_throbber_stop_now (throbber);
|
||||
ply_throbber_stop_now (throbber, true);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue