]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtklevelbar.c
Ensure the insertion handle stays on fake events (eg from IM)
[~andy/gtk] / gtk / gtklevelbar.c
index 038cc52d55805c3ea7c28538529ca2886f735c26..fff48919e8763c85d112b4b67d9a57ee9cdfdde3 100644 (file)
@@ -97,6 +97,8 @@
 #include <math.h>
 #include <stdlib.h>
 
+#include "a11y/gtklevelbaraccessible.h"
+
 #include "fallback-c89.c"
 
 #define DEFAULT_BLOCK_SIZE 3
@@ -480,6 +482,11 @@ gtk_level_bar_draw_fill (GtkLevelBar *self,
     trough_borders.top - trough_borders.bottom;
 
   inverted = self->priv->inverted;
+  if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL)
+    {
+      if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL)
+        inverted = !inverted;
+    }
 
   if (self->priv->bar_mode == GTK_LEVEL_BAR_MODE_CONTINUOUS)
     gtk_level_bar_draw_fill_continuous (self, cr, inverted, &fill_area);
@@ -1019,6 +1026,8 @@ gtk_level_bar_class_init (GtkLevelBarClass *klass)
 
   g_type_class_add_private (klass, sizeof (GtkLevelBarPrivate));
   g_object_class_install_properties (oclass, LAST_PROPERTY, properties);
+
+  gtk_widget_class_set_accessible_type (wclass, GTK_TYPE_LEVEL_BAR_ACCESSIBLE);
 }
 
 static void
@@ -1296,7 +1305,7 @@ gtk_level_bar_get_inverted (GtkLevelBar *self)
 /**
  * gtk_level_bar_set_inverted:
  * @self: a #GtkLevelBar
- * @inverted: %TRUE to invert the progress bar
+ * @inverted: %TRUE to invert the level bar
  *
  * Sets the value of the #GtkLevelBar:inverted property.
  *