add _NET_WM_FULL_PLACEMENT, cuz openbox does do placement, even tho it can be sucky right now, lol. but it's good for dialogs and stuff, which is what this is talking about.

also add _NET_WM_MOVERESIZE_CANCEL.
This commit is contained in:
Dana Jansens 2007-03-11 05:00:56 +00:00
parent 19b480058e
commit aaabb13c0a
4 changed files with 14 additions and 3 deletions

View file

@ -1009,7 +1009,8 @@ static void event_handle_client(ObClient *client, XEvent *e)
e->xclient.data.l[0] == 2), e->xclient.data.l[0] == 2),
e->xclient.data.l[1]); e->xclient.data.l[1]);
} else if (msgtype == prop_atoms.net_wm_moveresize) { } else if (msgtype == prop_atoms.net_wm_moveresize) {
ob_debug("net_wm_moveresize for 0x%lx\n", client->window); ob_debug("net_wm_moveresize for 0x%lx direction %d\n",
client->window, e->xclient.data.l[2]);
if ((Atom)e->xclient.data.l[2] == if ((Atom)e->xclient.data.l[2] ==
prop_atoms.net_wm_moveresize_size_topleft || prop_atoms.net_wm_moveresize_size_topleft ||
(Atom)e->xclient.data.l[2] == (Atom)e->xclient.data.l[2] ==
@ -1039,6 +1040,9 @@ static void event_handle_client(ObClient *client, XEvent *e)
e->xclient.data.l[1], e->xclient.data.l[3], e->xclient.data.l[1], e->xclient.data.l[3],
e->xclient.data.l[2]); e->xclient.data.l[2]);
} }
else if ((Atom)e->xclient.data.l[2] ==
prop_atoms.net_wm_moveresize_cancel)
moveresize_end(TRUE);
} else if (msgtype == prop_atoms.net_moveresize_window) { } else if (msgtype == prop_atoms.net_moveresize_window) {
gint oldg = client->gravity; gint oldg = client->gravity;
gint tmpg, x, y, w, h; gint tmpg, x, y, w, h;

View file

@ -52,6 +52,8 @@ void prop_startup()
CREATE(sm_client_id, "SM_CLIENT_ID"); CREATE(sm_client_id, "SM_CLIENT_ID");
CREATE(net_wm_full_placement, "_NET_WM_FULL_PLACEMENT");
CREATE(net_supported, "_NET_SUPPORTED"); CREATE(net_supported, "_NET_SUPPORTED");
CREATE(net_client_list, "_NET_CLIENT_LIST"); CREATE(net_client_list, "_NET_CLIENT_LIST");
CREATE(net_client_list_stacking, "_NET_CLIENT_LIST_STACKING"); CREATE(net_client_list_stacking, "_NET_CLIENT_LIST_STACKING");
@ -109,6 +111,7 @@ void prop_startup()
prop_atoms.net_wm_moveresize_move = 8; prop_atoms.net_wm_moveresize_move = 8;
prop_atoms.net_wm_moveresize_size_keyboard = 9; prop_atoms.net_wm_moveresize_size_keyboard = 9;
prop_atoms.net_wm_moveresize_move_keyboard = 10; prop_atoms.net_wm_moveresize_move_keyboard = 10;
prop_atoms.net_wm_moveresize_cancel = 11;
CREATE(net_wm_action_move, "_NET_WM_ACTION_MOVE"); CREATE(net_wm_action_move, "_NET_WM_ACTION_MOVE");
CREATE(net_wm_action_resize, "_NET_WM_ACTION_RESIZE"); CREATE(net_wm_action_resize, "_NET_WM_ACTION_RESIZE");

View file

@ -56,7 +56,9 @@ typedef struct Atoms {
Atom sm_client_id; Atom sm_client_id;
/* NETWM atoms */ /* NETWM atoms */
Atom net_wm_full_placement;
/* root window properties */ /* root window properties */
Atom net_supported; Atom net_supported;
Atom net_client_list; Atom net_client_list;
@ -118,6 +120,7 @@ typedef struct Atoms {
Atom net_wm_moveresize_move; Atom net_wm_moveresize_move;
Atom net_wm_moveresize_size_keyboard; Atom net_wm_moveresize_size_keyboard;
Atom net_wm_moveresize_move_keyboard; Atom net_wm_moveresize_move_keyboard;
Atom net_wm_moveresize_cancel;
Atom net_wm_action_move; Atom net_wm_action_move;
Atom net_wm_action_resize; Atom net_wm_action_resize;

View file

@ -204,9 +204,10 @@ gboolean screen_annex()
window, screen_support_win); window, screen_support_win);
/* set the _NET_SUPPORTED_ATOMS hint */ /* set the _NET_SUPPORTED_ATOMS hint */
num_support = 54; num_support = 55;
i = 0; i = 0;
supported = g_new(gulong, num_support); supported = g_new(gulong, num_support);
supported[i++] = prop_atoms.net_wm_full_placement;
supported[i++] = prop_atoms.net_current_desktop; supported[i++] = prop_atoms.net_current_desktop;
supported[i++] = prop_atoms.net_number_of_desktops; supported[i++] = prop_atoms.net_number_of_desktops;
supported[i++] = prop_atoms.net_desktop_geometry; supported[i++] = prop_atoms.net_desktop_geometry;