From 35ff6e5bb04a38f4387afbfa2611306809d645ad Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Tue, 15 Sep 2020 21:10:02 +0100 Subject: [PATCH] rcxml: s/csd/xdg_shell_server_side_deco --- data/rc.xml | 4 ++-- docs/labwc-config.5.md | 9 +++++---- include/config/rcxml.h | 2 +- include/labwc.h | 2 +- src/config/rcxml.c | 13 +++++++++---- src/desktop.c | 2 +- src/output.c | 2 +- src/server.c | 2 +- src/xdg.c | 8 ++++---- src/xwayland.c | 2 +- tests/t1000-rcxml-simple-parse.c | 2 +- 11 files changed, 27 insertions(+), 21 deletions(-) diff --git a/data/rc.xml b/data/rc.xml index 89486529..dc3464ea 100644 --- a/data/rc.xml +++ b/data/rc.xml @@ -5,8 +5,8 @@ - - no + + yes diff --git a/docs/labwc-config.5.md b/docs/labwc-config.5.md index 57ecf2d7..947d14a3 100644 --- a/docs/labwc-config.5.md +++ b/docs/labwc-config.5.md @@ -1,6 +1,6 @@ % labwc-config(5) % Johan Malm -% 31 Aug, 2020 +% 15 Sept, 2020 # NAME @@ -22,15 +22,16 @@ be searched for in the following order: Labwc specific settings which are not present in Openbox. - + -`csd` (__boolean__; default no) +`xdg_shell_server_side_deco` (__boolean__; default yes) -: Use client-side decorations for xdg-shell views. +: Use server-side decorations for xdg-shell views where it is possible to + turn of CSD `keyboard-layout` (__string__; not set by default) diff --git a/include/config/rcxml.h b/include/config/rcxml.h index e540db48..9fa31339 100644 --- a/include/config/rcxml.h +++ b/include/config/rcxml.h @@ -8,7 +8,7 @@ #include "common/buf.h" struct rcxml { - bool client_side_decorations; + bool xdg_shell_server_side_deco; char *theme_name; char *font_name_activewindow; int font_size_activewindow; diff --git a/include/labwc.h b/include/labwc.h index c86deccd..c76a6684 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -147,7 +147,7 @@ struct view { int xdg_grab_offset; - bool show_server_side_deco; + bool server_side_deco; struct wl_listener map; struct wl_listener unmap; diff --git a/src/config/rcxml.c b/src/config/rcxml.c index 835bea19..1c5f7da5 100644 --- a/src/config/rcxml.c +++ b/src/config/rcxml.c @@ -120,8 +120,8 @@ static void entry(xmlNode *node, char *nodename, char *content) if (is_attribute && !strcmp(nodename, "place.font.theme")) font_place = enum_font_place(content); - if (!strcmp(nodename, "csd.lab")) - rc.client_side_decorations = get_bool(content); + if (!strcmp(nodename, "xdg_shell_server_side_deco.lab")) + rc.xdg_shell_server_side_deco = get_bool(content); else if (!strcmp(nodename, "layout.keyboard.lab")) setenv("XKB_DEFAULT_LAYOUT", content, 1); else if (!strcmp(nodename, "name.theme")) @@ -240,6 +240,12 @@ static void set_title_height(void) rc.title_height = font_height(buf); } +static void pre_processing(void) +{ + rc.xdg_shell_server_side_deco = true; + rc.font_size_activewindow = 8; +} + static void post_processing(void) { if (!wl_list_length(&rc.keybinds)) { @@ -255,8 +261,6 @@ static void post_processing(void) if (!rc.font_name_activewindow) rc.font_name_activewindow = strdup("sans"); - if (!rc.font_size_activewindow) - rc.font_size_activewindow = 8; set_title_height(); } @@ -277,6 +281,7 @@ void rcxml_read(const char *filename) rcxml_init(); wl_list_init(&rc.keybinds); + pre_processing(); /* * Reading file into buffer before parsing makes it easier to write diff --git a/src/desktop.c b/src/desktop.c index 268e8951..5bae409c 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -182,7 +182,7 @@ struct view *desktop_view_at(struct server *server, double lx, double ly, continue; if (_view_at(view, lx, ly, surface, sx, sy)) return view; - if (!view->show_server_side_deco) + if (!view->server_side_deco) continue; *view_area = deco_at(view, lx, ly); if (*view_area != LAB_DECO_NONE) diff --git a/src/output.c b/src/output.c index 3cd37f84..b51fad0b 100644 --- a/src/output.c +++ b/src/output.c @@ -86,7 +86,7 @@ static void render_icon(struct draw_data *d, struct wlr_box box, static void render_decorations(struct wlr_output *output, struct view *view) { - if (!view->show_server_side_deco) + if (!view->server_side_deco) return; struct draw_data ddata = { .renderer = view->server->renderer, diff --git a/src/server.c b/src/server.c index 83871228..0014d59a 100644 --- a/src/server.c +++ b/src/server.c @@ -217,7 +217,7 @@ void server_init(struct server *server) exit(EXIT_FAILURE); } wlr_server_decoration_manager_set_default_mode( - deco_mgr, !rc.client_side_decorations ? + deco_mgr, rc.xdg_shell_server_side_deco ? WLR_SERVER_DECORATION_MANAGER_MODE_SERVER : WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT); diff --git a/src/xdg.c b/src/xdg.c index 595613de..48117dfb 100644 --- a/src/xdg.c +++ b/src/xdg.c @@ -23,7 +23,7 @@ static void xdg_deco_request_mode(struct wl_listener *listener, void *data) struct xdg_deco *xdg_deco; xdg_deco = wl_container_of(listener, xdg_deco, request_mode); enum wlr_xdg_toplevel_decoration_v1_mode mode; - if (!rc.client_side_decorations) + if (rc.xdg_shell_server_side_deco) mode = WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE; else mode = WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE; @@ -50,7 +50,7 @@ void xdg_toplevel_decoration(struct wl_listener *listener, void *data) static bool has_ssd(struct view *view) { - if (rc.client_side_decorations) + if (!rc.xdg_shell_server_side_deco) return false; /* @@ -147,8 +147,8 @@ static void xdg_toplevel_view_map(struct view *view) view->mapped = true; view->surface = view->xdg_surface->surface; if (!view->been_mapped) { - view->show_server_side_deco = has_ssd(view); - if (view->show_server_side_deco) { + view->server_side_deco = has_ssd(view); + if (view->server_side_deco) { view->margin = deco_max_extents(view); } else { view->margin = xdg_shell_border(view); diff --git a/src/xwayland.c b/src/xwayland.c index c40976b4..cdb842e4 100644 --- a/src/xwayland.c +++ b/src/xwayland.c @@ -69,7 +69,7 @@ static void map(struct view *view) view->w = view->xwayland_surface->width; view->h = view->xwayland_surface->height; view->surface = view->xwayland_surface->surface; - view->show_server_side_deco = want_deco(view); + view->server_side_deco = want_deco(view); view->margin = deco_max_extents(view); diff --git a/tests/t1000-rcxml-simple-parse.c b/tests/t1000-rcxml-simple-parse.c index f6fdfd8f..7495b4d7 100644 --- a/tests/t1000-rcxml-simple-parse.c +++ b/tests/t1000-rcxml-simple-parse.c @@ -33,7 +33,7 @@ int main(int argc, char **argv) unlink(template); diag("Simple parse rc.xml"); - ok1(rc.client_side_decorations); + ok1(rc.xdg_shell_server_side_deco); rcxml_finish(); pango_cairo_font_map_set_default(NULL);