discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1f21efd911631255b19c547888fb0b57be72a208
commit 1f21efd911631255b19c547888fb0b57be72a208 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Wed Feb 18 18:26:16 2015 -0500 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 98b8a8f..d4577af 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) --