add an option to resize with 4 corners as it was long ago and make the default 9 "corners" with the middle corner being move. that way you only need one mod+button to move and resize windows
Mikael Magnusson mikachu@comhem.se
5 files changed,
44 insertions(+),
18 deletions(-)
M
data/rc.xml.in
→
data/rc.xml.in
@@ -44,6 +44,7 @@ </desktops>
<resize> <drawContents>yes</drawContents> + <fourCorners>no</fourCorners> </resize> <dock>
M
data/rc.xsd
→
data/rc.xsd
@@ -31,6 +31,8 @@ add diffs between 3.1 and 3.2
Sun Oct 31 10:08:34 UTC 2004 - mikachu(a)openbox.org we haven't remembered to update this changelog in a while, adding desktopMenuIcons. + Thu Nov 4 12:07:08 UTC 2004 - mikachu(a)openbox.org + Add fourCorners to resize context. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://openbox.org/"@@ -114,6 +116,7 @@ </xs:complexType>
<xs:complexType name="resize"> <xs:sequence> <xs:element name="drawContents" type="ob:yesorno"/> + <xs:element name="fourCorners" type="ob:yesorno"/> <xs:element name="popupShow" type="ob:popupshow"/> <xs:element name="popupPosition" type="ob:popupposition"/> </xs:sequence>
M
openbox/action.c
→
openbox/action.c
@@ -1344,25 +1344,40 @@ }
static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch) { - if ((cw / 3 < 1) || (x - cx > cw / 3 * 2)) { - if ((ch / 3 < 1) || (y - cy > ch / 3 * 2)) - return prop_atoms.net_wm_moveresize_size_bottomright; - else if (y - cy < ch / 3) - return prop_atoms.net_wm_moveresize_size_topright; - else - return prop_atoms.net_wm_moveresize_size_right; - } else if (x - cx < cw / 3) { - if (y - cy > ch / 3 * 2) - return prop_atoms.net_wm_moveresize_size_bottomleft; - else if (y - cy < ch / 3) - return prop_atoms.net_wm_moveresize_size_topleft; - else - return prop_atoms.net_wm_moveresize_size_left; + 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 { - if (y - cy > ch / 2) - return prop_atoms.net_wm_moveresize_size_bottom; - else - return prop_atoms.net_wm_moveresize_size_top; + if (x - cx > cw * 2 / 3) { + if (y - cy > ch * 2 / 3) + return prop_atoms.net_wm_moveresize_size_bottomright; + else if (y - cy < ch / 3) + return prop_atoms.net_wm_moveresize_size_topright; + else + return prop_atoms.net_wm_moveresize_size_right; + } else if (x - cx < cw / 3) { + if (y - cy > ch * 2 / 3) + return prop_atoms.net_wm_moveresize_size_bottomleft; + else if (y - cy < ch / 3) + return prop_atoms.net_wm_moveresize_size_topleft; + else + return prop_atoms.net_wm_moveresize_size_left; + } else + if (y - cy > ch * 2 / 3) + return prop_atoms.net_wm_moveresize_size_bottom; + else if (y - cy < ch / 3) + return prop_atoms.net_wm_moveresize_size_top; + else + return prop_atoms.net_wm_moveresize_move; } }
M
openbox/config.c
→
openbox/config.c
@@ -43,6 +43,7 @@ GSList *config_desktops_names;
gint config_screen_firstdesk; gboolean config_resize_redraw; +gboolean config_resize_four_corners; gint config_resize_popup_show; gint config_resize_popup_pos;@@ -300,6 +301,8 @@ node = node->children;
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))@@ -559,6 +562,7 @@
parse_register(i, "desktops", parse_desktops, NULL); config_resize_redraw = TRUE; + config_resize_four_corners = FALSE; config_resize_popup_show = 1; /* nonpixel increments */ config_resize_popup_pos = 0; /* center of client */
M
openbox/config.h
→
openbox/config.h
@@ -45,6 +45,9 @@
/*! 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;