horizontally and vertically rather than one or the other. Default is
half the titlebar height.
+*<resize><minimumArea>*
+ Treat borders of server-side decorations as if they were at least the
+ indicated thickness, regardless of their visual size. Borders visually
+ narrower than the minimum effective thickness will be augmented with
+ invisible zones just beyond the window that serve as click targets for
+ mouse actions. Default is 8.
+
## KEYBOARD
*<keyboard><numlock>* [on|off]
set_bool(content, &rc.resize_draw_contents);
} else if (!strcasecmp(nodename, "cornerRange.resize")) {
rc.resize_corner_range = atoi(content);
+ } else if (!strcasecmp(nodename, "minimumArea.resize")) {
+ rc.resize_minimum_area = MAX(0, atoi(content));
} else if (!strcasecmp(nodename, "mouseEmulation.tablet")) {
set_bool(content, &rc.tablet.force_mouse_emulation);
} else if (!strcasecmp(nodename, "mapToOutput.tablet")) {
rc.resize_indicator = LAB_RESIZE_INDICATOR_NEVER;
rc.resize_draw_contents = true;
rc.resize_corner_range = -1;
+ rc.resize_minimum_area = 8;
rc.workspace_config.popuptime = INT_MIN;
rc.workspace_config.min_nr_workspaces = 1;
#include <pixman.h>
#include "common/mem.h"
#include "common/scene-helpers.h"
+#include "config/rcxml.h"
#include "labwc.h"
#include "ssd-internal.h"
#include "theme.h"
struct view *view = ssd->view;
struct theme *theme = view->server->theme;
struct wl_list *part_list = &ssd->extents.parts;
- int extended_area = SSD_EXTENDED_AREA;
+
+ int border_width = MAX(0, MAX(rc.resize_minimum_area, theme->border_width));
ssd->extents.tree = wlr_scene_tree_create(ssd->tree);
struct wlr_scene_tree *parent = ssd->extents.tree;
}
wl_list_init(&ssd->extents.parts);
wlr_scene_node_set_position(&parent->node,
- -(theme->border_width + extended_area),
- -(ssd->titlebar.height + theme->border_width + extended_area));
+ -border_width, -(ssd->titlebar.height + border_width));
add_extent(part_list, LAB_SSD_PART_TOP, parent);
add_extent(part_list, LAB_SSD_PART_LEFT, parent);
int height = view_effective_height(view, /* use_pending */ false);
int full_height = height + theme->border_width * 2 + ssd->titlebar.height;
int full_width = width + 2 * theme->border_width;
- int extended_area = SSD_EXTENDED_AREA;
+ int border_width = MAX(rc.resize_minimum_area, theme->border_width);
+ int extended_area = MAX(0, rc.resize_minimum_area - theme->border_width);
struct wlr_box part_box;
struct wlr_box result_box;
/* Make sure we update the y offset based on titlebar shown / hidden */
wlr_scene_node_set_position(&ssd->extents.tree->node,
- -(theme->border_width + extended_area),
- -(ssd->titlebar.height + theme->border_width + extended_area));
+ -border_width, -(ssd->titlebar.height + border_width));
/*
* Convert all output usable areas that the