forked from enlightenment/efl
elput: further simplify device internals
'window' and pointer max w/h attributes are set for a manager object, so let the attributes stay there. this also resolves issues where devices created at a later point would fail to be initialized with these attributes
This commit is contained in:
parent
7fdcf841f5
commit
8c3f0ff640
|
@ -300,9 +300,9 @@ _keyboard_key_send(Elput_Device *dev, enum libinput_key_state state, const char
|
|||
ev->timestamp = timestamp;
|
||||
ev->same_screen = 1;
|
||||
|
||||
ev->window = dev->window;
|
||||
ev->event_window = dev->window;
|
||||
ev->root_window = dev->window;
|
||||
ev->window = dev->seat->manager->window;
|
||||
ev->event_window = dev->seat->manager->window;
|
||||
ev->root_window = dev->seat->manager->window;
|
||||
|
||||
if (state == LIBINPUT_KEY_STATE_PRESSED)
|
||||
ecore_event_add(ECORE_EVENT_KEY_DOWN, ev, NULL, NULL);
|
||||
|
@ -635,20 +635,20 @@ _pointer_motion_send(Elput_Device *edev)
|
|||
|
||||
if (x < ptr->minx)
|
||||
x = ptr->minx;
|
||||
else if (x >= ptr->minx + ptr->maxw)
|
||||
x = ptr->minx + ptr->maxw - 1;
|
||||
else if (x >= ptr->minx + ptr->seat->manager->input.pointer_w)
|
||||
x = ptr->minx + ptr->seat->manager->input.pointer_w - 1;
|
||||
|
||||
if (y < ptr->miny)
|
||||
y = ptr->miny;
|
||||
else if (y >= ptr->miny + ptr->maxh)
|
||||
y = ptr->miny + ptr->maxh - 1;
|
||||
else if (y >= ptr->miny + ptr->seat->manager->input.pointer_h)
|
||||
y = ptr->miny + ptr->seat->manager->input.pointer_h - 1;
|
||||
|
||||
ptr->x = x;
|
||||
ptr->y = y;
|
||||
|
||||
ev->window = edev->window;
|
||||
ev->event_window = edev->window;
|
||||
ev->root_window = edev->window;
|
||||
ev->window = edev->seat->manager->window;
|
||||
ev->event_window = edev->seat->manager->window;
|
||||
ev->root_window = edev->seat->manager->window;
|
||||
ev->timestamp = ptr->timestamp;
|
||||
ev->same_screen = 1;
|
||||
|
||||
|
@ -736,9 +736,9 @@ _pointer_button_send(Elput_Device *edev, enum libinput_button_state state)
|
|||
ev = calloc(1, sizeof(Ecore_Event_Mouse_Button));
|
||||
if (!ev) return;
|
||||
|
||||
ev->window = edev->window;
|
||||
ev->event_window = edev->window;
|
||||
ev->root_window = edev->window;
|
||||
ev->window = edev->seat->manager->window;
|
||||
ev->event_window = edev->seat->manager->window;
|
||||
ev->root_window = edev->seat->manager->window;
|
||||
ev->timestamp = ptr->timestamp;
|
||||
ev->same_screen = 1;
|
||||
|
||||
|
@ -854,9 +854,9 @@ _pointer_axis_send(Elput_Device *dev, int direction, int value)
|
|||
ev = calloc(1, sizeof(Ecore_Event_Mouse_Wheel));
|
||||
if (!ev) return;
|
||||
|
||||
ev->window = dev->window;
|
||||
ev->event_window = dev->window;
|
||||
ev->root_window = dev->window;
|
||||
ev->window = dev->seat->manager->window;
|
||||
ev->event_window = dev->seat->manager->window;
|
||||
ev->root_window = dev->seat->manager->window;
|
||||
ev->timestamp = ptr->timestamp;
|
||||
ev->same_screen = 1;
|
||||
|
||||
|
@ -960,9 +960,9 @@ _touch_event_send(Elput_Device *dev, struct libinput_event_touch *event, int typ
|
|||
ev = calloc(1, sizeof(Ecore_Event_Mouse_Button));
|
||||
if (!ev) return;
|
||||
|
||||
ev->window = dev->window;
|
||||
ev->event_window = dev->window;
|
||||
ev->root_window = dev->window;
|
||||
ev->window = dev->seat->manager->window;
|
||||
ev->event_window = dev->seat->manager->window;
|
||||
ev->root_window = dev->seat->manager->window;
|
||||
ev->timestamp = libinput_event_touch_get_time(event);
|
||||
ev->same_screen = 1;
|
||||
|
||||
|
@ -1067,9 +1067,9 @@ _touch_motion_send(Elput_Device *dev, struct libinput_event_touch *event)
|
|||
ev = calloc(1, sizeof(Ecore_Event_Mouse_Move));
|
||||
if (!ev) return;
|
||||
|
||||
ev->window = dev->window;
|
||||
ev->event_window = dev->window;
|
||||
ev->root_window = dev->window;
|
||||
ev->window = dev->seat->manager->window;
|
||||
ev->event_window = dev->seat->manager->window;
|
||||
ev->root_window = dev->seat->manager->window;
|
||||
ev->timestamp = libinput_event_touch_get_time(event);
|
||||
ev->same_screen = 1;
|
||||
|
||||
|
|
|
@ -1,35 +1,6 @@
|
|||
#include "elput_private.h"
|
||||
#include <libudev.h>
|
||||
|
||||
void
|
||||
_elput_input_window_update(Elput_Manager *manager)
|
||||
{
|
||||
Eina_List *l, *ll;
|
||||
Elput_Seat *seat;
|
||||
Elput_Device *device;
|
||||
|
||||
if (manager->input.thread) return;
|
||||
EINA_LIST_FOREACH(manager->input.seats, l, seat)
|
||||
EINA_LIST_FOREACH(seat->devices, ll, device)
|
||||
device->window = manager->window;
|
||||
}
|
||||
|
||||
void
|
||||
_elput_input_pointer_max_update(Elput_Manager *manager)
|
||||
{
|
||||
Eina_List *l;
|
||||
Elput_Seat *eseat;
|
||||
|
||||
if (manager->input.thread) return;
|
||||
EINA_LIST_FOREACH(manager->input.seats, l, eseat)
|
||||
{
|
||||
if (!eseat->ptr) continue;
|
||||
|
||||
eseat->ptr->maxw = manager->input.pointer_w;
|
||||
eseat->ptr->maxh = manager->input.pointer_h;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
_cb_open_restricted(const char *path, int flags, void *data)
|
||||
{
|
||||
|
@ -101,6 +72,7 @@ _udev_seat_create(Elput_Manager *em, const char *name)
|
|||
|
||||
eseat = calloc(1, sizeof(Elput_Seat));
|
||||
if (!eseat) return NULL;
|
||||
eseat->manager = em;
|
||||
|
||||
eseat->name = eina_stringshare_add(name);
|
||||
em->input.seats = eina_list_append(em->input.seats, eseat);
|
||||
|
@ -307,11 +279,7 @@ _elput_input_init_end(void *data, Ecore_Thread *eth EINA_UNUSED)
|
|||
_cb_input_dispatch, &manager->input, NULL, NULL);
|
||||
|
||||
if (manager->input.hdlr)
|
||||
{
|
||||
_process_events(&manager->input);
|
||||
_elput_input_window_update(manager);
|
||||
_elput_input_pointer_max_update(manager);
|
||||
}
|
||||
_process_events(&manager->input);
|
||||
else
|
||||
{
|
||||
ERR("Could not create input fd handler");
|
||||
|
@ -496,12 +464,7 @@ elput_input_devices_get(Elput_Seat *seat)
|
|||
EAPI void
|
||||
elput_input_pointer_max_set(Elput_Manager *manager, int maxw, int maxh)
|
||||
{
|
||||
Eina_List *l;
|
||||
Elput_Seat *eseat;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(manager);
|
||||
manager->input.pointer_w = maxw;
|
||||
manager->input.pointer_h = maxh;
|
||||
|
||||
_elput_input_pointer_max_update(manager);
|
||||
}
|
||||
|
|
|
@ -131,7 +131,6 @@ elput_manager_window_set(Elput_Manager *manager, unsigned int window)
|
|||
EINA_SAFETY_ON_NULL_RETURN(manager);
|
||||
|
||||
manager->window = window;
|
||||
_elput_input_window_update(manager);
|
||||
}
|
||||
|
||||
EAPI const Eina_List *
|
||||
|
|
|
@ -149,7 +149,6 @@ struct _Elput_Pointer
|
|||
unsigned int timestamp;
|
||||
|
||||
int minx, miny;
|
||||
int maxw, maxh;
|
||||
int hotx, hoty;
|
||||
|
||||
struct
|
||||
|
@ -203,13 +202,13 @@ struct _Elput_Seat
|
|||
Elput_Touch *touch;
|
||||
|
||||
Eina_List *devices;
|
||||
Elput_Manager *manager;
|
||||
};
|
||||
|
||||
struct _Elput_Device
|
||||
{
|
||||
Elput_Seat *seat;
|
||||
|
||||
uint32_t window;
|
||||
uint32_t ow, oh;
|
||||
|
||||
const char *path;
|
||||
|
|
Loading…
Reference in New Issue