forked from enlightenment/enlightenment
1. Do we need to remember mouse down on all buttons?
2. Is there any problem with calling pointer_ungrab unconditionally? SVN revision: 15120
This commit is contained in:
parent
6468e0cef0
commit
6c248ea656
99
netwm.txt
99
netwm.txt
|
@ -11,44 +11,46 @@
|
|||
* T = For taskbar
|
||||
*/
|
||||
|
||||
_NET_ACTIVE_WINDOW [?] /* Listen to active window requests */
|
||||
/* Root Window Properties (and Related Messages) */
|
||||
_NET_SUPPORTED [X]
|
||||
_NET_CLIENT_LIST [X]
|
||||
_NET_CLIENT_LIST_STACKING [X]
|
||||
_NET_CLOSE_WINDOW [P]
|
||||
_NET_CURRENT_DESKTOP [P]
|
||||
_NET_DESKTOP_GEOMETRY [P]
|
||||
_NET_DESKTOP_LAYOUT [P]
|
||||
_NET_DESKTOP_NAMES [ ]
|
||||
_NET_DESKTOP_VIEWPORT [P]
|
||||
_NET_FRAME_EXTENTS [X]
|
||||
_NET_MOVERESIZE_WINDOW [P]
|
||||
_NET_NUMBER_OF_DESKTOPS [P]
|
||||
_NET_REQUEST_FRAME_EXTENTS [X]
|
||||
_NET_RESTACK_WINDOW [P]
|
||||
_NET_SHOWING_DESKTOP [ ]
|
||||
_NET_SUPPORTED [X]
|
||||
_NET_DESKTOP_GEOMETRY [P]
|
||||
_NET_DESKTOP_VIEWPORT [P]
|
||||
_NET_CURRENT_DESKTOP [P]
|
||||
_NET_DESKTOP_NAMES [ ]
|
||||
_NET_ACTIVE_WINDOW [?] /* Listen to active window requests */
|
||||
_NET_WORKAREA [ ]
|
||||
_NET_SUPPORTING_WM_CHECK [X]
|
||||
_NET_VIRTUAL_ROOTS [X]
|
||||
_NET_WM_ACTION_CHANGE_DESKTOP [ ]
|
||||
_NET_WM_ACTION_CLOSE [ ]
|
||||
_NET_WM_ACTION_FULLSCREEN [ ]
|
||||
_NET_WM_ACTION_MAXIMIZE_HORZ [ ]
|
||||
_NET_WM_ACTION_MAXIMIZE_VERT [ ]
|
||||
_NET_WM_ACTION_MINIMIZE [ ]
|
||||
_NET_WM_ACTION_MOVE [ ]
|
||||
_NET_WM_ACTION_RESIZE [ ]
|
||||
_NET_WM_ACTION_SHADE [ ]
|
||||
_NET_WM_ACTION_STICK [ ]
|
||||
_NET_WM_ALLOWED_ACTIONS [ ]
|
||||
_NET_WM_DESKTOP [ ]
|
||||
_NET_WM_HANDLED_ICONS [T]
|
||||
_NET_WM_ICON [X]
|
||||
_NET_WM_ICON_GEOMETRY [T]
|
||||
_NET_WM_ICON_NAME [X]
|
||||
_NET_WM_MOVERESIZE [ ]
|
||||
_NET_DESKTOP_LAYOUT [P]
|
||||
_NET_SHOWING_DESKTOP [ ]
|
||||
|
||||
/* Other Root Window Messages */
|
||||
_NET_CLOSE_WINDOW [P]
|
||||
_NET_MOVERESIZE_WINDOW [P]
|
||||
_NET_WM_MOVERESIZE [X]
|
||||
_NET_RESTACK_WINDOW [P]
|
||||
_NET_REQUEST_FRAME_EXTENTS [X]
|
||||
|
||||
/* Application Window Properties */
|
||||
_NET_WM_NAME [X]
|
||||
_NET_WM_PID [X]
|
||||
_NET_WM_PING [ ]
|
||||
_NET_WM_VISIBLE_NAME [X] /* E uses _NET_WM_NAME, doesn't need to set this */
|
||||
_NET_WM_ICON_NAME [X]
|
||||
_NET_WM_VISIBLE_ICON_NAME [X] /* E uses _NET_WM_ICON_NAME, doesn't need to set this */
|
||||
_NET_WM_DESKTOP [ ]
|
||||
/* Do we have to do anything special with these, except
|
||||
* stacking order? */
|
||||
_NET_WM_WINDOW_TYPE [X]
|
||||
_NET_WM_WINDOW_TYPE_DESKTOP [X]
|
||||
_NET_WM_WINDOW_TYPE_DOCK [X]
|
||||
_NET_WM_WINDOW_TYPE_TOOLBAR [X]
|
||||
_NET_WM_WINDOW_TYPE_MENU [X]
|
||||
_NET_WM_WINDOW_TYPE_UTILITY [X]
|
||||
_NET_WM_WINDOW_TYPE_SPLASH [X]
|
||||
_NET_WM_WINDOW_TYPE_DIALOG [X]
|
||||
_NET_WM_WINDOW_TYPE_NORMAL [X]
|
||||
_NET_WM_STATE [X]
|
||||
_NET_WM_STATE_MODAL [ ]
|
||||
/* _NET_WM_STATE_STICKY indicates that the
|
||||
|
@ -66,22 +68,25 @@ _NET_WM_STATE_FULLSCREEN [X]
|
|||
_NET_WM_STATE_ABOVE [X]
|
||||
_NET_WM_STATE_BELOW [X]
|
||||
_NET_WM_STATE_DEMANDS_ATTENTION [ ]
|
||||
_NET_WM_ALLOWED_ACTIONS [ ]
|
||||
_NET_WM_ACTION_MOVE [ ]
|
||||
_NET_WM_ACTION_RESIZE [ ]
|
||||
_NET_WM_ACTION_MINIMIZE [ ]
|
||||
_NET_WM_ACTION_SHADE [ ]
|
||||
_NET_WM_ACTION_STICK [ ]
|
||||
_NET_WM_ACTION_MAXIMIZE_HORZ [ ]
|
||||
_NET_WM_ACTION_MAXIMIZE_VERT [ ]
|
||||
_NET_WM_ACTION_FULLSCREEN [ ]
|
||||
_NET_WM_ACTION_CHANGE_DESKTOP [ ]
|
||||
_NET_WM_ACTION_CLOSE [ ]
|
||||
_NET_WM_STRUT [X]
|
||||
_NET_WM_STRUT_PARTIAL [X]
|
||||
_NET_WM_ICON_GEOMETRY [T]
|
||||
_NET_WM_ICON [X]
|
||||
_NET_WM_PID [X]
|
||||
_NET_WM_HANDLED_ICONS [T]
|
||||
_NET_WM_USER_TIME [X]
|
||||
_NET_FRAME_EXTENTS [X]
|
||||
_NET_WM_PING [ ]
|
||||
_NET_WM_SYNC_REQUEST [ ]
|
||||
_NET_WM_SYNC_REQUEST_COUNTER [ ]
|
||||
_NET_WM_USER_TIME [X]
|
||||
_NET_WM_VISIBLE_ICON_NAME [X] /* E uses _NET_WM_ICON_NAME, doesn't need to set this */
|
||||
_NET_WM_VISIBLE_NAME [X] /* E uses _NET_WM_NAME, doesn't need to set this */
|
||||
/* Do we have to do anything special with these, except
|
||||
* stacking order? */
|
||||
_NET_WM_WINDOW_TYPE [X]
|
||||
_NET_WM_WINDOW_TYPE_DESKTOP [X]
|
||||
_NET_WM_WINDOW_TYPE_DOCK [X]
|
||||
_NET_WM_WINDOW_TYPE_TOOLBAR [X]
|
||||
_NET_WM_WINDOW_TYPE_MENU [X]
|
||||
_NET_WM_WINDOW_TYPE_UTILITY [X]
|
||||
_NET_WM_WINDOW_TYPE_SPLASH [X]
|
||||
_NET_WM_WINDOW_TYPE_DIALOG [X]
|
||||
_NET_WM_WINDOW_TYPE_NORMAL [X]
|
||||
_NET_WORKAREA [ ]
|
||||
|
|
|
@ -6,15 +6,17 @@
|
|||
//#define INOUTDEBUG_MOUSE 1
|
||||
//#define INOUTDEBUG_FOCUS 1
|
||||
|
||||
#define RESIZE_NONE 0
|
||||
#define RESIZE_TL 1
|
||||
#define RESIZE_T 2
|
||||
#define RESIZE_TR 3
|
||||
#define RESIZE_R 4
|
||||
#define RESIZE_BR 5
|
||||
#define RESIZE_B 6
|
||||
#define RESIZE_BL 7
|
||||
#define RESIZE_L 8
|
||||
/* These are compatible with netwm */
|
||||
#define RESIZE_TL 0
|
||||
#define RESIZE_T 1
|
||||
#define RESIZE_TR 2
|
||||
#define RESIZE_R 3
|
||||
#define RESIZE_BR 4
|
||||
#define RESIZE_B 5
|
||||
#define RESIZE_BL 6
|
||||
#define RESIZE_L 7
|
||||
#define MOVE 8
|
||||
#define RESIZE_NONE 11
|
||||
|
||||
/* local subsystem functions */
|
||||
static void _e_border_free(E_Border *bd);
|
||||
|
@ -37,6 +39,7 @@ static int _e_border_cb_window_shape(void *data, int ev_type, void *ev);
|
|||
static int _e_border_cb_window_focus_in(void *data, int ev_type, void *ev);
|
||||
static int _e_border_cb_window_focus_out(void *data, int ev_type, void *ev);
|
||||
static int _e_border_cb_window_state_request(void *data, int ev_type, void *ev);
|
||||
static int _e_border_cb_window_move_resize_request(void *data, int ev_type, void *ev);
|
||||
static int _e_border_cb_desktop_change(void *data, int ev_type, void *ev);
|
||||
static int _e_border_cb_client_message(void *data, int ev_type, void *ev);
|
||||
|
||||
|
@ -163,6 +166,7 @@ e_border_init(void)
|
|||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _e_border_cb_window_focus_in, NULL));
|
||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _e_border_cb_window_focus_out, NULL));
|
||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_STATE_REQUEST, _e_border_cb_window_state_request, NULL));
|
||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_WINDOW_MOVE_RESIZE_REQUEST, _e_border_cb_window_move_resize_request, NULL));
|
||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_DESKTOP_CHANGE, _e_border_cb_desktop_change, NULL));
|
||||
handlers = evas_list_append(handlers, ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _e_border_cb_client_message, NULL));
|
||||
ecore_x_passive_grab_replay_func_set(_e_border_cb_grab_replay, NULL);
|
||||
|
@ -398,6 +402,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map)
|
|||
bd->w = bd->client.w;
|
||||
bd->h = bd->client.h;
|
||||
|
||||
bd->resize_mode = RESIZE_NONE;
|
||||
bd->layer = 100;
|
||||
bd->changes.size = 1;
|
||||
bd->changes.shape = 1;
|
||||
|
@ -2232,6 +2237,118 @@ _e_border_cb_window_state_request(void *data, int ev_type, void *ev)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
_e_border_cb_window_move_resize_request(void *data, int ev_type, void *ev)
|
||||
{
|
||||
E_Border *bd;
|
||||
Ecore_X_Event_Window_Move_Resize_Request *e;
|
||||
|
||||
e = ev;
|
||||
bd = e_border_find_by_client_window(e->win);
|
||||
if (!bd) return 1;
|
||||
|
||||
if ((bd->shaded) || (bd->shading) || (bd->maximized) ||
|
||||
(bd->moving) || (bd->resize_mode != RESIZE_NONE))
|
||||
return 1;
|
||||
|
||||
if ((e->button >= 1) && (e->button <= 3))
|
||||
{
|
||||
bd->mouse.last_down[e->button - 1].mx = e->x;
|
||||
bd->mouse.last_down[e->button - 1].my = e->y;
|
||||
bd->mouse.last_down[e->button - 1].x = bd->x;
|
||||
bd->mouse.last_down[e->button - 1].y = bd->y;
|
||||
bd->mouse.last_down[e->button - 1].w = bd->w;
|
||||
bd->mouse.last_down[e->button - 1].h = bd->h;
|
||||
}
|
||||
else
|
||||
{
|
||||
bd->moveinfo.down.x = bd->x;
|
||||
bd->moveinfo.down.y = bd->y;
|
||||
bd->moveinfo.down.w = bd->w;
|
||||
bd->moveinfo.down.h = bd->h;
|
||||
}
|
||||
bd->mouse.current.mx = e->x;
|
||||
bd->mouse.current.my = e->y;
|
||||
bd->moveinfo.down.button = e->button;
|
||||
bd->moveinfo.down.mx = e->x;
|
||||
bd->moveinfo.down.my = e->y;
|
||||
bd->grab = 1;
|
||||
|
||||
e_border_raise(bd);
|
||||
if (e->direction == RESIZE_TL)
|
||||
{
|
||||
bd->resize_mode = RESIZE_TL;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_SE);
|
||||
}
|
||||
else if (e->direction == RESIZE_T)
|
||||
{
|
||||
bd->resize_mode = RESIZE_T;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_S);
|
||||
}
|
||||
else if (e->direction == RESIZE_TR)
|
||||
{
|
||||
bd->resize_mode = RESIZE_TR;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_SW);
|
||||
}
|
||||
else if (e->direction == RESIZE_R)
|
||||
{
|
||||
bd->resize_mode = RESIZE_R;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_W);
|
||||
}
|
||||
else if (e->direction == RESIZE_BR)
|
||||
{
|
||||
bd->resize_mode = RESIZE_BR;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_NW);
|
||||
}
|
||||
else if (e->direction == RESIZE_B)
|
||||
{
|
||||
bd->resize_mode = RESIZE_B;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_N);
|
||||
}
|
||||
else if (e->direction == RESIZE_BL)
|
||||
{
|
||||
bd->resize_mode = RESIZE_BL;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_NE);
|
||||
}
|
||||
else if (e->direction == RESIZE_L)
|
||||
{
|
||||
bd->resize_mode = RESIZE_L;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_resize");
|
||||
_e_border_resize_begin(bd);
|
||||
GRAV_SET(bd, ECORE_X_GRAVITY_E);
|
||||
}
|
||||
else if (e->direction == MOVE)
|
||||
{
|
||||
bd->moving = 1;
|
||||
|
||||
bd->cur_mouse_action = e_action_find("window_move");
|
||||
_e_border_move_begin(bd);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
_e_border_cb_desktop_change(void *data, int ev_type, void *ev)
|
||||
{
|
||||
|
@ -2654,6 +2771,13 @@ _e_border_cb_mouse_down(void *data, int type, void *event)
|
|||
bd->mouse.last_down[ev->button - 1].w = bd->w;
|
||||
bd->mouse.last_down[ev->button - 1].h = bd->h;
|
||||
}
|
||||
else
|
||||
{
|
||||
bd->moveinfo.down.x = bd->x;
|
||||
bd->moveinfo.down.y = bd->y;
|
||||
bd->moveinfo.down.w = bd->w;
|
||||
bd->moveinfo.down.h = bd->h;
|
||||
}
|
||||
bd->mouse.current.mx = ev->root.x;
|
||||
bd->mouse.current.my = ev->root.y;
|
||||
if (!bd->cur_mouse_action)
|
||||
|
@ -2678,6 +2802,13 @@ _e_border_cb_mouse_down(void *data, int type, void *event)
|
|||
bd->mouse.last_down[ev->button - 1].w = bd->w;
|
||||
bd->mouse.last_down[ev->button - 1].h = bd->h;
|
||||
}
|
||||
else
|
||||
{
|
||||
bd->moveinfo.down.x = bd->x;
|
||||
bd->moveinfo.down.y = bd->y;
|
||||
bd->moveinfo.down.w = bd->w;
|
||||
bd->moveinfo.down.h = bd->h;
|
||||
}
|
||||
bd->mouse.current.mx = ev->root.x;
|
||||
bd->mouse.current.my = ev->root.y;
|
||||
/*
|
||||
|
@ -2789,9 +2920,9 @@ _e_border_cb_mouse_move(void *data, int type, void *event)
|
|||
}
|
||||
else
|
||||
{
|
||||
x = bd->x +
|
||||
x = bd->moveinfo.down.x +
|
||||
(bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
y = bd->y +
|
||||
y = bd->moveinfo.down.y +
|
||||
(bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
}
|
||||
new_x = x;
|
||||
|
@ -3874,7 +4005,7 @@ _e_border_resize_handle(E_Border *bd)
|
|||
w = bd->mouse.last_down[bd->moveinfo.down.button - 1].w +
|
||||
(bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
else
|
||||
w = bd->w + (bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
w = bd->moveinfo.down.w + (bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
}
|
||||
else if ((bd->resize_mode == RESIZE_TL) ||
|
||||
(bd->resize_mode == RESIZE_L) ||
|
||||
|
@ -3885,7 +4016,7 @@ _e_border_resize_handle(E_Border *bd)
|
|||
w = bd->mouse.last_down[bd->moveinfo.down.button - 1].w -
|
||||
(bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
else
|
||||
w = bd->w - (bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
w = bd->moveinfo.down.w - (bd->mouse.current.mx - bd->moveinfo.down.mx);
|
||||
}
|
||||
|
||||
if ((bd->resize_mode == RESIZE_TL) ||
|
||||
|
@ -3897,7 +4028,7 @@ _e_border_resize_handle(E_Border *bd)
|
|||
h = bd->mouse.last_down[bd->moveinfo.down.button - 1].h -
|
||||
(bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
else
|
||||
h = bd->h - (bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
h = bd->moveinfo.down.h - (bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
}
|
||||
else if ((bd->resize_mode == RESIZE_BL) ||
|
||||
(bd->resize_mode == RESIZE_B) ||
|
||||
|
@ -3908,7 +4039,7 @@ _e_border_resize_handle(E_Border *bd)
|
|||
h = bd->mouse.last_down[bd->moveinfo.down.button - 1].h +
|
||||
(bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
else
|
||||
h = bd->h + (bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
h = bd->moveinfo.down.h + (bd->mouse.current.my - bd->moveinfo.down.my);
|
||||
}
|
||||
|
||||
tw = bd->w;
|
||||
|
@ -4531,6 +4662,8 @@ _e_border_resize_begin(E_Border *bd)
|
|||
w = (bd->client.w - bd->client.icccm.min_w) / bd->client.icccm.step_w;
|
||||
h = (bd->client.h - bd->client.icccm.min_h) / bd->client.icccm.step_h;
|
||||
}
|
||||
if (bd->grab)
|
||||
ecore_x_pointer_grab(bd->win);
|
||||
e_resize_begin(bd->zone, w, h);
|
||||
resize = bd;
|
||||
}
|
||||
|
@ -4538,6 +4671,9 @@ _e_border_resize_begin(E_Border *bd)
|
|||
static void
|
||||
_e_border_resize_end(E_Border *bd)
|
||||
{
|
||||
if (bd->grab)
|
||||
ecore_x_pointer_ungrab();
|
||||
bd->grab = 0;
|
||||
e_resize_end();
|
||||
resize = NULL;
|
||||
}
|
||||
|
@ -4564,6 +4700,8 @@ _e_border_resize_update(E_Border *bd)
|
|||
static void
|
||||
_e_border_move_begin(E_Border *bd)
|
||||
{
|
||||
if (bd->grab)
|
||||
ecore_x_pointer_grab(bd->win);
|
||||
e_move_begin(bd->zone, bd->x, bd->y);
|
||||
move = bd;
|
||||
}
|
||||
|
@ -4571,6 +4709,9 @@ _e_border_move_begin(E_Border *bd)
|
|||
static void
|
||||
_e_border_move_end(E_Border *bd)
|
||||
{
|
||||
if (bd->grab)
|
||||
ecore_x_pointer_ungrab();
|
||||
bd->grab = 0;
|
||||
e_move_end();
|
||||
move = NULL;
|
||||
}
|
||||
|
|
|
@ -247,6 +247,7 @@ struct _E_Border
|
|||
unsigned char already_unparented : 1;
|
||||
unsigned char need_reparent : 1;
|
||||
unsigned char button_grabbed : 1;
|
||||
unsigned char grab : 1;
|
||||
|
||||
unsigned char changed : 1;
|
||||
|
||||
|
|
|
@ -17,6 +17,8 @@ e_hints_init(void)
|
|||
for (i = 0; i < num; i++)
|
||||
{
|
||||
Ecore_X_Window win;
|
||||
Ecore_X_Atom supported[35];
|
||||
int num;
|
||||
|
||||
win = ecore_x_window_new(roots[i], -200, -200, 5, 5);
|
||||
/*
|
||||
|
@ -38,52 +40,82 @@ e_hints_init(void)
|
|||
/* ecore_x_netwm_wm_identify(roots[i], win, "KWin");*/
|
||||
ecore_x_netwm_wm_identify(roots[i], win, "Enlightenment");
|
||||
|
||||
num = 0;
|
||||
/* Set what hints we support */
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_ACTIVE_WINDOW, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CLIENT_LIST, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CLIENT_LIST_STACKING, 1);
|
||||
/* Root Window Properties (and Related Messages) */
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTED, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_CLIENT_LIST;
|
||||
supported[num++] = ECORE_X_ATOM_NET_CLIENT_LIST_STACKING;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_DESKTOP_GEOMETRY, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_DESKTOP_VIEWPORT, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CURRENT_DESKTOP, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_DESKTOP_NAMES, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_ACTIVE_WINDOW;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WORKAREA, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK;
|
||||
supported[num++] = ECORE_X_ATOM_NET_VIRTUAL_ROOTS;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_DESKTOP_LAYOUT, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SHOWING_DESKTOP, 1);*/
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_FRAME_EXTENTS, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS, 1);
|
||||
/* Other Root Window Messages */
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CLOSE_WINDOW, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_MOVERESIZE_WINDOW, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_MOVERESIZE;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_RESTACK_WINDOW, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS;
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTED, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_VIRTUAL_ROOTS, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ICON, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ICON_NAME, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_NAME, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_PID, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_STICKY, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_SHADED, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_HIDDEN, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_ABOVE, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_BELOW, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STRUT, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STRUT_PARTIAL, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_USER_TIME, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_VISIBLE_NAME, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WORKAREA, 1);
|
||||
/* Application Window Properties */
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_NAME;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_VISIBLE_NAME;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_ICON_NAME;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_DESKTOP, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_MODAL, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_STICKY;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_SHADED;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_HIDDEN;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_ABOVE;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STATE_BELOW;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_MOVE, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_RESIZE, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_SHADE, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_STICK, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ACTION_CLOSE, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STRUT;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_STRUT_PARTIAL;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ICON_GEOMETRY, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_ICON;
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_PID;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_HANDLED_ICONS, 1);*/
|
||||
supported[num++] = ECORE_X_ATOM_NET_WM_USER_TIME;
|
||||
supported[num++] = ECORE_X_ATOM_NET_FRAME_EXTENTS;
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_PING, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_SYNC_REQUEST, 1);*/
|
||||
/*ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER, 1);*/
|
||||
ecore_x_netwm_supported_set(roots[i], supported, num);
|
||||
}
|
||||
free(roots);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue