forked from enlightenment/efl
Add event for desktop change request.
SVN revision: 14809
This commit is contained in:
parent
f43fd99b4f
commit
11c35549e6
|
@ -240,6 +240,7 @@ typedef struct _Ecore_X_Event_Xdnd_Leave Ecore_X_Event_Xdnd_Leave;
|
|||
typedef struct _Ecore_X_Event_Xdnd_Drop Ecore_X_Event_Xdnd_Drop;
|
||||
typedef struct _Ecore_X_Event_Xdnd_Finished Ecore_X_Event_Xdnd_Finished;
|
||||
typedef struct _Ecore_X_Event_Window_State Ecore_X_Event_Window_State;
|
||||
typedef struct _Ecore_X_Event_Desktop_Change Ecore_X_Event_Desktop_Change;
|
||||
typedef struct _Ecore_X_Event_Client_Message Ecore_X_Event_Client_Message;
|
||||
typedef struct _Ecore_X_Event_Window_Shape Ecore_X_Event_Window_Shape;
|
||||
|
||||
|
@ -606,6 +607,13 @@ struct _Ecore_X_Event_Window_State
|
|||
int source;
|
||||
};
|
||||
|
||||
struct _Ecore_X_Event_Desktop_Change
|
||||
{
|
||||
Ecore_X_Window win;
|
||||
int desk;
|
||||
int source;
|
||||
};
|
||||
|
||||
struct _Ecore_X_Event_Client_Message
|
||||
{
|
||||
Ecore_X_Window win;
|
||||
|
@ -720,6 +728,7 @@ extern EAPI int ECORE_X_EVENT_SELECTION_CLEAR;
|
|||
extern EAPI int ECORE_X_EVENT_SELECTION_REQUEST;
|
||||
extern EAPI int ECORE_X_EVENT_SELECTION_NOTIFY;
|
||||
extern EAPI int ECORE_X_EVENT_WINDOW_STATE;
|
||||
extern EAPI int ECORE_X_EVENT_DESKTOP_CHANGE;
|
||||
extern EAPI int ECORE_X_EVENT_CLIENT_MESSAGE;
|
||||
extern EAPI int ECORE_X_EVENT_WINDOW_SHAPE;
|
||||
|
||||
|
|
|
@ -114,6 +114,7 @@ int ECORE_X_EVENT_SELECTION_CLEAR = 0;
|
|||
int ECORE_X_EVENT_SELECTION_REQUEST = 0;
|
||||
int ECORE_X_EVENT_SELECTION_NOTIFY = 0;
|
||||
int ECORE_X_EVENT_WINDOW_STATE = 0;
|
||||
int ECORE_X_EVENT_DESKTOP_CHANGE = 0;
|
||||
int ECORE_X_EVENT_CLIENT_MESSAGE = 0;
|
||||
int ECORE_X_EVENT_WINDOW_SHAPE = 0;
|
||||
|
||||
|
@ -256,6 +257,7 @@ ecore_x_init(const char *name)
|
|||
ECORE_X_EVENT_SELECTION_REQUEST = ecore_event_type_new();
|
||||
ECORE_X_EVENT_SELECTION_NOTIFY = ecore_event_type_new();
|
||||
ECORE_X_EVENT_WINDOW_STATE = ecore_event_type_new();
|
||||
ECORE_X_EVENT_DESKTOP_CHANGE = ecore_event_type_new();
|
||||
ECORE_X_EVENT_CLIENT_MESSAGE = ecore_event_type_new();
|
||||
ECORE_X_EVENT_WINDOW_SHAPE = ecore_event_type_new();
|
||||
|
||||
|
|
|
@ -1409,6 +1409,19 @@ _ecore_x_event_handle_client_message(XEvent *xevent)
|
|||
|
||||
ecore_event_add(ECORE_X_EVENT_WINDOW_STATE, e, NULL, NULL);
|
||||
}
|
||||
else if ((xevent->xclient.message_type == ECORE_X_ATOM_NET_WM_DESKTOP)
|
||||
&& (xevent->xclient.format == 32))
|
||||
{
|
||||
Ecore_X_Event_Desktop_Change *e;
|
||||
|
||||
e = calloc(1, sizeof(Ecore_X_Event_Desktop_Change));
|
||||
if (!e) return;
|
||||
e->win = xevent->xclient.window;
|
||||
e->desk = xevent->xclient.data.l[0];
|
||||
e->source = xevent->xclient.data.l[1];
|
||||
|
||||
ecore_event_add(ECORE_X_EVENT_DESKTOP_CHANGE, e, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
Ecore_X_Event_Client_Message *e;
|
||||
|
|
Loading…
Reference in New Issue