Resolve focus change theme color transition error

This commit is contained in:
yuanye 2022-06-28 11:14:12 +08:00
parent a3d3878d28
commit 74aee020b4
3 changed files with 4 additions and 12 deletions

View file

@ -135,7 +135,7 @@ struct ssd_hover_state {
/* Public SSD API */ /* Public SSD API */
void ssd_create(struct view *view); void ssd_create(struct view *view);
void ssd_hide(struct view *view); void ssd_hide(struct view *view);
void ssd_set_active(struct view *view); void ssd_set_active(struct view *view, bool activated);
void ssd_update_title(struct view *view); void ssd_update_title(struct view *view);
void ssd_update_geometry(struct view *view); void ssd_update_geometry(struct view *view);
void ssd_reload(struct view *view); void ssd_reload(struct view *view);

View file

@ -285,19 +285,11 @@ ssd_part_contains(enum ssd_part_type whole, enum ssd_part_type candidate)
} }
void void
ssd_set_active(struct view *view) ssd_set_active(struct view *view, bool activated)
{ {
if (!view->ssd.tree) { if (!view->ssd.tree) {
return; return;
} }
_ssd_set_active(&view->ssd, activated);
struct view *last = view->server->ssd_focused_view;
if (last == view) {
return;
}
if (last && last->ssd.tree) {
_ssd_set_active(&last->ssd, false);
}
_ssd_set_active(&view->ssd, true);
view->server->ssd_focused_view = view; view->server->ssd_focused_view = view;
} }

View file

@ -14,7 +14,7 @@ void
view_set_activated(struct view *view, bool activated) view_set_activated(struct view *view, bool activated)
{ {
if (view->ssd.enabled) { if (view->ssd.enabled) {
ssd_set_active(view); ssd_set_active(view, activated);
} }
if (view->impl->set_activated) { if (view->impl->set_activated) {
view->impl->set_activated(view, activated); view->impl->set_activated(view, activated);