e - winlist/client - don't leave dangling action on window
as winlist doesn't target specific windows ... don't leave the action on the window dangling there. finally fixes T6415
This commit is contained in:
parent
5ba54b7aa8
commit
6321664f08
|
@ -2134,6 +2134,8 @@ _e_client_eval(E_Client *ec)
|
||||||
/* Set this window into moving state */
|
/* Set this window into moving state */
|
||||||
|
|
||||||
ec->cur_mouse_action = e_action_find("window_move");
|
ec->cur_mouse_action = e_action_find("window_move");
|
||||||
|
if (ec->next_mouse_action_ignore)
|
||||||
|
ec->cur_mouse_action = NULL;
|
||||||
if (ec->cur_mouse_action)
|
if (ec->cur_mouse_action)
|
||||||
{
|
{
|
||||||
if ((!ec->cur_mouse_action->func.end_mouse) &&
|
if ((!ec->cur_mouse_action->func.end_mouse) &&
|
||||||
|
@ -3030,6 +3032,8 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even
|
||||||
ec->cur_mouse_action =
|
ec->cur_mouse_action =
|
||||||
e_bindings_mouse_down_event_handle(E_BINDING_CONTEXT_WINDOW,
|
e_bindings_mouse_down_event_handle(E_BINDING_CONTEXT_WINDOW,
|
||||||
E_OBJECT(ec), ev);
|
E_OBJECT(ec), ev);
|
||||||
|
if (ec->next_mouse_action_ignore)
|
||||||
|
ec->cur_mouse_action = NULL;
|
||||||
if (ec->cur_mouse_action)
|
if (ec->cur_mouse_action)
|
||||||
{
|
{
|
||||||
did_act = EINA_TRUE;
|
did_act = EINA_TRUE;
|
||||||
|
@ -5609,6 +5613,15 @@ e_client_redirected_set(E_Client *ec, Eina_Bool set)
|
||||||
|
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
|
|
||||||
|
E_API void
|
||||||
|
e_client_next_mouse_action_ignore(E_Client *ec)
|
||||||
|
{
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN(ec);
|
||||||
|
ec->next_mouse_action_ignore = EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////
|
||||||
|
|
||||||
E_API Eina_Bool
|
E_API Eina_Bool
|
||||||
e_client_is_stacking(const E_Client *ec)
|
e_client_is_stacking(const E_Client *ec)
|
||||||
{
|
{
|
||||||
|
|
|
@ -652,6 +652,8 @@ struct E_Client
|
||||||
unsigned int internal_no_remember E_BITFIELD;
|
unsigned int internal_no_remember E_BITFIELD;
|
||||||
unsigned int internal_no_reopen E_BITFIELD;
|
unsigned int internal_no_reopen E_BITFIELD;
|
||||||
|
|
||||||
|
unsigned int next_mouse_action_ignore E_BITFIELD;
|
||||||
|
|
||||||
Evas_Object *internal_elm_win;
|
Evas_Object *internal_elm_win;
|
||||||
|
|
||||||
double ping;
|
double ping;
|
||||||
|
@ -850,6 +852,7 @@ E_API E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
|
||||||
E_API int e_client_pointer_warp_to_center_now(E_Client *ec);
|
E_API int e_client_pointer_warp_to_center_now(E_Client *ec);
|
||||||
E_API int e_client_pointer_warp_to_center(E_Client *ec);
|
E_API int e_client_pointer_warp_to_center(E_Client *ec);
|
||||||
E_API void e_client_redirected_set(E_Client *ec, Eina_Bool set);
|
E_API void e_client_redirected_set(E_Client *ec, Eina_Bool set);
|
||||||
|
E_API void e_client_next_mouse_action_ignore(E_Client *ec);
|
||||||
E_API Eina_Bool e_client_is_stacking(const E_Client *ec);
|
E_API Eina_Bool e_client_is_stacking(const E_Client *ec);
|
||||||
E_API Eina_Bool e_client_has_xwindow(const E_Client *ec);
|
E_API Eina_Bool e_client_has_xwindow(const E_Client *ec);
|
||||||
E_API Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, const char *profile);
|
E_API Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, const char *profile);
|
||||||
|
|
|
@ -109,7 +109,7 @@ e_modapi_save(E_Module *m EINA_UNUSED)
|
||||||
|
|
||||||
/* action callback */
|
/* action callback */
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_e_mod_action_winlist_cb_helper(E_Object *obj EINA_UNUSED, const char *params, int modifiers, E_Winlist_Activate_Type type)
|
_e_mod_action_winlist_cb_helper(E_Object *obj, const char *params, int modifiers, E_Winlist_Activate_Type type)
|
||||||
{
|
{
|
||||||
E_Zone *zone = NULL;
|
E_Zone *zone = NULL;
|
||||||
E_Winlist_Filter filter = E_WINLIST_FILTER_NONE;
|
E_Winlist_Filter filter = E_WINLIST_FILTER_NONE;
|
||||||
|
@ -149,6 +149,8 @@ _e_mod_action_winlist_cb_helper(E_Object *obj EINA_UNUSED, const char *params, i
|
||||||
if (direction == 1) e_winlist_next();
|
if (direction == 1) e_winlist_next();
|
||||||
else if (direction == -1) e_winlist_prev();
|
else if (direction == -1) e_winlist_prev();
|
||||||
else e_winlist_direction_select(zone, udlr);
|
else e_winlist_direction_select(zone, udlr);
|
||||||
|
if ((obj) && (obj->type == E_CLIENT_TYPE))
|
||||||
|
e_client_next_mouse_action_ignore((E_Client *)obj);
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue