src/output.c: support theme.window_inactive_title_bg_color

This commit is contained in:
Johan Malm 2020-06-15 21:44:57 +01:00
parent c7a179f5b3
commit 5bd55570ba
3 changed files with 14 additions and 1 deletions

View file

@ -148,6 +148,7 @@ bool view_want_deco(struct view *view);
void view_focus(struct view *view);
struct view *view_front_toplevel(struct server *server);
struct view *next_toplevel(struct view *current);
bool view_hasfocus(struct view *view);
struct view *view_at(struct server *server, double lx, double ly,
struct wlr_surface **surface, double *sx, double *sy,
int *view_area);

View file

@ -52,7 +52,11 @@ static void render_decorations(struct wlr_output *output, struct view *view)
draw_rect(&ddata, deco_box(view, LAB_DECO_PART_BOTTOM));
draw_rect(&ddata, deco_box(view, LAB_DECO_PART_LEFT));
ddata.rgba = theme.window_active_title_bg_color;
if (view_hasfocus(view))
ddata.rgba = theme.window_active_title_bg_color;
else
ddata.rgba = theme.window_inactive_title_bg_color;
draw_rect(&ddata, deco_box(view, LAB_DECO_PART_TITLE));
}

View file

@ -123,6 +123,14 @@ static void set_activated(struct wlr_surface *surface, bool activated)
}
}
bool view_hasfocus(struct view *view)
{
if (!view || !view->surface)
return false;
struct wlr_seat *seat = view->server->seat;
return (view->surface == seat->keyboard_state.focused_surface);
}
void view_focus(struct view *view)
{
/* Note: this function only deals with keyboard focus. */