diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-08-05 12:29:24 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-08-05 12:31:18 -0400 |
commit | 8ff94ea1f2efce0090322f37d5aa9f3060a5947b (patch) | |
tree | cab8ace0c325a0f3c26b9c0c9c43d543b132f958 | |
parent | 053bd0cd317a56751b5ed85e9468eda4a285bb42 (diff) | |
download | gtk+-8ff94ea1f2efce0090322f37d5aa9f3060a5947b.tar.gz |
text: Move setup code out of a loop
Just a cleanup, no functional change.
-rw-r--r-- | gtk/gtktext.c | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/gtk/gtktext.c b/gtk/gtktext.c index 62f7c90e4c..1cb086dd1f 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -5049,39 +5049,40 @@ gtk_text_move_visually (GtkText *self, int index; PangoLayout *layout = gtk_text_ensure_layout (self, FALSE); const char *text; + gboolean split_cursor; + gboolean strong; text = pango_layout_get_text (layout); - + index = g_utf8_offset_to_pointer (text, start) - text; - while (count != 0) + + g_object_get (gtk_widget_get_settings (GTK_WIDGET (self)), + "gtk-split-cursor", &split_cursor, + NULL); + + if (split_cursor) + strong = TRUE; + else { - int new_index, new_trailing; - gboolean split_cursor; - gboolean strong; + GdkDisplay *display; + GdkSeat *seat; + GdkDevice *keyboard = NULL; + PangoDirection direction = PANGO_DIRECTION_LTR; - g_object_get (gtk_widget_get_settings (GTK_WIDGET (self)), - "gtk-split-cursor", &split_cursor, - NULL); + display = gtk_widget_get_display (GTK_WIDGET (self)); + seat = gdk_display_get_default_seat (display); + if (seat) + keyboard = gdk_seat_get_keyboard (seat); + if (keyboard) + direction = gdk_device_get_direction (keyboard); - if (split_cursor) - strong = TRUE; - else - { - GdkDisplay *display; - GdkSeat *seat; - GdkDevice *keyboard = NULL; - PangoDirection direction = PANGO_DIRECTION_LTR; - - display = gtk_widget_get_display (GTK_WIDGET (self)); - seat = gdk_display_get_default_seat (display); - if (seat) - keyboard = gdk_seat_get_keyboard (seat); - if (keyboard) - direction = gdk_device_get_direction (keyboard); - - strong = direction == priv->resolved_dir; - } + strong = direction == priv->resolved_dir; + } + + while (count != 0) + { + int new_index, new_trailing; if (count > 0) { @@ -5098,11 +5099,11 @@ gtk_text_move_visually (GtkText *self, index = 0; else if (new_index != G_MAXINT) index = new_index; - + while (new_trailing--) index = g_utf8_next_char (text + index) - text; } - + return g_utf8_pointer_to_offset (text, text + index); } |