Some more TODO resolution in the GTK+ backend.
This commit is contained in:
parent
61185072f7
commit
9b4a13e9b3
|
@ -0,0 +1 @@
|
||||||
|
on some unix systems, alpha blending fonts may not be available; this depends on your installed version of pango and is determined at runtime by libui
|
|
@ -87,9 +87,9 @@ static const PangoStretch pangoStretches[] = {
|
||||||
|
|
||||||
// we need a context for a few things
|
// we need a context for a few things
|
||||||
// the documentation suggests creating cairo_t-specific, GdkScreen-specific, or even GtkWidget-specific contexts, but we can't really do that because we want our uiDrawTextFonts and uiDrawTextLayouts to be context-independent
|
// the documentation suggests creating cairo_t-specific, GdkScreen-specific, or even GtkWidget-specific contexts, but we can't really do that because we want our uiDrawTextFonts and uiDrawTextLayouts to be context-independent
|
||||||
// so this will have to do
|
// we could use pango_font_map_create_context(pango_cairo_font_map_get_default()) but that will ignore GDK-specific settings
|
||||||
// TODO really see if there's a better way instead; what do GDK and GTK+ do internally? gdk_pango_context_get()?
|
// so let's use gdk_pango_context_get() instead; even though it's for the default screen only, it's good enough for us
|
||||||
#define mkGenericPangoCairoContext() (pango_font_map_create_context(pango_cairo_font_map_get_default()))
|
#define mkGenericPangoCairoContext() (gdk_pango_context_get())
|
||||||
|
|
||||||
PangoFont *pangoDescToPangoFont(PangoFontDescription *pdesc)
|
PangoFont *pangoDescToPangoFont(PangoFontDescription *pdesc)
|
||||||
{
|
{
|
||||||
|
@ -251,9 +251,10 @@ void uiDrawTextLayoutExtents(uiDrawTextLayout *layout, double *width, double *he
|
||||||
PangoRectangle logical;
|
PangoRectangle logical;
|
||||||
|
|
||||||
// in this case, the context is necessary to create the layout
|
// in this case, the context is necessary to create the layout
|
||||||
|
// the layout takes a ref on the context so we can unref it afterward
|
||||||
context = mkGenericPangoCairoContext();
|
context = mkGenericPangoCairoContext();
|
||||||
pl = pango_layout_new(context);
|
pl = pango_layout_new(context);
|
||||||
// TODO g_object_unref() context?
|
g_object_unref(context);
|
||||||
prepareLayout(layout, pl);
|
prepareLayout(layout, pl);
|
||||||
|
|
||||||
pango_layout_get_extents(pl, NULL, &logical);
|
pango_layout_get_extents(pl, NULL, &logical);
|
||||||
|
@ -287,7 +288,6 @@ static void addAttr(uiDrawTextLayout *layout, PangoAttribute *attr, intmax_t sta
|
||||||
|
|
||||||
// these attributes are only supported on 1.38 and higher; we need to support 1.36
|
// these attributes are only supported on 1.38 and higher; we need to support 1.36
|
||||||
// use dynamic linking to make them work at least on newer systems
|
// use dynamic linking to make them work at least on newer systems
|
||||||
// TODO warn programmers
|
|
||||||
static PangoAttribute *(*newFGAlphaAttr)(guint16 alpha) = NULL;
|
static PangoAttribute *(*newFGAlphaAttr)(guint16 alpha) = NULL;
|
||||||
static gboolean tried138 = FALSE;
|
static gboolean tried138 = FALSE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue