Index: gtk/gtkstatusbar.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkstatusbar.c,v
retrieving revision 1.33
diff -u -b -B -p -r1.33 gtkstatusbar.c
--- gtk/gtkstatusbar.c	22 Oct 2002 18:04:44 -0000	1.33
+++ gtk/gtkstatusbar.c	28 Oct 2002 21:55:25 -0000
@@ -421,12 +421,13 @@ gtk_statusbar_destroy (GtkObject *object
   GTK_OBJECT_CLASS (parent_class)->destroy (object);
 }
 
-static void
+static GdkWindowEdge
 get_grip_rect (GtkStatusbar *statusbar,
                GdkRectangle *rect)
 {
   GtkWidget *widget;
   gint w, h;
+  GdkWindowEdge edge;
   
   widget = GTK_WIDGET (statusbar);
 
@@ -440,10 +441,23 @@ get_grip_rect (GtkStatusbar *statusbar,
   if (h > (widget->allocation.height - widget->style->ythickness))
     h = widget->allocation.height - widget->style->ythickness;
   
-  rect->x = widget->allocation.x + widget->allocation.width - w;
-  rect->y = widget->allocation.y + widget->allocation.height - h;
   rect->width = w;
   rect->height = h;
+  rect->y = widget->allocation.y + widget->allocation.height - h;
+
+  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) 
+    {
+      rect->x = widget->allocation.x + widget->allocation.width - w;
+      edge = GDK_WINDOW_EDGE_SOUTH_EAST; 
+    }
+  else 
+    {
+      rect->x = widget->allocation.x + GTK_CONTAINER (widget)->border_width +
+	widget->style->xthickness;
+      edge = GDK_WINDOW_EDGE_SOUTH_WEST; 
+    }
+
+  return edge;
 }
 
 static void
@@ -543,6 +557,7 @@ gtk_statusbar_button_press (GtkWidget   
 {
   GtkStatusbar *statusbar;
   GtkWidget *ancestor;
+  GdkWindowEdge edge;
   
   statusbar = GTK_STATUSBAR (widget);
   
@@ -554,9 +569,14 @@ gtk_statusbar_button_press (GtkWidget   
   if (!GTK_IS_WINDOW (ancestor))
     return FALSE;
 
+  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
+    edge = GDK_WINDOW_EDGE_SOUTH_EAST;
+  else
+    edge = GDK_WINDOW_EDGE_SOUTH_WEST;
+
   if (event->button == 1)
     gtk_window_begin_resize_drag (GTK_WINDOW (ancestor),
-                                  GDK_WINDOW_EDGE_SOUTH_EAST,
+                                  edge,
                                   event->button,
                                   event->x_root, event->y_root,
                                   event->time);
@@ -584,7 +604,9 @@ gtk_statusbar_expose_event (GtkWidget   
 
   if (statusbar->has_resize_grip)
     {
-      get_grip_rect (statusbar, &rect);
+      GdkWindowEdge edge;
+      
+      edge = get_grip_rect (statusbar, &rect);
 
       gtk_paint_resize_grip (widget->style,
                              widget->window,
@@ -592,7 +614,7 @@ gtk_statusbar_expose_event (GtkWidget   
                              NULL,
                              widget,
                              "statusbar",
-                             GDK_WINDOW_EDGE_SOUTH_EAST,
+                             edge,
                              rect.x, rect.y,
                              /* don't draw grip over the frame, though you
                               * can click on the frame.
