summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-10-19 17:19:32 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-10-20 12:20:24 -0400
commite931e86161d7f419e44652b533fea4dc9b16241b (patch)
tree07cf0e66751009edd4275f7d21da41c232b8a92a
parentb44d4ad3396ab8d4af61b4ceee23e0c776a22452 (diff)
downloadenlightenment-e931e86161d7f419e44652b533fea4dc9b16241b.tar.gz
update csd using deltas of previous values
when applying new csd to a window which already has csd, the previous csd must be removed in order to apply any new csd offsets in order to avoid unwanted moving/resizing
-rw-r--r--src/bin/e_comp_object.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 0e50926322..bdedd97ca6 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2938,21 +2938,21 @@ e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b)
CRI("ACK!");
if ((cw->client_inset.l == l) && (cw->client_inset.r == r) &&
(cw->client_inset.t == t) && (cw->client_inset.b == b)) return;
- cw->client_inset.l = l;
- cw->client_inset.r = r;
- cw->client_inset.t = t;
- cw->client_inset.b = b;
cw->client_inset.calc = l || r || t || b;
eina_stringshare_replace(&cw->frame_theme, "borderless");
- cw->ec->w += l + r;
- cw->ec->h += t + b;
+ cw->ec->w += (l + r) - (cw->client_inset.l + cw->client_inset.r);
+ cw->ec->h += (t + b) - (cw->client_inset.t + cw->client_inset.b);
if (!cw->ec->new_client)
{
- cw->ec->x -= l;
- cw->ec->y -= t;
+ cw->ec->x -= l - cw->client_inset.l;
+ cw->ec->y -= t - cw->client_inset.t;
cw->ec->changes.pos = cw->ec->changes.size = 1;
EC_CHANGED(cw->ec);
}
+ cw->client_inset.l = l;
+ cw->client_inset.r = r;
+ cw->client_inset.t = t;
+ cw->client_inset.b = b;
}
E_API Eina_Bool