mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 21:21:21 +00:00
Bug 337603 – Possible off-by-one in
2006-06-06 Behdad Esfahbod <behdad@gnome.org> Bug 337603 – Possible off-by-one in gdk_pango_layout_line_get_clip_region * gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region): Correct rounding of rect members. Improved docs.
This commit is contained in:
parent
e366da90d6
commit
d3874d0918
@ -1,3 +1,11 @@
|
|||||||
|
2006-06-06 Behdad Esfahbod <behdad@gnome.org>
|
||||||
|
|
||||||
|
Bug 337603 – Possible off-by-one in
|
||||||
|
gdk_pango_layout_line_get_clip_region
|
||||||
|
|
||||||
|
* gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region): Correct
|
||||||
|
rounding of rect members. Improved docs.
|
||||||
|
|
||||||
2006-06-06 Matthias Clasen <mclasen@redhat.com>
|
2006-06-06 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkicontheme.c: Small optimization
|
* gtk/gtkicontheme.c: Small optimization
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2006-06-06 Behdad Esfahbod <behdad@gnome.org>
|
||||||
|
|
||||||
|
Bug 337603 – Possible off-by-one in
|
||||||
|
gdk_pango_layout_line_get_clip_region
|
||||||
|
|
||||||
|
* gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region): Correct
|
||||||
|
rounding of rect members. Improved docs.
|
||||||
|
|
||||||
2006-06-06 Matthias Clasen <mclasen@redhat.com>
|
2006-06-06 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gtk/gtkicontheme.c: Small optimization
|
* gtk/gtkicontheme.c: Small optimization
|
||||||
|
@ -1238,6 +1238,11 @@ gdk_pango_attr_embossed_new (gboolean embossed)
|
|||||||
* contained inside the line. This is to draw the selection all the way
|
* contained inside the line. This is to draw the selection all the way
|
||||||
* to the side of the layout. However, the clip region is in line coordinates,
|
* to the side of the layout. However, the clip region is in line coordinates,
|
||||||
* not layout coordinates.
|
* not layout coordinates.
|
||||||
|
*
|
||||||
|
* Note that the regions returned correspond to logical extents of the text
|
||||||
|
* ranges, not ink extents. So the drawn line may in fact touch areas out of
|
||||||
|
* the clip region. The clip region is mainly useful for highlightling parts
|
||||||
|
* of text, such as when text is selected.
|
||||||
*
|
*
|
||||||
* Return value: a clip region containing the given ranges
|
* Return value: a clip region containing the given ranges
|
||||||
**/
|
**/
|
||||||
@ -1287,12 +1292,16 @@ gdk_pango_layout_line_get_clip_region (PangoLayoutLine *line,
|
|||||||
for (j = 0; j < n_pixel_ranges; j++)
|
for (j = 0; j < n_pixel_ranges; j++)
|
||||||
{
|
{
|
||||||
GdkRectangle rect;
|
GdkRectangle rect;
|
||||||
|
int x_off, y_off;
|
||||||
|
|
||||||
rect.x = x_origin + pixel_ranges[2*j] / PANGO_SCALE - logical_rect.x / PANGO_SCALE;
|
x_off = PANGO_PIXELS (pixel_ranges[2*j] - logical_rect.x);
|
||||||
rect.y = y_origin - (baseline / PANGO_SCALE - logical_rect.y / PANGO_SCALE);
|
y_off = PANGO_PIXELS (baseline - logical_rect.y);
|
||||||
rect.width = (pixel_ranges[2*j + 1] - pixel_ranges[2*j]) / PANGO_SCALE;
|
|
||||||
rect.height = logical_rect.height / PANGO_SCALE;
|
rect.x = x_origin + x_off;
|
||||||
|
rect.y = y_origin - y_off;
|
||||||
|
rect.width = PANGO_PIXELS (pixel_ranges[2*j + 1] - logical_rect.x) - x_off;
|
||||||
|
rect.height = PANGO_PIXELS (baseline - logical_rect.y + logical_rect.height) - y_off;
|
||||||
|
|
||||||
gdk_region_union_with_rect (clip_region, &rect);
|
gdk_region_union_with_rect (clip_region, &rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1316,6 +1325,11 @@ gdk_pango_layout_line_get_clip_region (PangoLayoutLine *line,
|
|||||||
* you would pass to gdk_draw_layout_line(). @index_ranges should contain
|
* you would pass to gdk_draw_layout_line(). @index_ranges should contain
|
||||||
* ranges of bytes in the layout's text.
|
* ranges of bytes in the layout's text.
|
||||||
*
|
*
|
||||||
|
* Note that the regions returned correspond to logical extents of the text
|
||||||
|
* ranges, not ink extents. So the drawn line may in fact touch areas out of
|
||||||
|
* the clip region. The clip region is mainly useful for highlightling parts
|
||||||
|
* of text, such as when text is selected.
|
||||||
|
*
|
||||||
* Return value: a clip region containing the given ranges
|
* Return value: a clip region containing the given ranges
|
||||||
**/
|
**/
|
||||||
GdkRegion*
|
GdkRegion*
|
||||||
|
Loading…
Reference in New Issue
Block a user