From 228c478e8d11dd14972b237574146fd0d2d6b96c Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 5 May 2018 12:36:50 +1000 Subject: Implement title_format This implements the title_format command, with a new placeholder %shell which gets substituted with the view type (xwayland, xdg_shell_v6 or wl_shell). Example config: for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell) --- include/sway/tree/container.h | 6 +++--- include/sway/tree/view.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'include/sway/tree') diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h index b07af72c..61ab7ca1 100644 --- a/include/sway/tree/container.h +++ b/include/sway/tree/container.h @@ -63,7 +63,8 @@ struct sway_container { */ size_t id; - char *name; + char *name; // The view's title (unformatted) + char *formatted_title; // The title displayed in the title bar enum sway_container_type type; enum sway_container_layout layout; @@ -204,7 +205,6 @@ void container_update_title_textures(struct sway_container *container); */ void container_calculate_title_height(struct sway_container *container); -void container_update_title(struct sway_container *container, - const char *new_title); +void container_notify_child_title_changed(struct sway_container *container); #endif diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 21127ab1..9d4256f7 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -48,6 +48,7 @@ struct sway_view { bool is_fullscreen; + char *title_format; enum sway_container_border border; int border_thickness; @@ -164,6 +165,8 @@ const char *view_get_class(struct sway_view *view); const char *view_get_instance(struct sway_view *view); +const char *view_get_type(struct sway_view *view); + void view_configure(struct sway_view *view, double ox, double oy, int width, int height); @@ -207,4 +210,11 @@ void view_child_init(struct sway_view_child *child, void view_child_destroy(struct sway_view_child *child); +/** + * Re-read the view's title property and update any relevant title bars. + * The force argument makes it recreate the title bars even if the title hasn't + * changed. + */ +void view_update_title(struct sway_view *view, bool force); + #endif -- cgit v1.2.3