start_cy = c->frame->area.y;
start_cw = c->area.width;
start_ch = c->area.height;
+ start_x = x;
+ start_y = y;
if (corner == prop_atoms.net_wm_moveresize_move_keyboard ||
corner == prop_atoms.net_wm_moveresize_size_keyboard)
button = 0; /* mouse can't end it without being pressed first */
if (corner == prop_atoms.net_wm_moveresize_size_topleft)
cur = ob_cursors.tl;
else if (corner == prop_atoms.net_wm_moveresize_size_top)
- cur = ob_cursors.tl;
+ cur = ob_cursors.t;
else if (corner == prop_atoms.net_wm_moveresize_size_topright)
cur = ob_cursors.tr;
else if (corner == prop_atoms.net_wm_moveresize_size_right)
- cur = ob_cursors.tr;
+ cur = ob_cursors.r;
else if (corner == prop_atoms.net_wm_moveresize_size_bottomright)
cur = ob_cursors.br;
else if (corner == prop_atoms.net_wm_moveresize_size_bottom)
- cur = ob_cursors.br;
+ cur = ob_cursors.b;
else if (corner == prop_atoms.net_wm_moveresize_size_bottomleft)
cur = ob_cursors.bl;
else if (corner == prop_atoms.net_wm_moveresize_size_left)
- cur = ob_cursors.bl;
+ cur = ob_cursors.l;
else if (corner == prop_atoms.net_wm_moveresize_size_keyboard)
cur = ob_cursors.br;
else if (corner == prop_atoms.net_wm_moveresize_move)
else
g_assert_not_reached();
- grab_keyboard(TRUE);
grab_pointer(TRUE, cur);
+ grab_keyboard(TRUE);
}
static void end_moveresize(gboolean cancel)
button = e->xbutton.button; /* this will end it now */
}
} else if (e->type == ButtonRelease) {
- if (e->xbutton.button == button) {
+ if (!button || e->xbutton.button == button) {
end_moveresize(FALSE);
}
} else if (e->type == MotionNotify) {
if (moving) {
cur_x = start_cx + e->xmotion.x_root - start_x;
cur_y = start_cy + e->xmotion.y_root - start_y;
-
do_move();
} else {
if (corner == prop_atoms.net_wm_moveresize_size_topleft) {