From 2382edbdb6d5167d7f4f2dd4f3536a00d78825b4 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 22 Nov 2000 12:09:08 +0000 Subject: [PATCH] Correct calculation of font metrics. Now GtkEntrys have sane size. 2000-11-22 Alexander Larsson * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): Correct calculation of font metrics. Now GtkEntrys have sane size. --- ChangeLog | 52 ++++++++++++++++++++++++++++++++++++++ ChangeLog.pre-2-0 | 52 ++++++++++++++++++++++++++++++++++++++ ChangeLog.pre-2-10 | 52 ++++++++++++++++++++++++++++++++++++++ ChangeLog.pre-2-2 | 52 ++++++++++++++++++++++++++++++++++++++ ChangeLog.pre-2-4 | 52 ++++++++++++++++++++++++++++++++++++++ ChangeLog.pre-2-6 | 52 ++++++++++++++++++++++++++++++++++++++ ChangeLog.pre-2-8 | 52 ++++++++++++++++++++++++++++++++++++++ gdk/linux-fb/gdkpango-fb.c | 6 +++-- 8 files changed, 368 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 88a93877ff..0d531844ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 88a93877ff..0d531844ac 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 88a93877ff..0d531844ac 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 88a93877ff..0d531844ac 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 88a93877ff..0d531844ac 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 88a93877ff..0d531844ac 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 88a93877ff..0d531844ac 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,55 @@ +2000-11-22 Alexander Larsson + + * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): + Correct calculation of font metrics. Now GtkEntrys have sane + size. + +2000-11-22 Alexander Larsson + + * gdk/gdktypes.h: + Add new type GdkSpan + + * docs/reference/gdk/gdk-sections.txt, + docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, + gdk/gdkregion.h: + Implement and document gdk_region_spans_intersect_foreach. + + * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: + Add new file gdkrender-fb.c which contains all core + rendering code. + Add gdk_fb_fill_rectangle_generic (old rectangle code) and + gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 + (optimized rectangle fillers). + + * gdk/linux-fb/gdkdrawable-fb2.c: + Move all rendering code to gdkrender-fb.c. + Change from using GdkRectangles and GdkSegments for spans to GdkSpan. + Use the new span intersection functions in gdk_fb_fill_spans. + gdk_fb_draw_rectangle() clips filled rectangles and calls + gc->fill_rectangle with the result. + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/gdkevents-fb.c: + Remove unused includes and defines. + New function gdk_fb_get_time() to get correct time for events. + + * gdk/linux-fb/gdkinput-ps2.c: + Use gdk method of generating multiple-clicks (gdk_event_button_generate) + Make sure to set the time of all events. + + * gdk/linux-fb/gdkmain-fb.c: + Use gdk_fb_get_time (). + + * gdk/linux-fb/gdkprivate-fb.h: + New virtual GC calls: fill_span & fill_rectangle. + Export gdk_fb_get_time(). + gdk_fb_fill_spans() gets extra argument "sorted". + + * gdk/linux-fb/mi*.c: + Use GdkSpan instead of GdkRectangle. + Pass correct sorted to gdk_fb_fill_spans. (sorted value taken + from XFree 4 source) + 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what diff --git a/gdk/linux-fb/gdkpango-fb.c b/gdk/linux-fb/gdkpango-fb.c index c86acf48f4..8cc57a9cc9 100644 --- a/gdk/linux-fb/gdkpango-fb.c +++ b/gdk/linux-fb/gdkpango-fb.c @@ -717,10 +717,12 @@ pango_fb_font_get_metrics (PangoFont *font, ftf = PANGO_FB_FONT (font)->ftf; + pango_fb_font_set_size (font); + if (metrics) { - metrics->ascent = ftf->ascender * PANGO_SCALE >> 6; - metrics->descent = ftf->descender * PANGO_SCALE >> 6; + metrics->ascent = ftf->size->metrics.ascender * PANGO_SCALE >> 6; + metrics->descent = ftf->size->metrics.descender * PANGO_SCALE >> 6; } }