jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0c850f67ceb772c92637e7826baf9f39bbc8001a

commit 0c850f67ceb772c92637e7826baf9f39bbc8001a
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Mon Nov 7 18:41:55 2016 +0900

    evas: Fix previous pointer position in output coords
    
    This fixes the test "Window Socket" map resize.
    I broke that in 40fec5f608da4c5188a2afc7cc293d4f
    
    Makes me wonder if the previous position should be exposed
    in EO as well.
---
 src/lib/evas/canvas/evas_events.c        | 2 ++
 src/lib/evas/canvas/evas_events_legacy.c | 8 +++++---
 src/lib/evas/include/evas_private.h      | 1 +
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/canvas/evas_events.c 
b/src/lib/evas/canvas/evas_events.c
index fd2f89f..b345a7a 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -1732,6 +1732,8 @@ _canvas_event_feed_mouse_move_internal(Evas_Public_Data 
*e, Efl_Input_Pointer_Da
    e->last_timestamp = ev->timestamp;
 
    // prev pos
+   e->pointer.prev.x = e->pointer.x;
+   e->pointer.prev.y = e->pointer.y;
    px = ev->prev.x = e->pointer.x;
    py = ev->prev.y = e->pointer.y;
 
diff --git a/src/lib/evas/canvas/evas_events_legacy.c 
b/src/lib/evas/canvas/evas_events_legacy.c
index 9c57bb4..aa7b1b7 100644
--- a/src/lib/evas/canvas/evas_events_legacy.c
+++ b/src/lib/evas/canvas/evas_events_legacy.c
@@ -41,6 +41,8 @@ efl_input_pointer_legacy_info_fill(Evas *eo_evas, 
Efl_Input_Key *eo_ev, Evas_Cal
    if (!ev || !evas) return NULL;
 
 #define COORD_DUP(e) do { (e)->output.x = evas->pointer.x; (e)->output.y = 
evas->pointer.y; } while (0)
+#define COORD_DUP_CUR(e) do { (e)->cur.output.x = evas->pointer.x; 
(e)->cur.output.y = evas->pointer.y; } while (0)
+#define COORD_DUP_PREV(e) do { (e)->prev.output.x = evas->pointer.prev.x; 
(e)->prev.output.y = evas->pointer.prev.y; } while (0)
 #define TYPE_CHK(typ) do { if (type != EVAS_CALLBACK_ ## typ) return NULL; } 
while (0)
 
    switch (ev->action)
@@ -196,10 +198,10 @@ efl_input_pointer_legacy_info_fill(Evas *eo_evas, 
Efl_Input_Key *eo_ev, Evas_Cal
              e->buttons = ev->pressed_buttons;
              e->cur.canvas.x = ev->cur.x;
              e->cur.canvas.y = ev->cur.y;
-             COORD_DUP(&e->cur);
              e->prev.canvas.x = ev->prev.x;
              e->prev.canvas.y = ev->prev.y;
-             COORD_DUP(&e->prev);
+             COORD_DUP_CUR(e);
+             COORD_DUP_PREV(e);
              e->data = ev->data;
              e->timestamp = ev->timestamp;
              e->event_flags = ev->event_flags;
@@ -225,7 +227,7 @@ efl_input_pointer_legacy_info_fill(Evas *eo_evas, 
Efl_Input_Key *eo_ev, Evas_Cal
              e->cur.canvas.ysub = ev->cur.y;
              e->cur.canvas.x = ev->cur.x;
              e->cur.canvas.y = ev->cur.y;
-             COORD_DUP(&e->cur);
+             COORD_DUP_CUR(e);
              e->data = ev->data;
              e->timestamp = ev->timestamp;
              e->event_flags = ev->event_flags;
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 5271ac5..5d71684 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -800,6 +800,7 @@ struct _Evas_Public_Data
       int            downs;
       DATA32         button;
       Evas_Coord     x, y;
+      Evas_Point     prev;
       int            nogrep;
       struct {
           Eina_List *in;

-- 


Reply via email to