remove the four corners option
document what these serious macros are with art!
This commit is contained in:
parent
59a33c03b0
commit
9e6aa531d0
3 changed files with 66 additions and 41 deletions
|
@ -1566,22 +1566,10 @@ void action_toggle_decorations(union ActionData *data)
|
|||
|
||||
static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch)
|
||||
{
|
||||
if (config_resize_four_corners) {
|
||||
if (x - cx > cw / 2) {
|
||||
if (y - cy > ch / 2)
|
||||
return prop_atoms.net_wm_moveresize_size_bottomright;
|
||||
else
|
||||
return prop_atoms.net_wm_moveresize_size_topright;
|
||||
} else {
|
||||
if (y - cy > ch / 2)
|
||||
return prop_atoms.net_wm_moveresize_size_bottomleft;
|
||||
else
|
||||
return prop_atoms.net_wm_moveresize_size_topleft;
|
||||
}
|
||||
} else {
|
||||
/* let's make x and y client relative instead of screen relative */
|
||||
x = x - cx;
|
||||
y = ch - y + cy;
|
||||
y = ch - (y - cy); /* y is inverted, 0 is at the bottom of the window */
|
||||
|
||||
#define X x*ch/cw
|
||||
#define A -4*X + 7*ch/3
|
||||
#define B 4*X -15*ch/9
|
||||
|
@ -1596,6 +1584,47 @@ static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch)
|
|||
#define c (x > 5*cw/9)
|
||||
#define d (y < 4*ch/9)
|
||||
|
||||
/*
|
||||
Each of these defines (except X which is just there for fun), represents
|
||||
the equation of a line. The lines they represent are shown in the diagram
|
||||
below. Checking y against these lines, we are able to choose a region
|
||||
of the window as shown.
|
||||
|
||||
+---------------------A-------|-------|-------B---------------------+
|
||||
| |A B| |
|
||||
| |A | | B| |
|
||||
| | A B | |
|
||||
| | A | | B | |
|
||||
| | A B | |
|
||||
| | A | | B | |
|
||||
| northwest | A north B | northeast |
|
||||
| | A | | B | |
|
||||
| | A B | |
|
||||
C---------------------+----A--+-------+--B----+---------------------D
|
||||
|CCCCCCC | A B | DDDDDDD|
|
||||
| CCCCCCCC | A | | B | DDDDDDDD |
|
||||
| CCCCCCC A B DDDDDDD |
|
||||
- - - - - - - - - - - +CCCCCCC+aaaaaaa+DDDDDDD+ - - - - - - - - - - -
|
||||
| | b c | |
|
||||
| west | b move c | east |
|
||||
| | b c | |
|
||||
- - - - - - - - - - - +EEEEEEE+ddddddd+FFFFFFF+- - - - - - - - - - -
|
||||
| EEEEEEE G H FFFFFFF |
|
||||
| EEEEEEEE | G | | H | FFFFFFFF |
|
||||
|EEEEEEE | G H | FFFFFFF|
|
||||
E---------------------+----G--+-------+--H----+---------------------F
|
||||
| | G H | |
|
||||
| | G | | H | |
|
||||
| southwest | G south H | southeast |
|
||||
| | G | | H | |
|
||||
| | G H | |
|
||||
| | G | | H | |
|
||||
| | G H | |
|
||||
| |G | | H| |
|
||||
| |G H| |
|
||||
+---------------------G-------|-------|-------H---------------------+
|
||||
*/
|
||||
|
||||
if (y < A && y >= C)
|
||||
return prop_atoms.net_wm_moveresize_size_topleft;
|
||||
else if (y >= A && y >= B && a)
|
||||
|
@ -1614,8 +1643,8 @@ static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch)
|
|||
return prop_atoms.net_wm_moveresize_size_bottomright;
|
||||
else
|
||||
return prop_atoms.net_wm_moveresize_move;
|
||||
}
|
||||
}
|
||||
|
||||
#undef X
|
||||
#undef A
|
||||
#undef B
|
||||
#undef C
|
||||
|
@ -1628,6 +1657,7 @@ static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch)
|
|||
#undef b
|
||||
#undef c
|
||||
#undef d
|
||||
}
|
||||
|
||||
void action_moveresize(union ActionData *data)
|
||||
{
|
||||
|
|
|
@ -535,8 +535,6 @@ static void parse_resize(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
|
|||
|
||||
if ((n = parse_find_node("drawContents", node)))
|
||||
config_resize_redraw = parse_bool(doc, n);
|
||||
if ((n = parse_find_node("fourCorner", node)))
|
||||
config_resize_four_corners = parse_bool(doc, n);
|
||||
if ((n = parse_find_node("popupShow", node))) {
|
||||
config_resize_popup_show = parse_int(doc, n);
|
||||
if (parse_contains("Always", doc, n))
|
||||
|
|
|
@ -46,9 +46,6 @@ extern ObPlacePolicy config_place_policy;
|
|||
/*! When true windows' contents are refreshed while they are resized; otherwise
|
||||
they are not updated until the resize is complete */
|
||||
extern gboolean config_resize_redraw;
|
||||
/*! Divide windows in 4 or 9 areas when doing a resize. The middle will be move
|
||||
when selecting 9 corners */
|
||||
extern gboolean config_resize_four_corners;
|
||||
/*! show move/resize popups? 0 = no, 1 = always, 2 = only
|
||||
resizing !1 increments */
|
||||
extern gint config_resize_popup_show;
|
||||
|
|
Loading…
Reference in a new issue