* 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_NUMBER_OF_DESKTOPS [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_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
_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 [ ]
//#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);
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);
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);
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;
}
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)
{
E_Border *bd;
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)
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;
/*
}
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;
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) ||
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) ||
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) ||
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;
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;
}
static void
_e_border_resize_end(E_Border *bd)
{
+ if (bd->grab)
+ ecore_x_pointer_ungrab();
+ bd->grab = 0;
e_resize_end();
resize = NULL;
}
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;
}
static void
_e_border_move_end(E_Border *bd)
{
+ if (bd->grab)
+ ecore_x_pointer_ungrab();
+ bd->grab = 0;
e_move_end();
move = NULL;
}
unsigned char already_unparented : 1;
unsigned char need_reparent : 1;
unsigned char button_grabbed : 1;
+ unsigned char grab : 1;
unsigned char changed : 1;
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);
/*
/* 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);
}