From 41448890cc477c7b464dd667700d7c93d0741ff6 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 3 Jul 2013 10:02:34 +0100 Subject: [PATCH] aaand fix border mouse actions for non modal dialog parents --- src/bin/e_border.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 7d3b0b40e..dedb80d7e 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -6472,10 +6472,11 @@ _e_border_cb_mouse_x_wheel(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_M bd = action_border; else { - bd = e_border_find_by_window(ev->window); + bd = e_border_find_by_client_window(ev->window); + if (!bd) bd = e_border_find_by_window(ev->window); if (!bd) return ECORE_CALLBACK_RENEW; /* event_window here should be bd->win if it isn't the same as window, not sure if this can NOT happen */ - if ((ev->window != ev->event_window) && (bd->win != ev->event_window)) + if ((ev->window != ev->event_window) && (bd->win != ev->event_window) && (bd->client.lock_win != ev->event_window)) return ECORE_CALLBACK_RENEW; } e_bindings_ecore_event_mouse_wheel_convert(ev, &ev2); @@ -6570,10 +6571,11 @@ _e_border_cb_mouse_x_down(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mo bd = action_border; else { - bd = e_border_find_by_window(ev->window); + bd = e_border_find_by_client_window(ev->window); + if (!bd) bd = e_border_find_by_window(ev->window); if (!bd) return ECORE_CALLBACK_RENEW; /* event_window here should be bd->win if it isn't the same as window, not sure if this can NOT happen */ - if ((ev->window != ev->event_window) && (bd->win != ev->event_window)) + if ((ev->window != ev->event_window) && (bd->win != ev->event_window) && (bd->client.lock_win != ev->event_window)) return ECORE_CALLBACK_RENEW; } e_bindings_ecore_event_mouse_button_convert(ev, &ev2); @@ -6642,10 +6644,11 @@ _e_border_cb_mouse_x_up(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mous bd = action_border; else { - bd = e_border_find_by_window(ev->window); + bd = e_border_find_by_client_window(ev->window); + if (!bd) bd = e_border_find_by_window(ev->window); if (!bd) return ECORE_CALLBACK_RENEW; /* event_window here should be bd->win if it isn't the same as window, not sure if this can NOT happen */ - if ((ev->window != ev->event_window) && (bd->win != ev->event_window)) + if ((ev->window != ev->event_window) && (bd->win != ev->event_window) && (bd->client.lock_win != ev->event_window)) return ECORE_CALLBACK_RENEW; } e_bindings_ecore_event_mouse_button_convert(ev, &ev2);