From: Johan Malm Date: Mon, 15 Jun 2020 20:44:57 +0000 (+0100) Subject: src/output.c: support theme.window_inactive_title_bg_color X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=5bd55570baacf9166dfc0831d22ea7f20f9e9f0e;p=proto%2Flabwc.git src/output.c: support theme.window_inactive_title_bg_color --- diff --git a/include/labwc.h b/include/labwc.h index 8e1e10d4..fcd9936c 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -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); diff --git a/src/output.c b/src/output.c index 35197dcd..521497b4 100644 --- a/src/output.c +++ b/src/output.c @@ -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)); } diff --git a/src/view.c b/src/view.c index 271e0363..44a80cc7 100644 --- a/src/view.c +++ b/src/view.c @@ -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. */