forked from enlightenment/efl
ecore-wl2: Issue input grab/ungrab during pointer button events
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
8a2b8ed76a
commit
ed7429f62d
|
@ -84,6 +84,25 @@ _ecore_wl2_input_mouse_move_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL);
|
ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button)
|
||||||
|
{
|
||||||
|
input->grab.window = window;
|
||||||
|
input->grab.button = button;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ecore_wl2_input_ungrab(Ecore_Wl2_Input *input)
|
||||||
|
{
|
||||||
|
if ((input->grab.window) && (input->grab.button))
|
||||||
|
{
|
||||||
|
/* TODO: send a mouse up here */
|
||||||
|
}
|
||||||
|
|
||||||
|
input->grab.window = NULL;
|
||||||
|
input->grab.button = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_pointer_cb_enter(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned int serial, struct wl_surface *surface, wl_fixed_t sx, wl_fixed_t sy)
|
_pointer_cb_enter(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned int serial, struct wl_surface *surface, wl_fixed_t sx, wl_fixed_t sy)
|
||||||
{
|
{
|
||||||
|
@ -177,7 +196,7 @@ _pointer_cb_button(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned
|
||||||
{
|
{
|
||||||
if ((input->focus.pointer) && (!input->grab.window))
|
if ((input->focus.pointer) && (!input->grab.window))
|
||||||
{
|
{
|
||||||
/* TODO: issue input grab */
|
_ecore_wl2_input_grab(input, input->focus.pointer, button);
|
||||||
input->grab.timestamp = timestamp;
|
input->grab.timestamp = timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,9 +213,7 @@ _pointer_cb_button(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((input->grab.window) && (input->grab.button == button))
|
if ((input->grab.window) && (input->grab.button == button))
|
||||||
{
|
_ecore_wl2_input_ungrab(input);
|
||||||
/* TODO: issue input ungrab */
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -667,25 +684,6 @@ static const struct wl_seat_listener _seat_listener =
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
|
||||||
_ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button)
|
|
||||||
{
|
|
||||||
input->grab.window = window;
|
|
||||||
input->grab.button = button;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_ecore_wl2_input_ungrab(Ecore_Wl2_Input *input)
|
|
||||||
{
|
|
||||||
if ((input->grab.window) && (input->grab.button))
|
|
||||||
{
|
|
||||||
/* TODO: send a mouse up here */
|
|
||||||
}
|
|
||||||
|
|
||||||
input->grab.window = NULL;
|
|
||||||
input->grab.button = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_wl2_input_cursor_setup(Ecore_Wl2_Input *input)
|
_ecore_wl2_input_cursor_setup(Ecore_Wl2_Input *input)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue