forked from AuroraMiddleware/gtk
Fix positioning at the end of the line for lines ending in invisible
2005-06-27 Matthias Clasen <mclasen@redhat.com> * gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): Fix positioning at the end of the line for lines ending in invisible characters. (gtk_text_layout_get_line_display): Set display->layout to a PangoLayout, even for totally invisible lines.
This commit is contained in:
parent
e93418a163
commit
86e4f7d1f3
@ -1,5 +1,11 @@
|
|||||||
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end):
|
||||||
|
Fix positioning at the end of the line for lines ending
|
||||||
|
in invisible characters.
|
||||||
|
(gtk_text_layout_get_line_display): Set display->layout
|
||||||
|
to a PangoLayout, even for totally invisible lines.
|
||||||
|
|
||||||
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
|
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
|
||||||
GrabBroken events which are caused by overgrabbing inside
|
GrabBroken events which are caused by overgrabbing inside
|
||||||
the application; menus rely on these for their operation.
|
the application; menus rely on these for their operation.
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end):
|
||||||
|
Fix positioning at the end of the line for lines ending
|
||||||
|
in invisible characters.
|
||||||
|
(gtk_text_layout_get_line_display): Set display->layout
|
||||||
|
to a PangoLayout, even for totally invisible lines.
|
||||||
|
|
||||||
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
|
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
|
||||||
GrabBroken events which are caused by overgrabbing inside
|
GrabBroken events which are caused by overgrabbing inside
|
||||||
the application; menus rely on these for their operation.
|
the application; menus rely on these for their operation.
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
2005-06-27 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end):
|
||||||
|
Fix positioning at the end of the line for lines ending
|
||||||
|
in invisible characters.
|
||||||
|
(gtk_text_layout_get_line_display): Set display->layout
|
||||||
|
to a PangoLayout, even for totally invisible lines.
|
||||||
|
|
||||||
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
|
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
|
||||||
GrabBroken events which are caused by overgrabbing inside
|
GrabBroken events which are caused by overgrabbing inside
|
||||||
the application; menus rely on these for their operation.
|
the application; menus rely on these for their operation.
|
||||||
|
@ -1847,7 +1847,14 @@ gtk_text_layout_get_line_display (GtkTextLayout *layout,
|
|||||||
* with sequences of invisible lines.
|
* with sequences of invisible lines.
|
||||||
*/
|
*/
|
||||||
if (totally_invisible_line (layout, line, &iter))
|
if (totally_invisible_line (layout, line, &iter))
|
||||||
|
{
|
||||||
|
if (display->direction == GTK_TEXT_DIR_RTL)
|
||||||
|
display->layout = pango_layout_new (layout->rtl_context);
|
||||||
|
else
|
||||||
|
display->layout = pango_layout_new (layout->ltr_context);
|
||||||
|
|
||||||
return display;
|
return display;
|
||||||
|
}
|
||||||
|
|
||||||
/* Find the bidi base direction */
|
/* Find the bidi base direction */
|
||||||
base_dir = line->dir_propagated_forward;
|
base_dir = line->dir_propagated_forward;
|
||||||
@ -2955,9 +2962,10 @@ gtk_text_layout_move_iter_to_line_end (GtkTextLayout *layout,
|
|||||||
* are inside a paragraph to avoid going to next line on a
|
* are inside a paragraph to avoid going to next line on a
|
||||||
* forced break not at whitespace. Real fix is to keep track
|
* forced break not at whitespace. Real fix is to keep track
|
||||||
* of whether marks are at leading or trailing edge? */
|
* of whether marks are at leading or trailing edge? */
|
||||||
if (direction > 0 && layout_line->length > 0 && !gtk_text_iter_ends_line (iter))
|
if (direction > 0 && layout_line->length > 0 &&
|
||||||
|
!gtk_text_iter_ends_line (iter) &&
|
||||||
|
!_gtk_text_btree_char_is_invisible (iter))
|
||||||
gtk_text_iter_backward_char (iter);
|
gtk_text_iter_backward_char (iter);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user