instance.c for the Openbox window manager
Copyright (c) 2006 Mikael Magnusson
- Copyright (c) 2003 Ben Jansens
+ Copyright (c) 2003-2007 Dana Jansens
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
RrInstance* RrInstanceNew (Display *display, gint screen)
{
+ g_type_init(); /* supposedly needed for pango but seems to work without */
+
definst = g_new (RrInstance, 1);
definst->display = display;
definst->screen = screen;
definst->depth = DefaultDepth(display, screen);
definst->visual = DefaultVisual(display, screen);
definst->colormap = DefaultColormap(display, screen);
+ definst->pango = pango_xft_get_context(display, screen);
definst->pseudo_colors = NULL;
return definst;
}
-void RrTrueColorSetup (RrInstance *inst)
+static void RrTrueColorSetup (RrInstance *inst)
{
gulong red_mask, green_mask, blue_mask;
XImage *timage = NULL;
#define RrPseudoNcolors(inst) (1 << (inst->pseudo_bpc * 3))
-void RrPseudoColorSetup (RrInstance *inst)
+static void RrPseudoColorSetup (RrInstance *inst)
{
XColor icolors[256];
gint tr, tg, tb, n, r, g, b, i, incolors, ii;
_ncolors = RrPseudoNcolors(inst);
if (_ncolors > 1 << inst->depth) {
- g_warning("PseudoRenderControl: Invalid colormap size. Resizing.\n");
+ g_message("Invalid colormap size. Resizing.");
inst->pseudo_bpc = 1 << (inst->depth/3) >> 3;
_ncolors = 1 << (inst->pseudo_bpc * 3);
}
if (inst == definst) definst = NULL;
g_free(inst->pseudo_colors);
g_hash_table_destroy(inst->color_hash);
+ g_object_unref(inst->pango);
+ g_free(inst);
}
}