all repos — openbox @ ff39f02c38f738168644fc38a7ad526bf16c2ab7

openbox fork - make it a bit more like ryudo

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
commit

ff39f02c38f738168644fc38a7ad526bf16c2ab7

parent

ed4c6995ca199e5d015f1ca90654b4030c7ea760

5 files changed, 44 insertions(+), 18 deletions(-)

jump to
M data/rc.xml.indata/rc.xml.in

@@ -44,6 +44,7 @@ </desktops>

<resize> <drawContents>yes</drawContents> + <fourCorners>no</fourCorners> </resize> <dock>
M data/rc.xsddata/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.copenbox/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.copenbox/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.hopenbox/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;