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.
Dana Jansens danakj@orodu.net
4 files changed,
14 insertions(+),
3 deletions(-)
M
openbox/event.c
→
openbox/event.c
@@ -1009,7 +1009,8 @@ (e->xclient.data.l[0] == 0 ||
e->xclient.data.l[0] == 2), e->xclient.data.l[1]); } 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] == prop_atoms.net_wm_moveresize_size_topleft || (Atom)e->xclient.data.l[2] ==@@ -1039,6 +1040,9 @@ moveresize_start(client, e->xclient.data.l[0],
e->xclient.data.l[1], e->xclient.data.l[3], 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) { gint oldg = client->gravity; gint tmpg, x, y, w, h;
M
openbox/prop.c
→
openbox/prop.c
@@ -52,6 +52,8 @@ CREATE(motif_wm_hints, "_MOTIF_WM_HINTS");
CREATE(sm_client_id, "SM_CLIENT_ID"); + CREATE(net_wm_full_placement, "_NET_WM_FULL_PLACEMENT"); + CREATE(net_supported, "_NET_SUPPORTED"); CREATE(net_client_list, "_NET_CLIENT_LIST"); CREATE(net_client_list_stacking, "_NET_CLIENT_LIST_STACKING");@@ -109,6 +111,7 @@ prop_atoms.net_wm_moveresize_size_left = 7;
prop_atoms.net_wm_moveresize_move = 8; prop_atoms.net_wm_moveresize_size_keyboard = 9; 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_resize, "_NET_WM_ACTION_RESIZE");
M
openbox/prop.h
→
openbox/prop.h
@@ -56,7 +56,9 @@ /* SM atoms */
Atom sm_client_id; /* NETWM atoms */ - + + Atom net_wm_full_placement; + /* root window properties */ Atom net_supported; Atom net_client_list;@@ -118,6 +120,7 @@ Atom net_wm_moveresize_size_left;
Atom net_wm_moveresize_move; Atom net_wm_moveresize_size_keyboard; Atom net_wm_moveresize_move_keyboard; + Atom net_wm_moveresize_cancel; Atom net_wm_action_move; Atom net_wm_action_resize;
M
openbox/screen.c
→
openbox/screen.c
@@ -204,9 +204,10 @@ PROP_SET32(screen_support_win, net_supporting_wm_check,
window, screen_support_win); /* set the _NET_SUPPORTED_ATOMS hint */ - num_support = 54; + num_support = 55; i = 0; 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_number_of_desktops; supported[i++] = prop_atoms.net_desktop_geometry;