discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=847d3fe358960ebb70e12a4343799709ef4685dd

commit 847d3fe358960ebb70e12a4343799709ef4685dd
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Jul 30 16:22:08 2015 -0400

    reject internal window moves when they originate from a wl configure event
    
    fixes a number of internal win positioning issues
---
 src/bin/e_win.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index aaaa10a..96c8fb2 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -156,10 +156,21 @@ _e_elm_win_trap_show(void *data, Evas_Object *o)
 }
 
 static Eina_Bool
-_e_elm_win_trap_move(void *data, Evas_Object *o EINA_UNUSED, int x, int y)
+_e_elm_win_trap_move(void *data, Evas_Object *o, int x, int y)
 {
    Elm_Win_Trap_Ctx *ctx = data;
    EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_TRUE);
+   if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
+     {
+        int ex, ey;
+
+        /* if the ee coords match the requested coords, this is coming from
+         * a configure event which the compositor sent. failing to reject this
+         * move will result in bad window positioning
+         */
+        ecore_evas_geometry_get(e_win_ee_get(o), &ex, &ey, NULL, NULL);
+        if ((x == ex) && (y == ey)) return EINA_FALSE;
+     }
    ctx->placed = 1;
    if (!ctx->client) return EINA_TRUE;
    if ((ctx->client->client.x != x) || (ctx->client->client.y != y))

-- 


Reply via email to