forked from AuroraMiddleware/gtk
entry: don't force zero Y coordinate for insertion cursor
Subclasses of GtkEntry could set a larger height request, so we need to apply the same calculations to the insertion cursors than we do on the PangoLayout to render it centered under all circumstances.
This commit is contained in:
parent
0a189935ad
commit
7e78d75e7a
@ -5869,12 +5869,14 @@ gtk_entry_draw_cursor (GtkEntry *entry,
|
||||
gboolean block_at_line_end;
|
||||
PangoLayout *layout;
|
||||
const char *text;
|
||||
gint x, y;
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
|
||||
layout = gtk_entry_ensure_layout (entry, TRUE);
|
||||
text = pango_layout_get_text (layout);
|
||||
cursor_index = g_utf8_offset_to_pointer (text, priv->current_pos + priv->preedit_cursor) - text;
|
||||
get_layout_position (entry, &x, &y);
|
||||
|
||||
if (!priv->overwrite_mode)
|
||||
block = FALSE;
|
||||
@ -5885,19 +5887,16 @@ gtk_entry_draw_cursor (GtkEntry *entry,
|
||||
if (!block)
|
||||
{
|
||||
gtk_render_insertion_cursor (context, cr,
|
||||
- priv->scroll_offset, 0,
|
||||
x, y,
|
||||
layout, cursor_index, priv->resolved_dir);
|
||||
}
|
||||
else /* overwrite_mode */
|
||||
{
|
||||
GdkRGBA cursor_color;
|
||||
GdkRectangle rect;
|
||||
gint x, y;
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
get_layout_position (entry, &x, &y);
|
||||
|
||||
rect.x = PANGO_PIXELS (cursor_rect.x) + x;
|
||||
rect.y = PANGO_PIXELS (cursor_rect.y) + y;
|
||||
rect.width = PANGO_PIXELS (cursor_rect.width);
|
||||
|
Loading…
Reference in New Issue
Block a user