Implement block-cursor for overwrite mode. (#80378)
2007-06-12 Yevgen Muntyan <muntyan@tamu.edu> * gtk/gtkentry.c (gtk_entry_expose), (gtk_entry_toggle_overwrite), (gtk_entry_draw_cursor): * gtk/gtkstyle.c (_gtk_widget_get_cursor_gc), (_gtk_widget_get_cursor_color): * gtk/gtkstyle.h: * gtk/gtktextdisplay.c (gtk_text_renderer_prepare_run), (gtk_text_renderer_draw_shape), (text_renderer_set_state), (render_para): * gtk/gtktextlayout.c (gtk_text_layout_set_overwrite_mode), (gtk_text_layout_invalidate_cache), (get_block_cursor), (add_cursor), (gtk_text_layout_get_line_display), (_gtk_text_layout_get_block_cursor): * gtk/gtktextlayout.h: * gtk/gtktextutil.c (layout_get_char_width), (_gtk_text_util_get_block_cursor_location): * gtk/gtktextutil.h: * gtk/gtktextview.c (gtk_text_view_set_editable), (gtk_text_view_toggle_overwrite), (gtk_text_view_set_overwrite), (gtk_text_view_ensure_layout), (text_window_invalidate_cursors): Implement block-cursor for overwrite mode. (#80378) svn path=/trunk/; revision=18108
This commit is contained in:
committed by
Behdad Esfahbod
parent
15c6934778
commit
ef1e05f7de
@ -6665,6 +6665,34 @@ get_insertion_cursor_gc (GtkWidget *widget,
|
||||
}
|
||||
}
|
||||
|
||||
GdkGC *
|
||||
_gtk_widget_get_cursor_gc (GtkWidget *widget)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
|
||||
g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
|
||||
return get_insertion_cursor_gc (widget, TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
_gtk_widget_get_cursor_color (GtkWidget *widget,
|
||||
GdkColor *color)
|
||||
{
|
||||
GdkColor *style_color;
|
||||
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
g_return_if_fail (color != NULL);
|
||||
|
||||
gtk_widget_style_get (widget, "cursor-color", &style_color, NULL);
|
||||
|
||||
if (style_color)
|
||||
{
|
||||
*color = *style_color;
|
||||
gdk_color_free (style_color);
|
||||
}
|
||||
else
|
||||
*color = widget->style->text[GTK_STATE_NORMAL];
|
||||
}
|
||||
|
||||
static void
|
||||
draw_insertion_cursor (GtkWidget *widget,
|
||||
GdkDrawable *drawable,
|
||||
|
||||
Reference in New Issue
Block a user