+2007-09-05 Behdad Esfahbod <behdad@gnome.org>
+
+ * perf/vim.sh: Wait for keypress when done, so one can do
+ "vte -c ./vim.sh" and not lose the final numbers.
+
+ * src/vtepango.c (_vte_pango_destroy), (_vte_pango_start),
+ (_vte_pango_end), (_vte_pango_set_background_color),
+ (_vte_pango_set_background_image), (_vte_pango_clear),
+ (_vte_pango_set_text_font), (_vte_pango_get_using_fontconfig),
+ (_vte_pango_draw_text), (_vte_pango_draw_has_char),
+ (_vte_pango_draw_rectangle), (_vte_pango_fill_rectangle),
+ (_vte_pango_set_scroll): General cleanup. Also implement
+ _vte_pango_draw_has_char() using
+ pango_layout_get_unknown_glyphs_count() when available.
+
2007-09-02 Behdad Esfahbod <behdad@gnome.org>
Bug 469862 – Handling of wrapped links in gnome-terminal is broken
static void
_vte_pango_destroy(struct _vte_draw *draw)
{
- struct _vte_pango_data *data;
- data = (struct _vte_pango_data*) draw->impl_data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
if (data->pixmap != NULL) {
g_object_unref(data->pixmap);
g_object_unref(data->gc);
}
- g_slice_free(struct _vte_pango_data, draw->impl_data);
+ g_slice_free (struct _vte_pango_data, draw->impl_data);
}
static GdkVisual *
static void
_vte_pango_start(struct _vte_draw *draw)
{
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
PangoContext *ctx;
- struct _vte_pango_data *data;
- data = (struct _vte_pango_data*) draw->impl_data;
ctx = gtk_widget_get_pango_context (draw->widget);
static void
_vte_pango_end(struct _vte_draw *draw)
{
- struct _vte_pango_data *data;
- data = (struct _vte_pango_data*) draw->impl_data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
if (data->gc != NULL) {
g_object_unref(data->gc);
static void
_vte_pango_set_background_color(struct _vte_draw *draw, GdkColor *color, guint16 opacity)
{
- struct _vte_pango_data *data;
- data = (struct _vte_pango_data*) draw->impl_data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
data->color = *color;
}
const GdkColor *color,
double saturation)
{
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
GdkPixmap *pixmap;
- struct _vte_pango_data *data;
GdkScreen *screen;
screen = gtk_widget_get_screen(draw->widget);
- data = (struct _vte_pango_data*) draw->impl_data;
pixmap = vte_bg_get_pixmap(vte_bg_get_for_screen(screen),
type, pixbuf, file,
color, saturation,
_vte_pango_clear(struct _vte_draw *draw,
gint x, gint y, gint width, gint height)
{
- struct _vte_pango_data *data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
gint i, j, h, w, xstop, ystop;
- data = (struct _vte_pango_data*) draw->impl_data;
-
if ((data->pixmap == NULL) ||
(data->pixmapw == 0) ||
(data->pixmaph == 0)) {
const PangoFontDescription *fontdesc,
VteTerminalAntiAlias antialias)
{
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
PangoContext *ctx;
PangoLayout *layout;
PangoLayoutIter *iter;
GString *full_string;
gint full_width;
guint i;
- struct _vte_pango_data *data;
-
- data = (struct _vte_pango_data*) draw->impl_data;
ctx = gtk_widget_get_pango_context(draw->widget);
layout = pango_layout_new(ctx);
static gboolean
_vte_pango_get_using_fontconfig(struct _vte_draw *draw)
{
- if (getenv("GDK_USE_XFT") != NULL) {
- return atoi(getenv("GDK_USE_XFT")) != 0;
- }
return TRUE;
}
struct _vte_draw_text_request *requests, gsize n_requests,
GdkColor *color, guchar alpha)
{
- struct _vte_pango_data *data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
char buf[VTE_UTF8_BPC];
guint i;
gsize length;
GdkColor wcolor;
- data = (struct _vte_pango_data*) draw->impl_data;
wcolor = *color;
gdk_rgb_find_color(gdk_drawable_get_colormap(draw->widget->window),
static gboolean
_vte_pango_draw_has_char(struct _vte_draw *draw, gunichar c)
{
+#if defined(PANGO_VERSION_CHECK) && PANGO_VERSION_CHECK(1,15,4)
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
+ char buf[VTE_UTF8_BPC];
+ gsize length;
+
+ length = g_unichar_to_utf8(c, buf);
+ pango_layout_set_text(data->layout, buf, length);
+
+ return pango_layout_get_unknown_glyphs_count (data->layout) == 0;
+#else
return FALSE;
+#endif
}
static void
gint x, gint y, gint width, gint height,
GdkColor *color, guchar alpha)
{
- struct _vte_pango_data *data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
GdkColor wcolor;
- data = (struct _vte_pango_data*) draw->impl_data;
-
wcolor = *color;
gdk_rgb_find_color(gdk_drawable_get_colormap(draw->widget->window),
&wcolor);
gint x, gint y, gint width, gint height,
GdkColor *color, guchar alpha)
{
- struct _vte_pango_data *data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
GdkColor wcolor;
- data = (struct _vte_pango_data*) draw->impl_data;
wcolor = *color;
gdk_rgb_find_color(gdk_drawable_get_colormap(draw->widget->window),
&wcolor);
static void
_vte_pango_set_scroll(struct _vte_draw *draw, gint x, gint y)
{
- struct _vte_pango_data *data;
- data = (struct _vte_pango_data*) draw->impl_data;
+ struct _vte_pango_data *data = (struct _vte_pango_data*) draw->impl_data;
data->scrollx = x;
data->scrolly = y;
}