From 1f21efd911631255b19c547888fb0b57be72a208 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 18 Feb 2015 18:26:16 -0500 Subject: [PATCH] clamp client size to screen when client limit policy does not allow offscreen fix T1779 --- src/bin/e_client.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 98b8a8fda..d4577af4a 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -961,6 +961,11 @@ _e_client_resize_handle(E_Client *ec) w = new_w; h = new_h; + if (e_config->screen_limits == E_SCREEN_LIMITS_WITHIN) + { + w = MIN(w, ec->zone->w); + h = MIN(h, ec->zone->h); + } e_client_resize_limit(ec, &new_w, &new_h); if ((ec->resize_mode == E_POINTER_RESIZE_TL) || (ec->resize_mode == E_POINTER_RESIZE_L) || @@ -1059,7 +1064,11 @@ _e_client_resize_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev else if ((strncmp(ev->key, "Control", sizeof("Control") - 1) != 0) && (strncmp(ev->key, "Alt", sizeof("Alt") - 1) != 0)) goto stop; - + if (e_config->screen_limits == E_SCREEN_LIMITS_WITHIN) + { + w = MIN(w, action_client->zone->w); + h = MIN(h, action_client->zone->h); + } e_client_resize_limit(action_client, &w, &h); evas_object_resize(action_client->frame, w, h); _e_client_action_resize_timeout_add(); @@ -1683,6 +1692,11 @@ _e_client_eval(E_Client *ec) e_zone_useful_geometry_get(ec->zone, &zx, &zy, &zw, &zh); /* enforce wm size hints for initial sizing */ + if (e_config->screen_limits == E_SCREEN_LIMITS_WITHIN) + { + ec->w = MIN(ec->w, ec->zone->w); + ec->h = MIN(ec->h, ec->zone->h); + } e_client_resize_limit(ec, &ec->w, &ec->h); if (ec->re_manage)