summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2013-10-29 08:41:48 +0000
committerChris Michael <cp.michael@samsung.com>2013-10-29 08:41:48 +0000
commit40a2dfc8701ff78de73669d059e87535fb39795e (patch)
tree7595d16456bcffac3bcae63b67cef0bf9b9a67c8 /src/modules
parent49dfea556657baed6cfbd8bc4c8389b79c3858aa (diff)
On a focus_in event, if the ecore_evas already has focus, don't resend
a focus in. Similar change for focus_out also. Signed-off-by: Chris Michael <cp.michael@samsung.com>
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 45832f0170..5373c62735 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -106,7 +106,6 @@ _ecore_evas_wl_common_cb_mouse_in(void *data EINA_UNUSED, int type EINA_UNUSED,
106 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee); 106 if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
107 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers); 107 ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
108 evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL); 108 evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
109 _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
110 ee->in = EINA_TRUE; 109 ee->in = EINA_TRUE;
111 return ECORE_CALLBACK_PASS_ON; 110 return ECORE_CALLBACK_PASS_ON;
112} 111}
@@ -147,6 +146,7 @@ _ecore_evas_wl_common_cb_focus_in(void *data EINA_UNUSED, int type EINA_UNUSED,
147 ee = ecore_event_window_match(ev->win); 146 ee = ecore_event_window_match(ev->win);
148 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 147 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
149 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 148 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
149 if (ee->prop.focused) return ECORE_CALLBACK_PASS_ON;
150 ee->prop.focused = 1; 150 ee->prop.focused = 1;
151 evas_focus_in(ee->evas); 151 evas_focus_in(ee->evas);
152 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee); 152 if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
@@ -165,6 +165,7 @@ _ecore_evas_wl_common_cb_focus_out(void *data EINA_UNUSED, int type EINA_UNUSED,
165 ee = ecore_event_window_match(ev->win); 165 ee = ecore_event_window_match(ev->win);
166 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; 166 if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
167 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; 167 if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
168 if (!ee->prop.focused) return ECORE_CALLBACK_PASS_ON;
168 evas_focus_out(ee->evas); 169 evas_focus_out(ee->evas);
169 ee->prop.focused = 0; 170 ee->prop.focused = 0;
170 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee); 171 if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);