forked from enlightenment/enlightenment
toggle NOGRAB on client input rects during move operations
This commit is contained in:
parent
950bee7ce4
commit
8af555cae0
|
@ -2625,6 +2625,34 @@ _e_comp_smart_resize(Evas_Object *obj, int w, int h)
|
||||||
e_comp_shape_queue();
|
e_comp_shape_queue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_object_move_end(void *d EINA_UNUSED, E_Client *ec)
|
||||||
|
{
|
||||||
|
E_Comp_Object *cw = evas_object_smart_data_get(ec->frame);
|
||||||
|
unsigned int i;
|
||||||
|
Evas_Object *rect;
|
||||||
|
Eina_Array_Iterator it;
|
||||||
|
|
||||||
|
if (!cw->input_objs) return;
|
||||||
|
|
||||||
|
EINA_ARRAY_ITER_NEXT(cw->input_objs, i, rect, it)
|
||||||
|
evas_object_pointer_mode_set(rect, EVAS_OBJECT_POINTER_MODE_AUTOGRAB);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_object_move_begin(void *d EINA_UNUSED, E_Client *ec)
|
||||||
|
{
|
||||||
|
E_Comp_Object *cw = evas_object_smart_data_get(ec->frame);
|
||||||
|
unsigned int i;
|
||||||
|
Evas_Object *rect;
|
||||||
|
Eina_Array_Iterator it;
|
||||||
|
|
||||||
|
if (!cw->input_objs) return;
|
||||||
|
|
||||||
|
EINA_ARRAY_ITER_NEXT(cw->input_objs, i, rect, it)
|
||||||
|
evas_object_pointer_mode_set(rect, EVAS_OBJECT_POINTER_MODE_NOGRAB);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_comp_smart_init(void)
|
_e_comp_smart_init(void)
|
||||||
{
|
{
|
||||||
|
@ -2636,6 +2664,8 @@ _e_comp_smart_init(void)
|
||||||
render_debug_enabled = -1;
|
render_debug_enabled = -1;
|
||||||
else if (env)
|
else if (env)
|
||||||
render_debug_enabled = 1;
|
render_debug_enabled = 1;
|
||||||
|
e_client_hook_add(E_CLIENT_HOOK_MOVE_BEGIN, _e_comp_object_move_begin, NULL);
|
||||||
|
e_client_hook_add(E_CLIENT_HOOK_MOVE_END, _e_comp_object_move_end, NULL);
|
||||||
{
|
{
|
||||||
static const Evas_Smart_Class sc =
|
static const Evas_Smart_Class sc =
|
||||||
{
|
{
|
||||||
|
@ -3270,8 +3300,8 @@ e_comp_object_input_area_set(Evas_Object *obj, const Eina_Tiler *area)
|
||||||
evas_object_color_set(o, 0, 0, 0, 0);
|
evas_object_color_set(o, 0, 0, 0, 0);
|
||||||
evas_object_clip_set(o, cw->clip);
|
evas_object_clip_set(o, cw->clip);
|
||||||
evas_object_smart_member_add(o, obj);
|
evas_object_smart_member_add(o, obj);
|
||||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _e_comp_object_ssd_mouse_in, cw);
|
if (cw->ec->moving)
|
||||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _e_comp_object_ssd_mouse_out, cw);
|
evas_object_pointer_mode_set(o, EVAS_OBJECT_POINTER_MODE_NOGRAB);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
eina_array_push(cw->input_objs, o);
|
eina_array_push(cw->input_objs, o);
|
||||||
eina_tiler_rect_add(cw->input_area, rect);
|
eina_tiler_rect_add(cw->input_area, rect);
|
||||||
|
|
Loading…
Reference in New Issue