forked from enlightenment/efl
ecore_wl2: Replace window ids with pointers
Summary: There's no benefit to generating ids instead of just using the Ecore_Wl2_Window pointer in events. This has the added benefit of working around a really nasty hash collision bug when multiple ecore_evas engines are used at once. ref T7053 ref T6222 @beta_break Depends on D6521 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7053, T6222 Differential Revision: https://phab.enlightenment.org/D6522
This commit is contained in:
parent
acb125419f
commit
78f27a3eff
|
@ -90,7 +90,7 @@ typedef struct _Ecore_Wl2_Event_Global
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Focus_In
|
typedef struct _Ecore_Wl2_Event_Focus_In
|
||||||
{
|
{
|
||||||
unsigned int window;
|
Ecore_Wl2_Window *window;
|
||||||
unsigned int timestamp;
|
unsigned int timestamp;
|
||||||
Eo *dev; //The seat device
|
Eo *dev; //The seat device
|
||||||
Ecore_Wl2_Display *display;
|
Ecore_Wl2_Display *display;
|
||||||
|
@ -98,7 +98,7 @@ typedef struct _Ecore_Wl2_Event_Focus_In
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Focus_Out
|
typedef struct _Ecore_Wl2_Event_Focus_Out
|
||||||
{
|
{
|
||||||
unsigned int window;
|
Ecore_Wl2_Window *window;
|
||||||
unsigned int timestamp;
|
unsigned int timestamp;
|
||||||
Eo *dev; //The seat device
|
Eo *dev; //The seat device
|
||||||
Ecore_Wl2_Display *display;
|
Ecore_Wl2_Display *display;
|
||||||
|
@ -106,7 +106,7 @@ typedef struct _Ecore_Wl2_Event_Focus_Out
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Dnd_Enter
|
typedef struct _Ecore_Wl2_Event_Dnd_Enter
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
Ecore_Wl2_Offer *offer;
|
Ecore_Wl2_Offer *offer;
|
||||||
int x, y;
|
int x, y;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
|
@ -115,7 +115,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Enter
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Dnd_Leave
|
typedef struct _Ecore_Wl2_Event_Dnd_Leave
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
Ecore_Wl2_Offer *offer;
|
Ecore_Wl2_Offer *offer;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
Ecore_Wl2_Display *display;
|
Ecore_Wl2_Display *display;
|
||||||
|
@ -123,7 +123,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Leave
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Dnd_Motion
|
typedef struct _Ecore_Wl2_Event_Dnd_Motion
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
Ecore_Wl2_Offer *offer;
|
Ecore_Wl2_Offer *offer;
|
||||||
int x, y;
|
int x, y;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
|
@ -132,7 +132,7 @@ typedef struct _Ecore_Wl2_Event_Dnd_Motion
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Dnd_Drop
|
typedef struct _Ecore_Wl2_Event_Dnd_Drop
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
int x, y;
|
int x, y;
|
||||||
Ecore_Wl2_Offer *offer;
|
Ecore_Wl2_Offer *offer;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
|
@ -141,14 +141,14 @@ typedef struct _Ecore_Wl2_Event_Dnd_Drop
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Dnd_End
|
typedef struct _Ecore_Wl2_Event_Dnd_End
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
Ecore_Wl2_Display *display;
|
Ecore_Wl2_Display *display;
|
||||||
} Ecore_Wl2_Event_Dnd_End;
|
} Ecore_Wl2_Event_Dnd_End;
|
||||||
|
|
||||||
struct _Ecore_Wl2_Event_Data_Source_Event
|
struct _Ecore_Wl2_Event_Data_Source_Event
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
Ecore_Wl2_Drag_Action action;
|
Ecore_Wl2_Drag_Action action;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
uint32_t serial;
|
uint32_t serial;
|
||||||
|
@ -157,7 +157,7 @@ struct _Ecore_Wl2_Event_Data_Source_Event
|
||||||
|
|
||||||
typedef struct Ecore_Wl2_Event_Data_Source_End
|
typedef struct Ecore_Wl2_Event_Data_Source_End
|
||||||
{
|
{
|
||||||
unsigned int win, source;
|
Ecore_Wl2_Window *win, *source;
|
||||||
Ecore_Wl2_Drag_Action action;
|
Ecore_Wl2_Drag_Action action;
|
||||||
unsigned int seat;
|
unsigned int seat;
|
||||||
uint32_t serial;
|
uint32_t serial;
|
||||||
|
@ -216,7 +216,7 @@ typedef enum
|
||||||
typedef struct _Ecore_Wl2_Event_Device
|
typedef struct _Ecore_Wl2_Event_Device
|
||||||
{
|
{
|
||||||
Eo *dev;
|
Eo *dev;
|
||||||
int window_id;
|
Ecore_Wl2_Window *window;
|
||||||
unsigned int seat_id;
|
unsigned int seat_id;
|
||||||
Ecore_Wl2_Device_Type type;
|
Ecore_Wl2_Device_Type type;
|
||||||
} Ecore_Wl2_Event_Device;
|
} Ecore_Wl2_Event_Device;
|
||||||
|
@ -236,14 +236,15 @@ typedef enum
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Configure
|
typedef struct _Ecore_Wl2_Event_Window_Configure
|
||||||
{
|
{
|
||||||
unsigned int win, event_win, edges;
|
Ecore_Wl2_Window *win, *event_win;
|
||||||
|
unsigned int edges;
|
||||||
unsigned int w, h;
|
unsigned int w, h;
|
||||||
unsigned int states;
|
unsigned int states;
|
||||||
} Ecore_Wl2_Event_Window_Configure;
|
} Ecore_Wl2_Event_Window_Configure;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
|
typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
} Ecore_Wl2_Event_Window_Configure_Complete;
|
} Ecore_Wl2_Event_Window_Configure_Complete;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
|
typedef struct _Ecore_Wl2_Event_Input_Keymap_Changed
|
||||||
|
@ -281,7 +282,7 @@ typedef struct _Ecore_Wl2_Event_Output_Transform
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Rotation
|
typedef struct _Ecore_Wl2_Event_Window_Rotation
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
int rotation, w, h, angle;
|
int rotation, w, h, angle;
|
||||||
Eina_Bool resize : 1;
|
Eina_Bool resize : 1;
|
||||||
} Ecore_Wl2_Event_Window_Rotation;
|
} Ecore_Wl2_Event_Window_Rotation;
|
||||||
|
@ -292,35 +293,35 @@ typedef struct _Ecore_Wl2_Event_Window_Rotation Ecore_Wl2_Event_Window_Rotation_
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Show
|
typedef struct _Ecore_Wl2_Event_Window_Show
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
unsigned int parent_win;
|
Ecore_Wl2_Window *parent_win;
|
||||||
unsigned int event_win;
|
Ecore_Wl2_Window *event_win;
|
||||||
} Ecore_Wl2_Event_Window_Show;
|
} Ecore_Wl2_Event_Window_Show;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Hide
|
typedef struct _Ecore_Wl2_Event_Window_Hide
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
unsigned int parent_win;
|
Ecore_Wl2_Window *parent_win;
|
||||||
unsigned int event_win;
|
Ecore_Wl2_Window *event_win;
|
||||||
} Ecore_Wl2_Event_Window_Hide;
|
} Ecore_Wl2_Event_Window_Hide;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Activate
|
typedef struct _Ecore_Wl2_Event_Window_Activate
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
unsigned int parent_win;
|
Ecore_Wl2_Window *parent_win;
|
||||||
unsigned int event_win;
|
Ecore_Wl2_Window *event_win;
|
||||||
} Ecore_Wl2_Event_Window_Activate;
|
} Ecore_Wl2_Event_Window_Activate;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Deactivate
|
typedef struct _Ecore_Wl2_Event_Window_Deactivate
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
unsigned int parent_win;
|
Ecore_Wl2_Window *parent_win;
|
||||||
unsigned int event_win;
|
Ecore_Wl2_Window *event_win;
|
||||||
} Ecore_Wl2_Event_Window_Deactivate;
|
} Ecore_Wl2_Event_Window_Deactivate;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
|
typedef struct _Ecore_Wl2_Event_Window_Iconify_State_Change
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
unsigned int iconified;
|
unsigned int iconified;
|
||||||
unsigned int force;
|
unsigned int force;
|
||||||
} Ecore_Wl2_Event_Window_Iconify_State_Change;
|
} Ecore_Wl2_Event_Window_Iconify_State_Change;
|
||||||
|
@ -342,20 +343,20 @@ typedef enum _Ecore_Wl2_Window_Type
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
|
typedef struct _Ecore_Wl2_Event_Aux_Hint_Allowed
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
int id;
|
int id;
|
||||||
Ecore_Wl2_Display *display;
|
Ecore_Wl2_Display *display;
|
||||||
} Ecore_Wl2_Event_Aux_Hint_Allowed;
|
} Ecore_Wl2_Event_Aux_Hint_Allowed;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Event_Aux_Hint_Supported
|
typedef struct _Ecore_Wl2_Event_Aux_Hint_Supported
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
Ecore_Wl2_Display *display;
|
Ecore_Wl2_Display *display;
|
||||||
} Ecore_Wl2_Event_Aux_Hint_Supported;
|
} Ecore_Wl2_Event_Aux_Hint_Supported;
|
||||||
|
|
||||||
typedef struct Ecore_Wl2_Event_Aux_Message
|
typedef struct Ecore_Wl2_Event_Aux_Message
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
Eina_Stringshare *key;
|
Eina_Stringshare *key;
|
||||||
Eina_Stringshare *val;
|
Eina_Stringshare *val;
|
||||||
Eina_List *options;
|
Eina_List *options;
|
||||||
|
@ -364,7 +365,7 @@ typedef struct Ecore_Wl2_Event_Aux_Message
|
||||||
|
|
||||||
typedef struct Ecore_Wl2_Event_Window_Offscreen
|
typedef struct Ecore_Wl2_Event_Window_Offscreen
|
||||||
{
|
{
|
||||||
unsigned int win;
|
Ecore_Wl2_Window *win;
|
||||||
} Ecore_Wl2_Event_Window_Offscreen;
|
} Ecore_Wl2_Event_Window_Offscreen;
|
||||||
|
|
||||||
typedef struct _Ecore_Wl2_Buffer Ecore_Wl2_Buffer;
|
typedef struct _Ecore_Wl2_Buffer Ecore_Wl2_Buffer;
|
||||||
|
@ -681,7 +682,7 @@ EAPI Ecore_Wl2_Input *ecore_wl2_display_input_find_by_name(const Ecore_Wl2_Displ
|
||||||
* @ingroup Ecore_Wl2_Display_Group
|
* @ingroup Ecore_Wl2_Display_Group
|
||||||
* @since 1.17
|
* @since 1.17
|
||||||
*/
|
*/
|
||||||
EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id);
|
EAPI Ecore_Wl2_Window *ecore_wl2_display_window_find(Ecore_Wl2_Display *display, uintptr_t id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the Wayland Registry used for the current Wayland display.
|
* Retrieves the Wayland Registry used for the current Wayland display.
|
||||||
|
@ -743,18 +744,6 @@ EAPI const char *ecore_wl2_display_name_get(const Ecore_Wl2_Display *display);
|
||||||
*/
|
*/
|
||||||
EAPI Ecore_Wl2_Window *ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h);
|
EAPI Ecore_Wl2_Window *ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h);
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the window id associated with an Ecore_Wl2_Window
|
|
||||||
*
|
|
||||||
* @param window The Ecore_Wl2_Window of which to retrieve the window id
|
|
||||||
*
|
|
||||||
* @return The id associated with this window
|
|
||||||
*
|
|
||||||
* @ingroup Ecore_Wl2_Window_Group
|
|
||||||
* @since 1.17
|
|
||||||
*/
|
|
||||||
EAPI int ecore_wl2_window_id_get(Ecore_Wl2_Window *window);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the wl_surface which belongs to this window
|
* Get the wl_surface which belongs to this window
|
||||||
*
|
*
|
||||||
|
|
|
@ -145,7 +145,7 @@ _aux_hints_supported_aux_hints(void *data, struct efl_aux_hints *aux_hints EINA_
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(ev = calloc(1, sizeof(Ecore_Wl2_Event_Aux_Hint_Supported)))) return;
|
if (!(ev = calloc(1, sizeof(Ecore_Wl2_Event_Aux_Hint_Supported)))) return;
|
||||||
ev->win = win->id;
|
ev->win = win;
|
||||||
ev->display = ewd;
|
ev->display = ewd;
|
||||||
ewd->refs++;
|
ewd->refs++;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_AUX_HINT_SUPPORTED, ev, _display_event_free, ewd);
|
ecore_event_add(ECORE_WL2_EVENT_AUX_HINT_SUPPORTED, ev, _display_event_free, ewd);
|
||||||
|
@ -164,7 +164,7 @@ _aux_hints_allowed_aux_hint(void *data, struct efl_aux_hints *aux_hints EINA_UN
|
||||||
if (!win) return;
|
if (!win) return;
|
||||||
|
|
||||||
if (!(ev = calloc(1, sizeof(Ecore_Wl2_Event_Aux_Hint_Allowed)))) return;
|
if (!(ev = calloc(1, sizeof(Ecore_Wl2_Event_Aux_Hint_Allowed)))) return;
|
||||||
ev->win = win->id;
|
ev->win = win;
|
||||||
ev->id = id;
|
ev->id = id;
|
||||||
ev->display = ewd;
|
ev->display = ewd;
|
||||||
ewd->refs++;
|
ewd->refs++;
|
||||||
|
@ -212,7 +212,7 @@ _aux_hints_aux_message(void *data, struct efl_aux_hints *aux_hints EINA_UNUSED,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ev->win = win->id;
|
ev->win = win;
|
||||||
ev->key = eina_stringshare_add(key);
|
ev->key = eina_stringshare_add(key);
|
||||||
ev->val = eina_stringshare_add(val);
|
ev->val = eina_stringshare_add(val);
|
||||||
ev->options = opt_list;
|
ev->options = opt_list;
|
||||||
|
@ -1084,16 +1084,9 @@ ecore_wl2_display_screen_size_get(Ecore_Wl2_Display *display, int *w, int *h)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Ecore_Wl2_Window *
|
EAPI Ecore_Wl2_Window *
|
||||||
ecore_wl2_display_window_find(Ecore_Wl2_Display *display, unsigned int id)
|
ecore_wl2_display_window_find(Ecore_Wl2_Display *display EINA_UNUSED, uintptr_t id)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Window *window;
|
return (Ecore_Wl2_Window *)id;
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL);
|
|
||||||
|
|
||||||
EINA_INLIST_FOREACH(display->windows, window)
|
|
||||||
if (window->id == (int)id) return window;
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI struct wl_registry *
|
EAPI struct wl_registry *
|
||||||
|
|
|
@ -53,21 +53,21 @@ struct _Ecore_Wl2_Offer
|
||||||
uint32_t serial;
|
uint32_t serial;
|
||||||
Eina_List *reads;
|
Eina_List *reads;
|
||||||
int ref;
|
int ref;
|
||||||
unsigned int window_id;
|
Ecore_Wl2_Window *window;
|
||||||
Eina_Bool proxied : 1;
|
Eina_Bool proxied : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
Ecore_Wl2_Window *
|
||||||
_win_id_get(Ecore_Wl2_Input *input)
|
_win_id_get(Ecore_Wl2_Input *input)
|
||||||
{
|
{
|
||||||
int win = 0;
|
Ecore_Wl2_Window *win = NULL;
|
||||||
|
|
||||||
if (input->focus.pointer)
|
if (input->focus.pointer)
|
||||||
win = input->focus.pointer->id;
|
win = input->focus.pointer;
|
||||||
else if (input->focus.prev_pointer)
|
else if (input->focus.prev_pointer)
|
||||||
win = input->focus.prev_pointer->id;
|
win = input->focus.prev_pointer;
|
||||||
else if (input->focus.keyboard)
|
else if (input->focus.keyboard)
|
||||||
win = input->focus.keyboard->id;
|
win = input->focus.keyboard;
|
||||||
|
|
||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
@ -149,7 +149,7 @@ static void
|
||||||
event_fill(struct _Ecore_Wl2_Event_Data_Source_Event *ev, Ecore_Wl2_Input *input)
|
event_fill(struct _Ecore_Wl2_Event_Data_Source_Event *ev, Ecore_Wl2_Input *input)
|
||||||
{
|
{
|
||||||
if (input->focus.keyboard)
|
if (input->focus.keyboard)
|
||||||
ev->source = input->focus.keyboard->id;
|
ev->source = input->focus.keyboard;
|
||||||
|
|
||||||
ev->win = _win_id_get(input);
|
ev->win = _win_id_get(input);
|
||||||
ev->action = input->data.drag.action;
|
ev->action = input->data.drag.action;
|
||||||
|
@ -256,7 +256,7 @@ _ecore_wl2_dnd_enter(Ecore_Wl2_Input *input, struct wl_data_offer *offer, struct
|
||||||
if (input->drag.offer)
|
if (input->drag.offer)
|
||||||
{
|
{
|
||||||
input->drag.offer->serial = serial;
|
input->drag.offer->serial = serial;
|
||||||
input->drag.offer->window_id = window->id;
|
input->drag.offer->window = window;
|
||||||
|
|
||||||
if (input->display->wl.data_device_manager_version >=
|
if (input->display->wl.data_device_manager_version >=
|
||||||
WL_DATA_OFFER_SET_ACTIONS_SINCE_VERSION)
|
WL_DATA_OFFER_SET_ACTIONS_SINCE_VERSION)
|
||||||
|
@ -269,14 +269,14 @@ _ecore_wl2_dnd_enter(Ecore_Wl2_Input *input, struct wl_data_offer *offer, struct
|
||||||
else input->drag.offer = NULL;
|
else input->drag.offer = NULL;
|
||||||
|
|
||||||
input->drag.enter_serial = serial;
|
input->drag.enter_serial = serial;
|
||||||
input->drag.window_id = window->id;
|
input->drag.window = window;
|
||||||
|
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Dnd_Enter));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Dnd_Enter));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
if (input->focus.keyboard)
|
if (input->focus.keyboard)
|
||||||
ev->source = input->focus.keyboard->id;
|
ev->source = input->focus.keyboard;
|
||||||
ev->win = input->drag.window_id;
|
ev->win = input->drag.window;
|
||||||
|
|
||||||
ev->x = x;
|
ev->x = x;
|
||||||
ev->y = y;
|
ev->y = y;
|
||||||
|
@ -311,9 +311,9 @@ _ecore_wl2_dnd_leave(Ecore_Wl2_Input *input)
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
if (input->focus.keyboard)
|
if (input->focus.keyboard)
|
||||||
ev->source = input->focus.keyboard->id;
|
ev->source = input->focus.keyboard;
|
||||||
|
|
||||||
ev->win = input->drag.window_id;
|
ev->win = input->drag.window;
|
||||||
ev->offer = input->drag.offer;
|
ev->offer = input->drag.offer;
|
||||||
if (ev->offer)
|
if (ev->offer)
|
||||||
ev->offer->ref++;
|
ev->offer->ref++;
|
||||||
|
@ -321,7 +321,7 @@ _ecore_wl2_dnd_leave(Ecore_Wl2_Input *input)
|
||||||
ev->display = input->display;
|
ev->display = input->display;
|
||||||
ev->display->refs++;
|
ev->display->refs++;
|
||||||
|
|
||||||
input->drag.window_id = 0;
|
input->drag.window = NULL;
|
||||||
input->drag.enter_serial = 0;
|
input->drag.enter_serial = 0;
|
||||||
input->drag.offer = NULL;
|
input->drag.offer = NULL;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_DND_LEAVE, ev, _delay_offer_destroy, ev->offer);
|
ecore_event_add(ECORE_WL2_EVENT_DND_LEAVE, ev, _delay_offer_destroy, ev->offer);
|
||||||
|
@ -342,9 +342,9 @@ _ecore_wl2_dnd_motion(Ecore_Wl2_Input *input, int x, int y, uint32_t serial)
|
||||||
input->drag.offer->serial = serial;
|
input->drag.offer->serial = serial;
|
||||||
|
|
||||||
if (input->focus.keyboard)
|
if (input->focus.keyboard)
|
||||||
ev->source = input->focus.keyboard->id;
|
ev->source = input->focus.keyboard;
|
||||||
|
|
||||||
ev->win = input->drag.window_id;
|
ev->win = input->drag.window;
|
||||||
ev->x = x;
|
ev->x = x;
|
||||||
ev->y = y;
|
ev->y = y;
|
||||||
ev->offer = input->drag.offer;
|
ev->offer = input->drag.offer;
|
||||||
|
@ -364,9 +364,9 @@ _ecore_wl2_dnd_drop(Ecore_Wl2_Input *input)
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
if (input->focus.keyboard)
|
if (input->focus.keyboard)
|
||||||
ev->source = input->focus.keyboard->id;
|
ev->source = input->focus.keyboard;
|
||||||
|
|
||||||
ev->win = input->drag.window_id;
|
ev->win = input->drag.window;
|
||||||
ev->x = input->pointer.sx;
|
ev->x = input->pointer.sx;
|
||||||
ev->y = input->pointer.sy;
|
ev->y = input->pointer.sy;
|
||||||
ev->offer = input->drag.offer;
|
ev->offer = input->drag.offer;
|
||||||
|
@ -524,7 +524,7 @@ ecore_wl2_dnd_drag_end(Ecore_Wl2_Input *input)
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
if (input->focus.keyboard)
|
if (input->focus.keyboard)
|
||||||
ev->source = input->focus.keyboard->id;
|
ev->source = input->focus.keyboard;
|
||||||
|
|
||||||
|
|
||||||
ev->win = _win_id_get(input);
|
ev->win = _win_id_get(input);
|
||||||
|
|
|
@ -47,10 +47,10 @@ typedef struct _Ecore_Wl2_Mouse_Down_Info
|
||||||
{
|
{
|
||||||
EINA_INLIST;
|
EINA_INLIST;
|
||||||
int device, sx, sy;
|
int device, sx, sy;
|
||||||
int last_win;
|
Ecore_Wl2_Window *last_win;
|
||||||
int last_last_win;
|
Ecore_Wl2_Window *last_last_win;
|
||||||
int last_event_win;
|
Ecore_Wl2_Window *last_event_win;
|
||||||
int last_last_event_win;
|
Ecore_Wl2_Window *last_last_event_win;
|
||||||
unsigned int last_time;
|
unsigned int last_time;
|
||||||
unsigned int last_last_time;
|
unsigned int last_last_time;
|
||||||
Eina_Bool double_click : 1;
|
Eina_Bool double_click : 1;
|
||||||
|
@ -82,14 +82,14 @@ _ecore_wl2_input_mouse_down_info_get(int device)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Ecore_Wl2_Input_Devices *
|
static Ecore_Wl2_Input_Devices *
|
||||||
_ecore_wl2_devices_get(const Ecore_Wl2_Input *input, int window_id)
|
_ecore_wl2_devices_get(const Ecore_Wl2_Input *input, const Ecore_Wl2_Window *window)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Input_Devices *devices;
|
Ecore_Wl2_Input_Devices *devices;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(input->devices_list, l, devices)
|
EINA_LIST_FOREACH(input->devices_list, l, devices)
|
||||||
{
|
{
|
||||||
if (devices->window_id == window_id)
|
if (devices->window == window)
|
||||||
return devices;
|
return devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,11 +97,11 @@ _ecore_wl2_devices_get(const Ecore_Wl2_Input *input, int window_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eo *
|
static Eo *
|
||||||
_ecore_wl2_mouse_dev_get(Ecore_Wl2_Input *input, int window_id)
|
_ecore_wl2_mouse_dev_get(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Input_Devices *devices;
|
Ecore_Wl2_Input_Devices *devices;
|
||||||
|
|
||||||
devices = _ecore_wl2_devices_get(input, window_id);
|
devices = _ecore_wl2_devices_get(input, window);
|
||||||
if (devices && devices->pointer_dev)
|
if (devices && devices->pointer_dev)
|
||||||
return efl_ref(devices->pointer_dev);
|
return efl_ref(devices->pointer_dev);
|
||||||
|
|
||||||
|
@ -109,11 +109,11 @@ _ecore_wl2_mouse_dev_get(Ecore_Wl2_Input *input, int window_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eo *
|
static Eo *
|
||||||
_ecore_wl2_touch_dev_get(Ecore_Wl2_Input *input, int window_id)
|
_ecore_wl2_touch_dev_get(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Input_Devices *devices;
|
Ecore_Wl2_Input_Devices *devices;
|
||||||
|
|
||||||
devices = _ecore_wl2_devices_get(input, window_id);
|
devices = _ecore_wl2_devices_get(input, window);
|
||||||
if (devices && devices->touch_dev)
|
if (devices && devices->touch_dev)
|
||||||
return efl_ref(devices->touch_dev);
|
return efl_ref(devices->touch_dev);
|
||||||
|
|
||||||
|
@ -121,11 +121,11 @@ _ecore_wl2_touch_dev_get(Ecore_Wl2_Input *input, int window_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eo *
|
static Eo *
|
||||||
_ecore_wl2_seat_dev_get(Ecore_Wl2_Input *input, int window_id)
|
_ecore_wl2_seat_dev_get(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Input_Devices *devices;
|
Ecore_Wl2_Input_Devices *devices;
|
||||||
|
|
||||||
devices = _ecore_wl2_devices_get(input, window_id);
|
devices = _ecore_wl2_devices_get(input, window);
|
||||||
if (devices)
|
if (devices)
|
||||||
return efl_ref(devices->seat_dev);
|
return efl_ref(devices->seat_dev);
|
||||||
|
|
||||||
|
@ -150,11 +150,11 @@ _ecore_wl2_input_mouse_in_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window)
|
||||||
|
|
||||||
ev->x = input->pointer.sx;
|
ev->x = input->pointer.sx;
|
||||||
ev->y = input->pointer.sy;
|
ev->y = input->pointer.sy;
|
||||||
ev->window = window->id;
|
ev->window = (Ecore_Window)window;
|
||||||
ev->event_window = window->id;
|
ev->event_window = (Ecore_Window)window;
|
||||||
ev->timestamp = input->timestamp;
|
ev->timestamp = input->timestamp;
|
||||||
ev->modifiers = input->keyboard.modifiers;
|
ev->modifiers = input->keyboard.modifiers;
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, window);
|
||||||
|
|
||||||
ecore_event_add(ECORE_EVENT_MOUSE_IN, ev, _input_event_cb_free, ev->dev);
|
ecore_event_add(ECORE_EVENT_MOUSE_IN, ev, _input_event_cb_free, ev->dev);
|
||||||
}
|
}
|
||||||
|
@ -169,11 +169,11 @@ _ecore_wl2_input_mouse_out_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window
|
||||||
|
|
||||||
ev->x = input->pointer.sx;
|
ev->x = input->pointer.sx;
|
||||||
ev->y = input->pointer.sy;
|
ev->y = input->pointer.sy;
|
||||||
ev->window = window->id;
|
ev->window = (Ecore_Window)window;
|
||||||
ev->event_window = window->id;
|
ev->event_window = (Ecore_Window)window;
|
||||||
ev->timestamp = input->timestamp;
|
ev->timestamp = input->timestamp;
|
||||||
ev->modifiers = input->keyboard.modifiers;
|
ev->modifiers = input->keyboard.modifiers;
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, window);
|
||||||
|
|
||||||
ecore_event_add(ECORE_EVENT_MOUSE_OUT, ev, _input_event_cb_free, ev->dev);
|
ecore_event_add(ECORE_EVENT_MOUSE_OUT, ev, _input_event_cb_free, ev->dev);
|
||||||
}
|
}
|
||||||
|
@ -187,8 +187,8 @@ _ecore_wl2_input_mouse_move_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
ev = calloc(1, sizeof(Ecore_Event_Mouse_Move));
|
ev = calloc(1, sizeof(Ecore_Event_Mouse_Move));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->window = window->id;
|
ev->window = (Ecore_Window)window;
|
||||||
ev->event_window = window->id;
|
ev->event_window = (Ecore_Window)window;
|
||||||
ev->timestamp = input->timestamp;
|
ev->timestamp = input->timestamp;
|
||||||
ev->x = input->pointer.sx;
|
ev->x = input->pointer.sx;
|
||||||
ev->y = input->pointer.sy;
|
ev->y = input->pointer.sy;
|
||||||
|
@ -207,9 +207,9 @@ _ecore_wl2_input_mouse_move_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
ev->multi.root.y = input->pointer.sy;
|
ev->multi.root.y = input->pointer.sy;
|
||||||
|
|
||||||
if ((input->focus.touch) && (input->focus.touch == window))
|
if ((input->focus.touch) && (input->focus.touch == window))
|
||||||
ev->dev = _ecore_wl2_touch_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_touch_dev_get(input, window);
|
||||||
else if ((input->focus.pointer) && (input->focus.pointer == window))
|
else if ((input->focus.pointer) && (input->focus.pointer == window))
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, window);
|
||||||
|
|
||||||
info = _ecore_wl2_input_mouse_down_info_get(device);
|
info = _ecore_wl2_input_mouse_down_info_get(device);
|
||||||
if (info)
|
if (info)
|
||||||
|
@ -248,27 +248,27 @@ _ecore_wl2_input_mouse_wheel_send(Ecore_Wl2_Input *input, unsigned int axis, int
|
||||||
|
|
||||||
if (input->grab.window)
|
if (input->grab.window)
|
||||||
{
|
{
|
||||||
ev->window = input->grab.window->id;
|
ev->window = (Ecore_Window)input->grab.window;
|
||||||
ev->event_window = input->grab.window->id;
|
ev->event_window = (Ecore_Window)input->grab.window;
|
||||||
}
|
}
|
||||||
else if (input->focus.pointer)
|
else if (input->focus.pointer)
|
||||||
{
|
{
|
||||||
ev->window = input->focus.pointer->id;
|
ev->window = (Ecore_Window)input->focus.pointer;
|
||||||
ev->event_window = input->focus.pointer->id;
|
ev->event_window = (Ecore_Window)input->focus.pointer;
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, input->focus.pointer->id);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, input->focus.pointer);
|
||||||
}
|
}
|
||||||
else if (input->focus.touch)
|
else if (input->focus.touch)
|
||||||
{
|
{
|
||||||
ev->window = input->focus.touch->id;
|
ev->window = (Ecore_Window)input->focus.touch;
|
||||||
ev->event_window = input->focus.touch->id;
|
ev->event_window = (Ecore_Window)input->focus.touch;
|
||||||
ev->dev = _ecore_wl2_touch_dev_get(input, input->focus.touch->id);
|
ev->dev = _ecore_wl2_touch_dev_get(input, input->focus.touch);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ev->dev)
|
if (!ev->dev)
|
||||||
{
|
{
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, ev->window);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, (Ecore_Wl2_Window *)ev->window);
|
||||||
if (!ev->dev)
|
if (!ev->dev)
|
||||||
ev->dev = _ecore_wl2_touch_dev_get(input, ev->window);
|
ev->dev = _ecore_wl2_touch_dev_get(input, (Ecore_Wl2_Window *)ev->window);
|
||||||
}
|
}
|
||||||
|
|
||||||
ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, _input_event_cb_free, ev->dev);
|
ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, _input_event_cb_free, ev->dev);
|
||||||
|
@ -318,8 +318,8 @@ _ecore_wl2_input_mouse_down_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((int)(timestamp - info->last_time) <= (int)(1000 * 0.25)) &&
|
if (((int)(timestamp - info->last_time) <= (int)(1000 * 0.25)) &&
|
||||||
((window) && (window->id == info->last_win) &&
|
((window) && (window == info->last_win) &&
|
||||||
(window->id == info->last_event_win)))
|
(window == info->last_event_win)))
|
||||||
{
|
{
|
||||||
ev->double_click = 1;
|
ev->double_click = 1;
|
||||||
info->double_click = EINA_TRUE;
|
info->double_click = EINA_TRUE;
|
||||||
|
@ -332,10 +332,10 @@ _ecore_wl2_input_mouse_down_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
|
|
||||||
if (((int)(timestamp - info->last_last_time) <=
|
if (((int)(timestamp - info->last_last_time) <=
|
||||||
(int)(2 * 1000 * 0.25)) &&
|
(int)(2 * 1000 * 0.25)) &&
|
||||||
((window) && (window->id == info->last_win) &&
|
((window) && (window == info->last_win) &&
|
||||||
(window->id == info->last_last_win) &&
|
(window == info->last_last_win) &&
|
||||||
(window->id == info->last_event_win) &&
|
(window == info->last_event_win) &&
|
||||||
(window->id == info->last_last_event_win)))
|
(window == info->last_last_event_win)))
|
||||||
{
|
{
|
||||||
ev->triple_click = 1;
|
ev->triple_click = 1;
|
||||||
info->triple_click = EINA_TRUE;
|
info->triple_click = EINA_TRUE;
|
||||||
|
@ -357,13 +357,13 @@ _ecore_wl2_input_mouse_down_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
|
|
||||||
if (window)
|
if (window)
|
||||||
{
|
{
|
||||||
ev->window = window->id;
|
ev->window = (Ecore_Window)window;
|
||||||
ev->event_window = window->id;
|
ev->event_window = (Ecore_Window)window;
|
||||||
|
|
||||||
if ((input->focus.touch) && (input->focus.touch == window))
|
if ((input->focus.touch) && (input->focus.touch == window))
|
||||||
ev->dev = _ecore_wl2_touch_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_touch_dev_get(input, window);
|
||||||
else if ((input->focus.pointer) && (input->focus.pointer == window))
|
else if ((input->focus.pointer) && (input->focus.pointer == window))
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, window);
|
||||||
}
|
}
|
||||||
|
|
||||||
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev,
|
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, ev,
|
||||||
|
@ -372,9 +372,9 @@ _ecore_wl2_input_mouse_down_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *windo
|
||||||
if ((info) && (!info->triple_click))
|
if ((info) && (!info->triple_click))
|
||||||
{
|
{
|
||||||
info->last_last_win = info->last_win;
|
info->last_last_win = info->last_win;
|
||||||
info->last_win = ev->window;
|
info->last_win = (Ecore_Wl2_Window *)ev->window;
|
||||||
info->last_last_event_win = info->last_event_win;
|
info->last_last_event_win = info->last_event_win;
|
||||||
info->last_event_win = ev->window;
|
info->last_event_win = (Ecore_Wl2_Window *)ev->window;
|
||||||
info->last_last_time = info->last_time;
|
info->last_last_time = info->last_time;
|
||||||
info->last_time = timestamp;
|
info->last_time = timestamp;
|
||||||
}
|
}
|
||||||
|
@ -433,13 +433,13 @@ _ecore_wl2_input_mouse_up_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window,
|
||||||
ev->multi.root.x = input->pointer.sx;
|
ev->multi.root.x = input->pointer.sx;
|
||||||
ev->multi.root.y = input->pointer.sy;
|
ev->multi.root.y = input->pointer.sy;
|
||||||
|
|
||||||
ev->window = window->id;
|
ev->window = (Ecore_Window)window;
|
||||||
ev->event_window = window->id;
|
ev->event_window = (Ecore_Window)window;
|
||||||
|
|
||||||
if ((input->focus.touch) && (input->focus.touch == window))
|
if ((input->focus.touch) && (input->focus.touch == window))
|
||||||
ev->dev = _ecore_wl2_touch_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_touch_dev_get(input, window);
|
||||||
else if ((input->focus.pointer) && (input->focus.pointer == window))
|
else if ((input->focus.pointer) && (input->focus.pointer == window))
|
||||||
ev->dev = _ecore_wl2_mouse_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_mouse_dev_get(input, window);
|
||||||
|
|
||||||
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev,
|
ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev,
|
||||||
_input_event_cb_free, ev->dev);
|
_input_event_cb_free, ev->dev);
|
||||||
|
@ -464,8 +464,8 @@ _ecore_wl2_input_focus_in_send(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input)
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->timestamp = input->timestamp;
|
ev->timestamp = input->timestamp;
|
||||||
ev->window = window->id;
|
ev->window = window;
|
||||||
ev->dev = _ecore_wl2_seat_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_seat_dev_get(input, window);
|
||||||
ev->display = input->display;
|
ev->display = input->display;
|
||||||
ev->display->refs++;
|
ev->display->refs++;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_FOCUS_IN, ev, _input_event_focus_cb_free,
|
ecore_event_add(ECORE_WL2_EVENT_FOCUS_IN, ev, _input_event_focus_cb_free,
|
||||||
|
@ -481,8 +481,8 @@ _ecore_wl2_input_focus_out_send(Ecore_Wl2_Window *window, Ecore_Wl2_Input *input
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->timestamp = input->timestamp;
|
ev->timestamp = input->timestamp;
|
||||||
ev->window = window->id;
|
ev->window = window;
|
||||||
ev->dev = _ecore_wl2_seat_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_seat_dev_get(input, window);
|
||||||
ev->display = input->display;
|
ev->display = input->display;
|
||||||
ev->display->refs++;
|
ev->display->refs++;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_FOCUS_OUT, ev, _input_event_focus_cb_free,
|
ecore_event_add(ECORE_WL2_EVENT_FOCUS_OUT, ev, _input_event_focus_cb_free,
|
||||||
|
@ -609,11 +609,11 @@ _ecore_wl2_input_symbol_rep_find(xkb_keysym_t keysym, char *buffer, int size, un
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eo *
|
static Eo *
|
||||||
_ecore_wl2_keyboard_dev_get(Ecore_Wl2_Input *input, int window_id)
|
_ecore_wl2_keyboard_dev_get(Ecore_Wl2_Input *input, Ecore_Wl2_Window * window)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Input_Devices *devices;
|
Ecore_Wl2_Input_Devices *devices;
|
||||||
|
|
||||||
devices = _ecore_wl2_devices_get(input, window_id);
|
devices = _ecore_wl2_devices_get(input, window);
|
||||||
if (devices && devices->keyboard_dev)
|
if (devices && devices->keyboard_dev)
|
||||||
return efl_ref(devices->keyboard_dev);
|
return efl_ref(devices->keyboard_dev);
|
||||||
|
|
||||||
|
@ -649,12 +649,12 @@ _ecore_wl2_input_key_send(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, xkb_
|
||||||
strcpy((char *)ev->key, key);
|
strcpy((char *)ev->key, key);
|
||||||
if (comp_len) strcpy((char *)ev->compose, compose);
|
if (comp_len) strcpy((char *)ev->compose, compose);
|
||||||
|
|
||||||
ev->window = window->id;
|
ev->window = (Ecore_Window)window;
|
||||||
ev->event_window = window->id;
|
ev->event_window = (Ecore_Window)window;
|
||||||
ev->timestamp = timestamp;
|
ev->timestamp = timestamp;
|
||||||
ev->modifiers = input->keyboard.modifiers;
|
ev->modifiers = input->keyboard.modifiers;
|
||||||
ev->keycode = code;
|
ev->keycode = code;
|
||||||
ev->dev = _ecore_wl2_keyboard_dev_get(input, window->id);
|
ev->dev = _ecore_wl2_keyboard_dev_get(input, window);
|
||||||
|
|
||||||
/* DBG("Emitting Key event (%s,%s,%s,%s)\n", ev->keyname, ev->key, ev->compose, ev->string); */
|
/* DBG("Emitting Key event (%s,%s,%s,%s)\n", ev->keyname, ev->key, ev->compose, ev->string); */
|
||||||
|
|
||||||
|
@ -1535,7 +1535,7 @@ _ecore_wl2_cb_device_event(void *data, int type, void *event)
|
||||||
|
|
||||||
EINA_LIST_FOREACH(input->devices_list, l, devs)
|
EINA_LIST_FOREACH(input->devices_list, l, devs)
|
||||||
{
|
{
|
||||||
if (devs->window_id == ev->window_id)
|
if (devs->window == ev->window)
|
||||||
{
|
{
|
||||||
devices = devs;
|
devices = devs;
|
||||||
break;
|
break;
|
||||||
|
@ -1550,7 +1550,7 @@ _ecore_wl2_cb_device_event(void *data, int type, void *event)
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(devices, ECORE_CALLBACK_PASS_ON);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(devices, ECORE_CALLBACK_PASS_ON);
|
||||||
input->devices_list =
|
input->devices_list =
|
||||||
eina_list_append(input->devices_list, devices);
|
eina_list_append(input->devices_list, devices);
|
||||||
devices->window_id = ev->window_id;
|
devices->window = ev->window;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev->type == ECORE_WL2_DEVICE_TYPE_POINTER)
|
if (ev->type == ECORE_WL2_DEVICE_TYPE_POINTER)
|
||||||
|
@ -1747,7 +1747,7 @@ _ecore_wl2_input_window_remove(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window)
|
||||||
}
|
}
|
||||||
|
|
||||||
EINA_LIST_FOREACH_SAFE(input->devices_list, l, l_next, devices)
|
EINA_LIST_FOREACH_SAFE(input->devices_list, l, l_next, devices)
|
||||||
if (devices->window_id == window->id)
|
if (devices->window == window)
|
||||||
{
|
{
|
||||||
_ecore_wl2_devices_free(devices);
|
_ecore_wl2_devices_free(devices);
|
||||||
input->devices_list = eina_list_remove_list(input->devices_list, l);
|
input->devices_list = eina_list_remove_list(input->devices_list, l);
|
||||||
|
@ -1828,7 +1828,7 @@ ecore_wl2_input_seat_device_get(const Ecore_Wl2_Input *input, const Ecore_Wl2_Wi
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(input, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(input, NULL);
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(window, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(window, NULL);
|
||||||
|
|
||||||
devices = _ecore_wl2_devices_get(input, window->id);
|
devices = _ecore_wl2_devices_get(input, window);
|
||||||
return devices ? devices->seat_dev : NULL;
|
return devices ? devices->seat_dev : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ typedef struct _Ecore_Wl2_Input_Devices
|
||||||
Eo *keyboard_dev;
|
Eo *keyboard_dev;
|
||||||
Eo *touch_dev;
|
Eo *touch_dev;
|
||||||
Eo *seat_dev;
|
Eo *seat_dev;
|
||||||
int window_id;
|
Ecore_Wl2_Window *window;
|
||||||
} Ecore_Wl2_Input_Devices;
|
} Ecore_Wl2_Input_Devices;
|
||||||
|
|
||||||
struct _Ecore_Wl2_Display
|
struct _Ecore_Wl2_Display
|
||||||
|
@ -173,7 +173,7 @@ struct _Ecore_Wl2_Window
|
||||||
|
|
||||||
Ecore_Wl2_Surface *wl2_surface;
|
Ecore_Wl2_Surface *wl2_surface;
|
||||||
|
|
||||||
int id, rotation, surface_id;
|
int rotation, surface_id;
|
||||||
const char *title;
|
const char *title;
|
||||||
const char *class;
|
const char *class;
|
||||||
const char *role;
|
const char *role;
|
||||||
|
@ -509,7 +509,7 @@ struct _Ecore_Wl2_Input
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Offer *offer;
|
Ecore_Wl2_Offer *offer;
|
||||||
uint32_t enter_serial;
|
uint32_t enter_serial;
|
||||||
Ecore_Window window_id;
|
Ecore_Wl2_Window *window;
|
||||||
} drag, selection;
|
} drag, selection;
|
||||||
|
|
||||||
unsigned int seat_version;
|
unsigned int seat_version;
|
||||||
|
@ -523,7 +523,7 @@ struct _Ecore_Wl2_Input
|
||||||
|
|
||||||
typedef struct Ecore_Wl2_Event_Window_WWW
|
typedef struct Ecore_Wl2_Event_Window_WWW
|
||||||
{
|
{
|
||||||
unsigned int window;
|
Ecore_Wl2_Window *window;
|
||||||
int x_rel;
|
int x_rel;
|
||||||
int y_rel;
|
int y_rel;
|
||||||
uint32_t timestamp;
|
uint32_t timestamp;
|
||||||
|
@ -531,7 +531,7 @@ typedef struct Ecore_Wl2_Event_Window_WWW
|
||||||
|
|
||||||
typedef struct Ecore_Wl2_Event_Window_WWW_Drag
|
typedef struct Ecore_Wl2_Event_Window_WWW_Drag
|
||||||
{
|
{
|
||||||
unsigned int window;
|
Ecore_Wl2_Window *window;
|
||||||
Eina_Bool dragging;
|
Eina_Bool dragging;
|
||||||
} Ecore_Wl2_Event_Window_WWW_Drag;
|
} Ecore_Wl2_Event_Window_WWW_Drag;
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ _ecore_wl2_surface_cb_offscreen(void *data, int type EINA_UNUSED, void *event)
|
||||||
Ecore_Wl2_Event_Window_Offscreen *ev = event;
|
Ecore_Wl2_Event_Window_Offscreen *ev = event;
|
||||||
Ecore_Wl2_Surface *surf = data;
|
Ecore_Wl2_Surface *surf = data;
|
||||||
|
|
||||||
if (surf->wl2_win->id == (int)ev->win)
|
if (surf->wl2_win == ev->win)
|
||||||
ecore_wl2_surface_flush(surf, EINA_FALSE);
|
ecore_wl2_surface_flush(surf, EINA_FALSE);
|
||||||
|
|
||||||
return ECORE_CALLBACK_RENEW;
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
|
|
@ -54,10 +54,10 @@ _ecore_wl2_window_activate_send(Ecore_Wl2_Window *window)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Activate));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Activate));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
if (window->parent)
|
if (window->parent)
|
||||||
ev->parent_win = window->parent->id;
|
ev->parent_win = window->parent;
|
||||||
ev->event_win = window->id;
|
ev->event_win = window;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_WINDOW_ACTIVATE, ev, NULL, NULL);
|
ecore_event_add(ECORE_WL2_EVENT_WINDOW_ACTIVATE, ev, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,10 +69,10 @@ _ecore_wl2_window_deactivate_send(Ecore_Wl2_Window *window)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Deactivate));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Deactivate));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
if (window->parent)
|
if (window->parent)
|
||||||
ev->parent_win = window->parent->id;
|
ev->parent_win = window->parent;
|
||||||
ev->event_win = window->id;
|
ev->event_win = window;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_WINDOW_DEACTIVATE, ev, NULL, NULL);
|
ecore_event_add(ECORE_WL2_EVENT_WINDOW_DEACTIVATE, ev, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,8 +84,8 @@ _ecore_wl2_window_configure_send(Ecore_Wl2_Window *win)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Configure));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Configure));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = win->id;
|
ev->win = win;
|
||||||
ev->event_win = win->id;
|
ev->event_win = win;
|
||||||
|
|
||||||
if ((win->set_config.geometry.w == win->def_config.geometry.w) &&
|
if ((win->set_config.geometry.w == win->def_config.geometry.w) &&
|
||||||
(win->set_config.geometry.h == win->def_config.geometry.h))
|
(win->set_config.geometry.h == win->def_config.geometry.h))
|
||||||
|
@ -124,7 +124,7 @@ _configure_complete(Ecore_Wl2_Window *window)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Configure_Complete));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Configure_Complete));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE, ev, NULL, NULL);
|
ecore_event_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE, ev, NULL, NULL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -139,7 +139,7 @@ _www_surface_end_drag(void *data, struct www_surface *www_surface EINA_UNUSED)
|
||||||
|
|
||||||
ev = malloc(sizeof(Ecore_Wl2_Event_Window_WWW_Drag));
|
ev = malloc(sizeof(Ecore_Wl2_Event_Window_WWW_Drag));
|
||||||
EINA_SAFETY_ON_NULL_RETURN(ev);
|
EINA_SAFETY_ON_NULL_RETURN(ev);
|
||||||
ev->window = window->id;
|
ev->window = window;
|
||||||
ev->dragging = 0;
|
ev->dragging = 0;
|
||||||
|
|
||||||
ecore_event_add(_ecore_wl2_event_window_www_drag, ev, NULL, NULL);
|
ecore_event_add(_ecore_wl2_event_window_www_drag, ev, NULL, NULL);
|
||||||
|
@ -153,7 +153,7 @@ _www_surface_start_drag(void *data, struct www_surface *www_surface EINA_UNUSED)
|
||||||
|
|
||||||
ev = malloc(sizeof(Ecore_Wl2_Event_Window_WWW_Drag));
|
ev = malloc(sizeof(Ecore_Wl2_Event_Window_WWW_Drag));
|
||||||
EINA_SAFETY_ON_NULL_RETURN(ev);
|
EINA_SAFETY_ON_NULL_RETURN(ev);
|
||||||
ev->window = window->id;
|
ev->window = window;
|
||||||
ev->dragging = 1;
|
ev->dragging = 1;
|
||||||
|
|
||||||
ecore_event_add(_ecore_wl2_event_window_www_drag, ev, NULL, NULL);
|
ecore_event_add(_ecore_wl2_event_window_www_drag, ev, NULL, NULL);
|
||||||
|
@ -167,7 +167,7 @@ _www_surface_status(void *data, struct www_surface *www_surface EINA_UNUSED, int
|
||||||
|
|
||||||
ev = malloc(sizeof(Ecore_Wl2_Event_Window_WWW));
|
ev = malloc(sizeof(Ecore_Wl2_Event_Window_WWW));
|
||||||
EINA_SAFETY_ON_NULL_RETURN(ev);
|
EINA_SAFETY_ON_NULL_RETURN(ev);
|
||||||
ev->window = window->id;
|
ev->window = window;
|
||||||
ev->x_rel = x_rel;
|
ev->x_rel = x_rel;
|
||||||
ev->y_rel = y_rel;
|
ev->y_rel = y_rel;
|
||||||
ev->timestamp = timestamp;
|
ev->timestamp = timestamp;
|
||||||
|
@ -465,7 +465,7 @@ _surface_leave(void *data, struct wl_surface *surf EINA_UNUSED, struct wl_output
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Offscreen));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Offscreen));
|
||||||
if (ev)
|
if (ev)
|
||||||
{
|
{
|
||||||
ev->win = win->id;
|
ev->win = win;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_WINDOW_OFFSCREEN, ev, NULL, NULL);
|
ecore_event_add(ECORE_WL2_EVENT_WINDOW_OFFSCREEN, ev, NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -514,10 +514,10 @@ _ecore_wl2_window_show_send(Ecore_Wl2_Window *window)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Show));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Show));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
if (window->parent)
|
if (window->parent)
|
||||||
ev->parent_win = window->parent->id;
|
ev->parent_win = window->parent;
|
||||||
ev->event_win = window->id;
|
ev->event_win = window;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_WINDOW_SHOW, ev, NULL, NULL);
|
ecore_event_add(ECORE_WL2_EVENT_WINDOW_SHOW, ev, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -529,10 +529,10 @@ _ecore_wl2_window_hide_send(Ecore_Wl2_Window *window)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Hide));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Hide));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
if (window->parent)
|
if (window->parent)
|
||||||
ev->parent_win = window->parent->id;
|
ev->parent_win = window->parent;
|
||||||
ev->event_win = window->id;
|
ev->event_win = window;
|
||||||
ecore_event_add(ECORE_WL2_EVENT_WINDOW_HIDE, ev, NULL, NULL);
|
ecore_event_add(ECORE_WL2_EVENT_WINDOW_HIDE, ev, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,7 +540,6 @@ EAPI Ecore_Wl2_Window *
|
||||||
ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h)
|
ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Window *win;
|
Ecore_Wl2_Window *win;
|
||||||
static int _win_id = 1;
|
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(display, NULL);
|
||||||
if (display->pid) CRI("CANNOT CREATE WINDOW WITH SERVER DISPLAY");
|
if (display->pid) CRI("CANNOT CREATE WINDOW WITH SERVER DISPLAY");
|
||||||
|
@ -552,7 +551,6 @@ ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x
|
||||||
|
|
||||||
win->display = display;
|
win->display = display;
|
||||||
win->parent = parent;
|
win->parent = parent;
|
||||||
win->id = _win_id++;
|
|
||||||
|
|
||||||
win->set_config.geometry.x = x;
|
win->set_config.geometry.x = x;
|
||||||
win->set_config.geometry.y = y;
|
win->set_config.geometry.y = y;
|
||||||
|
@ -573,13 +571,6 @@ ecore_wl2_window_new(Ecore_Wl2_Display *display, Ecore_Wl2_Window *parent, int x
|
||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI int
|
|
||||||
ecore_wl2_window_id_get(Ecore_Wl2_Window *window)
|
|
||||||
{
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(window, -1);
|
|
||||||
return window->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI struct wl_surface *
|
EAPI struct wl_surface *
|
||||||
ecore_wl2_window_surface_get(Ecore_Wl2_Window *window)
|
ecore_wl2_window_surface_get(Ecore_Wl2_Window *window)
|
||||||
{
|
{
|
||||||
|
@ -1257,7 +1248,7 @@ ecore_wl2_window_rotation_change_prepare_send(Ecore_Wl2_Window *window, int rot,
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Prepare));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Prepare));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
ev->rotation = rot;
|
ev->rotation = rot;
|
||||||
ev->w = w;
|
ev->w = w;
|
||||||
ev->h = h;
|
ev->h = h;
|
||||||
|
@ -1276,7 +1267,7 @@ ecore_wl2_window_rotation_change_prepare_done_send(Ecore_Wl2_Window *window, int
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Prepare_Done));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
ev->rotation = rot;
|
ev->rotation = rot;
|
||||||
ev->w = 0;
|
ev->w = 0;
|
||||||
ev->h = 0;
|
ev->h = 0;
|
||||||
|
@ -1296,7 +1287,7 @@ ecore_wl2_window_rotation_change_request_send(Ecore_Wl2_Window *window, int rot)
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Request));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Request));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
ev->rotation = rot;
|
ev->rotation = rot;
|
||||||
ev->w = 0;
|
ev->w = 0;
|
||||||
ev->h = 0;
|
ev->h = 0;
|
||||||
|
@ -1316,7 +1307,7 @@ ecore_wl2_window_rotation_change_done_send(Ecore_Wl2_Window *window, int rot, in
|
||||||
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Done));
|
ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Rotation_Change_Done));
|
||||||
if (!ev) return;
|
if (!ev) return;
|
||||||
|
|
||||||
ev->win = window->id;
|
ev->win = window;
|
||||||
ev->rotation = rot;
|
ev->rotation = rot;
|
||||||
ev->w = w;
|
ev->w = w;
|
||||||
ev->h = h;
|
ev->h = h;
|
||||||
|
|
|
@ -2960,7 +2960,7 @@ _wl_sel_obj_del2(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_
|
||||||
}
|
}
|
||||||
|
|
||||||
static Sel_Manager_Dropable *
|
static Sel_Manager_Dropable *
|
||||||
_wl_dropable_find(Efl_Selection_Manager_Data *pd, unsigned int win)
|
_wl_dropable_find(Efl_Selection_Manager_Data *pd, Ecore_Wl2_Window *win)
|
||||||
{
|
{
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
Sel_Manager_Dropable *dropable;
|
Sel_Manager_Dropable *dropable;
|
||||||
|
@ -2968,7 +2968,7 @@ _wl_dropable_find(Efl_Selection_Manager_Data *pd, unsigned int win)
|
||||||
|
|
||||||
if (!pd->drop_list) return NULL;
|
if (!pd->drop_list) return NULL;
|
||||||
|
|
||||||
window = ecore_wl2_display_window_find(_elm_wl_display, win);
|
window = ecore_wl2_display_window_find(_elm_wl_display, (Ecore_Window)win);
|
||||||
if (!window) return NULL;
|
if (!window) return NULL;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(pd->drop_list, l, dropable)
|
EINA_LIST_FOREACH(pd->drop_list, l, dropable)
|
||||||
|
@ -2979,7 +2979,7 @@ _wl_dropable_find(Efl_Selection_Manager_Data *pd, unsigned int win)
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas *
|
static Evas *
|
||||||
_wl_evas_get_from_win(Efl_Selection_Manager_Data *pd, unsigned int win)
|
_wl_evas_get_from_win(Efl_Selection_Manager_Data *pd, Ecore_Wl2_Window *win)
|
||||||
{
|
{
|
||||||
Sel_Manager_Dropable *dropable = _wl_dropable_find(pd, win);
|
Sel_Manager_Dropable *dropable = _wl_dropable_find(pd, win);
|
||||||
return dropable ? evas_object_evas_get(dropable->obj) : NULL;
|
return dropable ? evas_object_evas_get(dropable->obj) : NULL;
|
||||||
|
@ -3368,13 +3368,13 @@ _wl_dropable_handle(Sel_Manager_Seat_Selection *seat_sel, Sel_Manager_Dropable *
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_wl_dropable_all_clean(Sel_Manager_Seat_Selection *seat_sel, unsigned int win)
|
_wl_dropable_all_clean(Sel_Manager_Seat_Selection *seat_sel, Ecore_Wl2_Window *win)
|
||||||
{
|
{
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
Sel_Manager_Dropable *dropable;
|
Sel_Manager_Dropable *dropable;
|
||||||
Ecore_Wl2_Window *window;
|
Ecore_Wl2_Window *window;
|
||||||
|
|
||||||
window = ecore_wl2_display_window_find(_elm_wl_display, win);
|
window = ecore_wl2_display_window_find(_elm_wl_display, (Ecore_Window)win);
|
||||||
if (!window) return;
|
if (!window) return;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(seat_sel->pd->drop_list, l, dropable)
|
EINA_LIST_FOREACH(seat_sel->pd->drop_list, l, dropable)
|
||||||
|
@ -3718,7 +3718,7 @@ _wl_dnd_drop(void *data, int type EINA_UNUSED, void *event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
win = ecore_wl2_display_window_find(pd->wl_display, ev->win);
|
win = ecore_wl2_display_window_find(pd->wl_display, (Ecore_Window)ev->win);
|
||||||
ecore_wl2_dnd_drag_end(_wl_seat_get(win, NULL, seat_sel->seat));
|
ecore_wl2_dnd_drag_end(_wl_seat_get(win, NULL, seat_sel->seat));
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4337,7 +4337,7 @@ _elm_win_wl_configure(void *data, int t EINA_UNUSED, void *event)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Event_Window_Configure *ev = event;
|
Ecore_Wl2_Event_Window_Configure *ev = event;
|
||||||
ELM_WIN_DATA_GET(data, sd);
|
ELM_WIN_DATA_GET(data, sd);
|
||||||
if (ecore_wl2_window_id_get(sd->wl.win) != (int)ev->win) return ECORE_CALLBACK_RENEW;
|
if (sd->wl.win != ev->win) return ECORE_CALLBACK_RENEW;
|
||||||
|
|
||||||
if (sd->resizing && (!ev->edges)) sd->resizing = EINA_FALSE;
|
if (sd->resizing && (!ev->edges)) sd->resizing = EINA_FALSE;
|
||||||
return ECORE_CALLBACK_RENEW;
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
@ -8413,14 +8413,14 @@ _elm_win_window_id_get(Efl_Ui_Win_Data *sd)
|
||||||
{
|
{
|
||||||
#if HAVE_ELEMENTARY_WL2
|
#if HAVE_ELEMENTARY_WL2
|
||||||
if (sd->wl.win)
|
if (sd->wl.win)
|
||||||
return (Ecore_Window)ecore_wl2_window_id_get(sd->wl.win);
|
return (Ecore_Window)sd->wl.win;
|
||||||
if (sd->parent)
|
if (sd->parent)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Window *parent;
|
Ecore_Wl2_Window *parent;
|
||||||
|
|
||||||
parent = elm_win_wl_window_get(sd->parent);
|
parent = elm_win_wl_window_get(sd->parent);
|
||||||
if (parent)
|
if (parent)
|
||||||
return (Ecore_Window)ecore_wl2_window_id_get(parent);
|
return (Ecore_Window)parent;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_ELEMENTARY_X
|
#ifdef HAVE_ELEMENTARY_X
|
||||||
|
|
|
@ -115,9 +115,9 @@ _ecore_evas_wl_common_cb_mouse_in(void *data EINA_UNUSED, int type EINA_UNUSED,
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->window);
|
ee = ecore_event_window_match((Ecore_Window)ev->window);
|
||||||
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (_ecore_evas_mouse_in_check(ee, ev->dev)) return ECORE_CALLBACK_PASS_ON;
|
if (_ecore_evas_mouse_in_check(ee, ev->dev)) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
_ecore_evas_mouse_inout_set(ee, ev->dev, EINA_TRUE, EINA_FALSE);
|
_ecore_evas_mouse_inout_set(ee, ev->dev, EINA_TRUE, EINA_FALSE);
|
||||||
|
@ -136,9 +136,9 @@ _ecore_evas_wl_common_cb_mouse_out(void *data EINA_UNUSED, int type EINA_UNUSED,
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->window);
|
ee = ecore_event_window_match((Ecore_Window)ev->window);
|
||||||
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (!_ecore_evas_mouse_in_check(ee, ev->dev)) return ECORE_CALLBACK_PASS_ON;
|
if (!_ecore_evas_mouse_in_check(ee, ev->dev)) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
ecore_event_evas_seat_modifier_lock_update(ee->evas,
|
ecore_event_evas_seat_modifier_lock_update(ee->evas,
|
||||||
|
@ -158,9 +158,9 @@ _ecore_evas_wl_common_cb_focus_in(void *data EINA_UNUSED, int type EINA_UNUSED,
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->window);
|
ee = ecore_event_window_match((Ecore_Window)ev->window);
|
||||||
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
_ecore_evas_focus_device_set(ee, ev->dev, EINA_TRUE);
|
_ecore_evas_focus_device_set(ee, ev->dev, EINA_TRUE);
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
@ -174,9 +174,9 @@ _ecore_evas_wl_common_cb_focus_out(void *data EINA_UNUSED, int type EINA_UNUSED,
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->window);
|
ee = ecore_event_window_match((Ecore_Window)ev->window);
|
||||||
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
_ecore_evas_focus_device_set(ee, ev->dev, EINA_FALSE);
|
_ecore_evas_focus_device_set(ee, ev->dev, EINA_FALSE);
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
@ -570,9 +570,9 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
if (!wdata) return ECORE_CALLBACK_PASS_ON;
|
if (!wdata) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
@ -683,10 +683,10 @@ _ecore_evas_wl_common_cb_window_configure_complete(void *data EINA_UNUSED, int t
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas);
|
einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas);
|
||||||
if (!einfo) return ECORE_CALLBACK_PASS_ON;
|
if (!einfo) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
@ -709,9 +709,9 @@ _ecore_evas_wl_common_cb_aux_message(void *data EINA_UNUSED, int type EINA_UNUS
|
||||||
Ecore_Wl2_Event_Aux_Message *ev;
|
Ecore_Wl2_Event_Aux_Message *ev;
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (eina_streq(ev->key, "stack_del"))
|
if (eina_streq(ev->key, "stack_del"))
|
||||||
{
|
{
|
||||||
if (ee->func.fn_delete_request)
|
if (ee->func.fn_delete_request)
|
||||||
|
@ -729,9 +729,9 @@ _ecore_evas_wl_common_cb_aux_hint_supported(void *data EINA_UNUSED, int type EI
|
||||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
EINA_LIST_FREE(ee->prop.aux_hint.supported_list, hint) eina_stringshare_del(hint);
|
EINA_LIST_FREE(ee->prop.aux_hint.supported_list, hint) eina_stringshare_del(hint);
|
||||||
ee->prop.aux_hint.supported_list = ecore_wl2_window_aux_hints_supported_get(wdata->win);
|
ee->prop.aux_hint.supported_list = ecore_wl2_window_aux_hints_supported_get(wdata->win);
|
||||||
|
@ -747,9 +747,9 @@ _ecore_evas_wl_common_cb_aux_hint_allowed(void *data EINA_UNUSED, int type EINA
|
||||||
Ecore_Evas_Aux_Hint *aux;
|
Ecore_Evas_Aux_Hint *aux;
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(ee->prop.aux_hint.hints, l, aux)
|
EINA_LIST_FOREACH(ee->prop.aux_hint.hints, l, aux)
|
||||||
{
|
{
|
||||||
|
@ -776,9 +776,9 @@ _ecore_evas_wl_common_cb_window_rotate(void *data EINA_UNUSED, int type EINA_UNU
|
||||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
_ecore_evas_wl_common_rotation_set(ee, ev->rotation, ev->resize);
|
_ecore_evas_wl_common_rotation_set(ee, ev->rotation, ev->resize);
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
@ -944,9 +944,9 @@ _ecore_evas_wl_common_cb_www_drag(void *d EINA_UNUSED, int t EINA_UNUSED, void *
|
||||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
|
|
||||||
ee = ecore_event_window_match(ev->window);
|
ee = ecore_event_window_match((Ecore_Window)ev->window);
|
||||||
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
wdata->dragging = !!ev->dragging;
|
wdata->dragging = !!ev->dragging;
|
||||||
|
@ -962,9 +962,9 @@ _ecore_evas_wl_common_cb_www(void *d EINA_UNUSED, int t EINA_UNUSED, void *event
|
||||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
|
|
||||||
ee = ecore_event_window_match(ev->window);
|
ee = ecore_event_window_match((Ecore_Window)ev->window);
|
||||||
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
wdata->x_rel += ev->x_rel;
|
wdata->x_rel += ev->x_rel;
|
||||||
|
@ -992,7 +992,7 @@ _ecore_evas_wl_common_device_event_add(int event_type, Ecore_Wl2_Device_Type dev
|
||||||
ev->dev = efl_ref(dev);
|
ev->dev = efl_ref(dev);
|
||||||
ev->type = device_type;
|
ev->type = device_type;
|
||||||
ev->seat_id = id;
|
ev->seat_id = id;
|
||||||
ev->window_id = ee->prop.window;
|
ev->window = (Ecore_Wl2_Window *)ee->prop.window;
|
||||||
|
|
||||||
ecore_event_add(event_type, ev,
|
ecore_event_add(event_type, ev,
|
||||||
_ecore_evas_wl_common_cb_device_event_free, dev);
|
_ecore_evas_wl_common_cb_device_event_free, dev);
|
||||||
|
@ -1265,10 +1265,10 @@ _ecore_evas_wl_common_cb_iconify_state_change(void *data EINA_UNUSED, int type E
|
||||||
Ecore_Wl2_Event_Window_Iconify_State_Change *ev;
|
Ecore_Wl2_Event_Window_Iconify_State_Change *ev;
|
||||||
|
|
||||||
ev = event;
|
ev = event;
|
||||||
ee = ecore_event_window_match(ev->win);
|
ee = ecore_event_window_match((Ecore_Window)ev->win);
|
||||||
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
if (!ee) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (!ev->force) return ECORE_CALLBACK_PASS_ON;
|
if (!ev->force) return ECORE_CALLBACK_PASS_ON;
|
||||||
if (ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
if ((Ecore_Window)ev->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
||||||
|
|
||||||
if (ee->prop.iconified == ev->iconified)
|
if (ee->prop.iconified == ev->iconified)
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
|
@ -2429,7 +2429,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
|
||||||
};
|
};
|
||||||
|
|
||||||
Ecore_Evas *
|
Ecore_Evas *
|
||||||
_ecore_evas_wl_common_new_internal(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame, const char *engine_name)
|
_ecore_evas_wl_common_new_internal(const char *disp_name, Ecore_Window parent, int x, int y, int w, int h, Eina_Bool frame, const char *engine_name)
|
||||||
{
|
{
|
||||||
Ecore_Wl2_Display *ewd;
|
Ecore_Wl2_Display *ewd;
|
||||||
Ecore_Wl2_Window *p = NULL;
|
Ecore_Wl2_Window *p = NULL;
|
||||||
|
@ -2519,7 +2519,7 @@ _ecore_evas_wl_common_new_internal(const char *disp_name, unsigned int parent, i
|
||||||
wdata->display = ewd;
|
wdata->display = ewd;
|
||||||
|
|
||||||
wdata->win = ecore_wl2_window_new(ewd, p, x, y, w, h);
|
wdata->win = ecore_wl2_window_new(ewd, p, x, y, w, h);
|
||||||
ee->prop.window = ecore_wl2_window_id_get(wdata->win);
|
ee->prop.window = (Ecore_Window)wdata->win;
|
||||||
ee->prop.aux_hint.supported_list = ecore_wl2_window_aux_hints_supported_get(wdata->win);
|
ee->prop.aux_hint.supported_list = ecore_wl2_window_aux_hints_supported_get(wdata->win);
|
||||||
ecore_evas_aux_hint_add(ee, "wm.policy.win.msg.use", "1");
|
ecore_evas_aux_hint_add(ee, "wm.policy.win.msg.use", "1");
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,6 @@ struct _Ecore_Evas_Engine_Wl_Data
|
||||||
* @see ecore_evas_wayland_shm_new()
|
* @see ecore_evas_wayland_shm_new()
|
||||||
* @see ecore_evas_wayland_egl_new()
|
* @see ecore_evas_wayland_egl_new()
|
||||||
*/
|
*/
|
||||||
Ecore_Evas *_ecore_evas_wl_common_new_internal(const char *disp_name, unsigned int parent, int x, int y, int w, int h, Eina_Bool frame, const char *engine_name);
|
Ecore_Evas *_ecore_evas_wl_common_new_internal(const char *disp_name, Ecore_Window parent, int x, int y, int w, int h, Eina_Bool frame, const char *engine_name);
|
||||||
|
|
||||||
#endif /* _ECORE_EVAS_WAYLAND_PRIVATE_H_ */
|
#endif /* _ECORE_EVAS_WAYLAND_PRIVATE_H_ */
|
||||||
|
|
|
@ -634,8 +634,8 @@ text_input_keysym(void *data,
|
||||||
strcpy((char *)e->key, key);
|
strcpy((char *)e->key, key);
|
||||||
strcpy((char *)e->string, string);
|
strcpy((char *)e->string, string);
|
||||||
|
|
||||||
e->window = ecore_wl2_window_id_get(imcontext->window);
|
e->window = (Ecore_Window)imcontext->window;
|
||||||
e->event_window = ecore_wl2_window_id_get(imcontext->window);
|
e->event_window = (Ecore_Window)imcontext->window;
|
||||||
e->timestamp = time;
|
e->timestamp = time;
|
||||||
|
|
||||||
e->modifiers = 0;
|
e->modifiers = 0;
|
||||||
|
|
Loading…
Reference in New Issue