Index: openbox/config.c
===================================================================
RCS file: /cvs/cvsroot/openbox/openbox/config.c,v
retrieving revision 1.69
diff -u -r1.69 config.c
--- openbox/config.c	2003/10/25 19:39:19	1.69
+++ openbox/config.c	2003/11/24 17:43:41
@@ -39,6 +39,7 @@
 GSList *config_desktops_names;
 
 gboolean config_redraw_resize;
+gboolean config_blackbox_resize;
 
 ObStackingLayer config_dock_layer;
 gboolean        config_dock_floating;
@@ -278,6 +279,8 @@
     
     if ((n = parse_find_node("drawContents", node)))
         config_redraw_resize = parse_bool(doc, n);
+	if ((n = parse_find_node("blackboxMode", node)))
+		config_blackbox_resize = parse_bool(doc, n);
 }
 
 static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
@@ -507,6 +510,7 @@
     parse_register(i, "desktops", parse_desktops, NULL);
 
     config_redraw_resize = TRUE;
+	config_blackbox_resize = FALSE;
 
     parse_register(i, "resize", parse_resize, NULL);
 
Index: openbox/config.h
===================================================================
RCS file: /cvs/cvsroot/openbox/openbox/config.h,v
retrieving revision 1.43
diff -u -r1.43 config.h
--- openbox/config.h	2003/10/15 03:59:35	1.43
+++ openbox/config.h	2003/11/24 17:43:41
@@ -42,6 +42,8 @@
 /*! When true windows' contents are refreshed while they are resized; otherwise
   they are not updated until the resize is complete */
 extern gboolean config_redraw_resize;
+/*! When true, resize always moves the bottom-right corner */
+extern gboolean config_blackbox_resize;
 
 /*! The stacking layer the dock will reside in */
 extern ObStackingLayer config_dock_layer;
Index: openbox/moveresize.c
===================================================================
RCS file: /cvs/cvsroot/openbox/openbox/moveresize.c,v
retrieving revision 1.49
diff -u -r1.49 moveresize.c
--- openbox/moveresize.c	2003/10/15 03:59:35	1.49
+++ openbox/moveresize.c	2003/11/24 17:43:42
@@ -132,7 +132,13 @@
 
     moveresize_in_progress = TRUE;
 
-    if (corner == prop_atoms.net_wm_moveresize_size_topleft)
+    if (corner == prop_atoms.net_wm_moveresize_move)
+        cur = OB_CURSOR_MOVE;
+    else if (corner == prop_atoms.net_wm_moveresize_move_keyboard)
+        cur = OB_CURSOR_MOVE;
+	else if (config_blackbox_resize == TRUE)
+		cur = OB_CURSOR_SOUTHEAST;
+	else if (corner == prop_atoms.net_wm_moveresize_size_topleft)
         cur = OB_CURSOR_NORTHWEST;
     else if (corner == prop_atoms.net_wm_moveresize_size_top)
         cur = OB_CURSOR_NORTH;
@@ -150,10 +156,6 @@
         cur = OB_CURSOR_WEST;
     else if (corner == prop_atoms.net_wm_moveresize_size_keyboard)
         cur = OB_CURSOR_SOUTHEAST;
-    else if (corner == prop_atoms.net_wm_moveresize_move)
-        cur = OB_CURSOR_MOVE;
-    else if (corner == prop_atoms.net_wm_moveresize_move_keyboard)
-        cur = OB_CURSOR_MOVE;
     else
         g_assert_not_reached();
 
@@ -247,7 +249,11 @@
             cur_y = start_cy + e->xmotion.y_root - start_y;
             do_move(TRUE);
         } else {
-            if (corner == prop_atoms.net_wm_moveresize_size_topleft) {
+			if (config_blackbox_resize == TRUE) {
+                cur_x = start_cw + (e->xmotion.x_root - start_x);
+                cur_y = start_ch + (e->xmotion.y_root - start_y);
+                lockcorner = OB_CORNER_TOPLEFT;
+			} else if (corner == prop_atoms.net_wm_moveresize_size_topleft) {
                 cur_x = start_cw - (e->xmotion.x_root - start_x);
                 cur_y = start_ch - (e->xmotion.y_root - start_y);
                 lockcorner = OB_CORNER_BOTTOMRIGHT;

