Change resizing terminals to work for top and left edges too, the code is a little ugly.
This commit is contained in:
parent
dacc9dac7a
commit
074bd96696
1 changed files with 16 additions and 9 deletions
|
@ -120,6 +120,8 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
|
||||||
ObCursor cur;
|
ObCursor cur;
|
||||||
gboolean mv = (cnr == prop_atoms.net_wm_moveresize_move ||
|
gboolean mv = (cnr == prop_atoms.net_wm_moveresize_move ||
|
||||||
cnr == prop_atoms.net_wm_moveresize_move_keyboard);
|
cnr == prop_atoms.net_wm_moveresize_move_keyboard);
|
||||||
|
gint up = 1;
|
||||||
|
gint left = 1;
|
||||||
|
|
||||||
if (moveresize_in_progress || !c->frame->visible ||
|
if (moveresize_in_progress || !c->frame->visible ||
|
||||||
!(mv ?
|
!(mv ?
|
||||||
|
@ -127,23 +129,28 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
|
||||||
(c->functions & OB_CLIENT_FUNC_RESIZE)))
|
(c->functions & OB_CLIENT_FUNC_RESIZE)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (cnr == prop_atoms.net_wm_moveresize_size_topleft)
|
if (cnr == prop_atoms.net_wm_moveresize_size_topleft) {
|
||||||
cur = OB_CURSOR_NORTHWEST;
|
cur = OB_CURSOR_NORTHWEST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_top)
|
up = left = -1;
|
||||||
|
} else if (cnr == prop_atoms.net_wm_moveresize_size_top) {
|
||||||
cur = OB_CURSOR_NORTH;
|
cur = OB_CURSOR_NORTH;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_topright)
|
up = -1;
|
||||||
|
} else if (cnr == prop_atoms.net_wm_moveresize_size_topright) {
|
||||||
cur = OB_CURSOR_NORTHEAST;
|
cur = OB_CURSOR_NORTHEAST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_right)
|
up = -1;
|
||||||
|
} else if (cnr == prop_atoms.net_wm_moveresize_size_right)
|
||||||
cur = OB_CURSOR_EAST;
|
cur = OB_CURSOR_EAST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_bottomright)
|
else if (cnr == prop_atoms.net_wm_moveresize_size_bottomright)
|
||||||
cur = OB_CURSOR_SOUTHEAST;
|
cur = OB_CURSOR_SOUTHEAST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_bottom)
|
else if (cnr == prop_atoms.net_wm_moveresize_size_bottom)
|
||||||
cur = OB_CURSOR_SOUTH;
|
cur = OB_CURSOR_SOUTH;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_bottomleft)
|
else if (cnr == prop_atoms.net_wm_moveresize_size_bottomleft) {
|
||||||
cur = OB_CURSOR_SOUTHWEST;
|
cur = OB_CURSOR_SOUTHWEST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_left)
|
left = -1;
|
||||||
|
} else if (cnr == prop_atoms.net_wm_moveresize_size_left) {
|
||||||
cur = OB_CURSOR_WEST;
|
cur = OB_CURSOR_WEST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_size_keyboard)
|
left = -1;
|
||||||
|
} else if (cnr == prop_atoms.net_wm_moveresize_size_keyboard)
|
||||||
cur = OB_CURSOR_SOUTHEAST;
|
cur = OB_CURSOR_SOUTHEAST;
|
||||||
else if (cnr == prop_atoms.net_wm_moveresize_move)
|
else if (cnr == prop_atoms.net_wm_moveresize_move)
|
||||||
cur = OB_CURSOR_MOVE;
|
cur = OB_CURSOR_MOVE;
|
||||||
|
@ -172,8 +179,8 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
|
||||||
friendly. you essentially start the resize in the middle of the
|
friendly. you essentially start the resize in the middle of the
|
||||||
increment instead of at 0, so you have to move half an increment
|
increment instead of at 0, so you have to move half an increment
|
||||||
either way instead of a full increment one and 1 px the other. */
|
either way instead of a full increment one and 1 px the other. */
|
||||||
start_x = x - (mv ? 0 : c->size_inc.width / 2);
|
start_x = x - (mv ? 0 : left * c->size_inc.width / 2);
|
||||||
start_y = y - (mv ? 0 : c->size_inc.height / 2);
|
start_y = y - (mv ? 0 : up * c->size_inc.height / 2);
|
||||||
corner = cnr;
|
corner = cnr;
|
||||||
button = b;
|
button = b;
|
||||||
key_resize_edge = -1;
|
key_resize_edge = -1;
|
||||||
|
|
Loading…
Reference in a new issue