client_shade(client, FALSE);
client_focus(client);
stacking_raise(client);
- }
+ } else if (msgtype == prop_atoms.net_wm_moveresize) {
+ g_message("net_wm_moveresize for 0x%lx", client->window);
+ if ((Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_topleft ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_top ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_topright ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_right ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_right ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_bottomright ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_bottom ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_bottomleft ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_left ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_move ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_size_keyboard ||
+ (Atom)e->xclient.data.l[2] ==
+ prop_atoms.net_wm_moveresize_move_keyboard) {
+
+ moveresize_start(client, e->xclient.data.l[0],
+ e->xclient.data.l[1], e->xclient.data.l[2],
+ e->xclient.data.l[3]);
+ }
+ } else if (msgtype == prop_atoms.net_moveresize_window) {
+ int oldg = client->gravity;
+ int tmpg, x, y, w, h;
+
+ if (e->xclient.data.l[0] & 0xff)
+ tmpg = e->xclient.data.l[0] & 0xff;
+ else
+ tmpg = oldg;
+
+ if (e->xclient.data.l[0] & 1 << 8)
+ x = e->xclient.data.l[1];
+ else
+ x = client->area.x;
+ if (e->xclient.data.l[0] & 1 << 9)
+ y = e->xclient.data.l[2];
+ else
+ y = client->area.y;
+ if (e->xclient.data.l[0] & 1 << 10)
+ w = e->xclient.data.l[3];
+ else
+ w = client->area.y;
+ if (e->xclient.data.l[0] & 1 << 11)
+ h = e->xclient.data.l[4];
+ else
+ h = client->area.y;
+ client->gravity = tmpg;
+ client_configure(client, Corner_TopLeft, x, y, w, h, TRUE, TRUE);
+ client->gravity = oldg;
+ }
break;
case PropertyNotify:
/* validate cuz we query stuff off the client here */
PROP_SET32(support_window, net_supporting_wm_check, window,support_window);
/* set the _NET_SUPPORTED_ATOMS hint */
- num_support = 48;
+ num_support = 61;
i = 0;
supported = g_new(guint32, num_support);
supported[i++] = prop_atoms.net_current_desktop;
supported[i++] = prop_atoms.net_wm_state_fullscreen;
supported[i++] = prop_atoms.net_wm_state_above;
supported[i++] = prop_atoms.net_wm_state_below;
+ supported[i++] = prop_atoms.net_moveresize_window;
+ supported[i++] = prop_atoms.net_wm_moveresize;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_topleft;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_top;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_topright;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_right;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_bottomright;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_bottom;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_bottomleft;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_left;
+ supported[i++] = prop_atoms.net_wm_moveresize_move;
+ supported[i++] = prop_atoms.net_wm_moveresize_size_keyboard;
+ supported[i++] = prop_atoms.net_wm_moveresize_move_keyboard;
g_assert(i == num_support);
/*
- supported[] = prop_atoms.net_wm_moveresize;
- supported[] = prop_atoms.net_wm_moveresize_size_topleft;
- supported[] = prop_atoms.net_wm_moveresize_size_topright;
- supported[] = prop_atoms.net_wm_moveresize_size_bottomleft;
- supported[] = prop_atoms.net_wm_moveresize_size_bottomright;
- supported[] = prop_atoms.net_wm_moveresize_move;
supported[] = prop_atoms.net_wm_action_stick;
*/