summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2015-09-30 20:31:30 +0900
committerChunEon Park <hermet@hermet.pe.kr>2015-09-30 20:37:57 +0900
commit6e4fb0cd6643dbaa002c843a20dd80b963c17e63 (patch)
treee7979415b34eff47f0aaba34efba8e0219b23d6a
parent5612b3e7e06c45ac69e8ef5883d5ec4c7edc68bb (diff)
ecore_win32: fix the mouse out behavior.
Current win32 let the mouse out regardless of mouse down status. This is not quitely same with the x system so widget behaviors were not properly working. Make the widget behaviors about mouse-out same to x window system to keep the same behaviors on all window system always. @fix
-rw-r--r--src/modules/ecore_evas/engines/win32/ecore_evas_win32.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
index 7626364f05..d20a85d99b 100644
--- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
+++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
@@ -217,9 +217,13 @@ _ecore_evas_win32_event_mouse_out(void *data EINA_UNUSED, int type EINA_UNUSED,
217/* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */ 217/* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */
218 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->timestamp); 218 _ecore_evas_mouse_move_process(ee, e->x, e->y, e->timestamp);
219 219
220 evas_event_feed_mouse_out(ee->evas, e->timestamp, NULL); 220 if (ee->in)
221 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); 221 {
222 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); 222 if ((evas_event_down_count_get(ee->evas) > 0) return ECORE_CALLBACK_PASS_ON;
223 evas_event_feed_mouse_out(ee->evas, e->timestamp, NULL);
224 if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
225 if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
226 }
223 227
224 return 1; 228 return 1;
225} 229}