aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
Diffstat (limited to 'sway')
-rw-r--r--sway/config.c6
-rw-r--r--sway/container.c25
-rw-r--r--sway/handlers.c1
3 files changed, 32 insertions, 0 deletions
diff --git a/sway/config.c b/sway/config.c
index 14b657ef..95285eba 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -172,6 +172,12 @@ static void config_defaults(struct sway_config *config) {
config->font = strdup("monospace 10");
config->font_height = get_font_text_height(config->font);
+ // floating view
+ config->floating_maximum_width = -1;
+ config->floating_maximum_height = -1;
+ config->floating_minimum_width = 75;
+ config->floating_minimum_height = 50;
+
// Flags
config->focus_follows_mouse = true;
config->mouse_warping = true;
diff --git a/sway/container.c b/sway/container.c
index 4883a648..e00d2d7e 100644
--- a/sway/container.c
+++ b/sway/container.c
@@ -328,6 +328,31 @@ swayc_t *new_floating_view(wlc_handle handle) {
return view;
}
+void floating_view_sane_size(swayc_t *view) {
+ if (config->floating_minimum_height != -1 &&
+ view->desired_height < config->floating_minimum_height) {
+ view->desired_height = config->floating_minimum_height;
+ }
+ if (config->floating_minimum_width != -1 &&
+ view->desired_width < config->floating_minimum_width) {
+ view->desired_width = config->floating_minimum_width;
+ }
+
+ if (config->floating_maximum_height != -1 &&
+ view->desired_height > config->floating_maximum_height) {
+ view->desired_height = config->floating_maximum_height;
+ }
+ if (config->floating_maximum_width != -1 &&
+ view->desired_width > config->floating_maximum_width) {
+ view->desired_width = config->floating_maximum_width;
+ }
+ sway_log(L_DEBUG, "Sane values for view to %d x %d @ %.f, %.f",
+ view->desired_width, view->desired_height, view->x, view->y);
+
+ return;
+}
+
+
// Destroy container
swayc_t *destroy_output(swayc_t *output) {
diff --git a/sway/handlers.c b/sway/handlers.c
index 931e1340..f8dd9f4d 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -350,6 +350,7 @@ static void handle_view_geometry_request(wlc_handle handle, const struct wlc_geo
view->desired_height = geometry->size.h;
if (view->is_floating) {
+ floating_view_sane_size(view);
view->width = view->desired_width;
view->height = view->desired_height;
view->x = geometry->origin.x;