also add _NET_WM_MOVERESIZE_CANCEL.
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] ==
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;
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");
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");
Atom sm_client_id;
/* NETWM atoms */
-
+
+ Atom net_wm_full_placement;
+
/* root window properties */
Atom net_supported;
Atom net_client_list;
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;
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;