Index: app/tools/gimprectangletool.c
===================================================================
--- app/tools/gimprectangletool.c	(revision 25382)
+++ app/tools/gimprectangletool.c	(working copy)
@@ -97,6 +97,8 @@
 
 struct _GimpRectangleToolPrivate
 {
+  gboolean                always_narrow;
+
   /* The following members are "constants", that is, variables that are setup
    * during gimp_rectangle_tool_button_press and then only read.
    */
@@ -457,7 +459,9 @@
 void
 gimp_rectangle_tool_init (GimpRectangleTool *rect_tool)
 {
-  /* No need to initialize anything yet. */
+  GimpRectangleToolPrivate *private = GIMP_RECTANGLE_TOOL_GET_PRIVATE (rect_tool);
+
+  private->always_narrow = FALSE;
 }
 
 /**
@@ -882,8 +886,9 @@
 
       gimp_rectangle_tool_update_handle_sizes (rect_tool);
 
-      /* Created rectangles should not be started in narrow-mode */
-      private->narrow_mode = FALSE;
+      /* Created rectangles should not be started in narrow-mode unless
+       * they are always in narrow mode */
+      private->narrow_mode = private->always_narrow;
 
       /* If the rectangle is being modified we want the center on fixed_center to be
        * at the center of the currently existing rectangle, otherwise we want the
@@ -1835,8 +1840,11 @@
                               &visible_rectangle_height);
 
     /* Determine if we are in narrow-mode or not. */
-    private->narrow_mode = visible_rectangle_width  < NARROW_MODE_THRESHOLD ||
-                           visible_rectangle_height < NARROW_MODE_THRESHOLD;
+    if (private->always_narrow)
+      private->narrow_mode = TRUE;
+    else
+      private->narrow_mode = (visible_rectangle_width  < NARROW_MODE_THRESHOLD ||
+                              visible_rectangle_height < NARROW_MODE_THRESHOLD);
 
   }
 
@@ -4118,13 +4126,30 @@
 }
 
 /**
- * gimp_rectangle_tool_rectangle_is_narrow:
+ * gimp_rectangle_tool_set_always_narrow:
  *
- * Returns TRUE if the handles are being shown outside the
- * rectangle, FALSE if they are inside
+ * Makes sure that the rectangle is always shown with handles
+ * outside.  Mainly intended for use in the text tool, where
+ * handles inside interfere with the text.
  */
-gboolean
-gimp_rectangle_tool_rectangle_is_narrow (GimpRectangleTool *rect_tool)
+void
+gimp_rectangle_tool_set_always_narrow (GimpRectangleTool *rect_tool,
+                                       gboolean           always_narrow)
 {
-  return GIMP_RECTANGLE_TOOL_GET_PRIVATE (rect_tool)->narrow_mode;
+  GimpRectangleToolPrivate *private = GIMP_RECTANGLE_TOOL_GET_PRIVATE (rect_tool);
+
+  private->always_narrow = always_narrow ? TRUE : FALSE;
+
+  if (always_narrow  && ! private->narrow_mode)
+    {
+      GimpDrawTool *draw_tool = GIMP_DRAW_TOOL (rect_tool);
+
+      if (gimp_draw_tool_is_active (draw_tool))
+        gimp_draw_tool_pause (draw_tool);
+
+      private->narrow_mode = TRUE;
+
+      if (gimp_draw_tool_is_active (draw_tool))
+        gimp_draw_tool_resume (draw_tool);
+    }
 }
Index: app/tools/gimprectangletool.h
===================================================================
--- app/tools/gimprectangletool.h	(revision 25382)
+++ app/tools/gimprectangletool.h	(working copy)
@@ -139,11 +139,11 @@
                                                      const gchar             *width_property,
                                                      const gchar             *height_property);
 gboolean    gimp_rectangle_tool_rectangle_is_new    (GimpRectangleTool       *rect_tool);
-gboolean    gimp_rectangle_tool_rectangle_is_narrow (GimpRectangleTool       *rect_tool);
 gboolean    gimp_rectangle_tool_point_in_rectangle  (GimpRectangleTool       *rect_tool,
                                                      gdouble                  x,
                                                      gdouble                  y);
-
+void        gimp_rectangle_tool_set_always_narrow   (GimpRectangleTool       *rect_tool,
+                                                     gboolean                 always_narrow);
 /*  convenience functions  */
 
 void        gimp_rectangle_tool_install_properties  (GObjectClass *klass);
