on-screen-display).
*<windowRules><windowRule ignoreFocusRequest="">* [yes|no|default]
- *ignoreFocusRequest* prevent window to activate itself.
+ *ignoreFocusRequest* prevents window to activate itself.
+
+*<windowRules><windowRule ignoreConfigureRequest="">* [yes|no|default]
+ *ignoreConfigureRequest* prevents a X11 window to position and size
+ itself.
*<windowRules><windowRule fixedPosition="">* [yes|no|default]
*fixedPosition* disallows interactive move/resize and prevents
enum property skip_taskbar;
enum property skip_window_switcher;
enum property ignore_focus_request;
+ enum property ignore_configure_request;
enum property fixed_position;
struct wl_list link; /* struct rcxml.window_rules */
set_property(content, ¤t_window_rule->skip_window_switcher);
} else if (!strcasecmp(nodename, "ignoreFocusRequest")) {
set_property(content, ¤t_window_rule->ignore_focus_request);
+ } else if (!strcasecmp(nodename, "ignoreConfigureRequest")) {
+ set_property(content, ¤t_window_rule->ignore_configure_request);
} else if (!strcasecmp(nodename, "fixedPosition")) {
set_property(content, ¤t_window_rule->fixed_position);
&& !strcasecmp(property, "ignoreFocusRequest")) {
return rule->ignore_focus_request;
}
+ if (rule->ignore_configure_request
+ && !strcasecmp(property, "ignoreConfigureRequest")) {
+ return rule->ignore_configure_request;
+ }
if (rule->fixed_position
&& !strcasecmp(property, "fixedPosition")) {
return rule->fixed_position;
wl_container_of(listener, xwayland_view, request_configure);
struct view *view = &xwayland_view->base;
struct wlr_xwayland_surface_configure_event *event = data;
+ bool ignore_configure_requests = window_rules_get_property(
+ view, "ignoreConfigureRequest") == LAB_PROP_TRUE;
- if (view_is_floating(view)) {
+ if (view_is_floating(view) && !ignore_configure_requests) {
/* Honor client configure requests for floating views */
struct wlr_box box = {.x = event->x, .y = event->y,
.width = event->width, .height = event->height};