[vte/vte-next] Don't store the widget in _vte_draw struct
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte/vte-next] Don't store the widget in _vte_draw struct
- Date: Tue, 3 May 2011 14:02:39 +0000 (UTC)
commit 33898ca962b91b9e384fb1170e5a3f24cad9d28f
Author: Christian Persch <chpe gnome org>
Date: Tue May 3 16:01:05 2011 +0200
Don't store the widget in _vte_draw struct
Esp. there's no need to reference it!
src/vte.c | 7 ++++---
src/vtedraw.c | 16 +++++-----------
src/vtedraw.h | 3 ++-
3 files changed, 11 insertions(+), 15 deletions(-)
---
diff --git a/src/vte.c b/src/vte.c
index 7870c72..111b7b9 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -6985,7 +6985,8 @@ vte_terminal_ensure_font (VteTerminal *terminal)
gint width, height, ascent;
terminal->pvt->fontdirty = FALSE;
_vte_draw_set_text_font (terminal->pvt->draw,
- terminal->pvt->fontdesc);
+ GTK_WIDGET(terminal),
+ terminal->pvt->fontdesc);
_vte_draw_get_text_metrics (terminal->pvt->draw,
&width, &height, &ascent);
vte_terminal_apply_metrics(terminal,
@@ -7573,7 +7574,7 @@ vte_terminal_init(VteTerminal *terminal)
vte_terminal_match_hilite_clear(terminal);
/* Rendering data. Try everything. */
- pvt->draw = _vte_draw_new(&terminal->widget);
+ pvt->draw = _vte_draw_new();
/* The font description. */
gtk_widget_ensure_style(&terminal->widget);
@@ -8084,7 +8085,7 @@ vte_terminal_realize(GtkWidget *widget)
/* Create the draw structure if we don't already have one. */
if (terminal->pvt->draw == NULL) {
- terminal->pvt->draw = _vte_draw_new(&terminal->widget);
+ terminal->pvt->draw = _vte_draw_new();
}
/* Create the stock cursors. */
diff --git a/src/vtedraw.c b/src/vtedraw.c
index 1e70249..310148b 100644
--- a/src/vtedraw.c
+++ b/src/vtedraw.c
@@ -720,8 +720,6 @@ font_info_get_unistr_info (struct font_info *info,
}
struct _vte_draw {
- GtkWidget *widget;
-
struct font_info *font;
struct font_info *font_bold;
cairo_pattern_t *bg_pattern;
@@ -730,13 +728,12 @@ struct _vte_draw {
};
struct _vte_draw *
-_vte_draw_new (GtkWidget *widget)
+_vte_draw_new (void)
{
struct _vte_draw *draw;
/* Create the structure. */
draw = g_slice_new0 (struct _vte_draw);
- draw->widget = g_object_ref (widget);
_vte_debug_print (VTE_DEBUG_DRAW, "draw_new\n");
@@ -758,10 +755,6 @@ _vte_draw_free (struct _vte_draw *draw)
draw->font = NULL;
}
- if (draw->widget != NULL) {
- g_object_unref (draw->widget);
- }
-
g_slice_free (struct _vte_draw, draw);
}
@@ -833,7 +826,8 @@ _vte_draw_clear (struct _vte_draw *draw, gint x, gint y, gint width, gint height
void
_vte_draw_set_text_font (struct _vte_draw *draw,
- const PangoFontDescription *fontdesc)
+ GtkWidget *widget,
+ const PangoFontDescription *fontdesc)
{
PangoFontDescription *bolddesc = NULL;
@@ -842,13 +836,13 @@ _vte_draw_set_text_font (struct _vte_draw *draw,
if (draw->font_bold != draw->font)
font_info_destroy (draw->font_bold);
font_info_destroy (draw->font);
- draw->font = font_info_create_for_widget (draw->widget, fontdesc);
+ draw->font = font_info_create_for_widget (widget, fontdesc);
/* calculate bold font desc */
bolddesc = pango_font_description_copy (fontdesc);
pango_font_description_set_weight (bolddesc, PANGO_WEIGHT_BOLD);
- draw->font_bold = font_info_create_for_widget (draw->widget, bolddesc);
+ draw->font_bold = font_info_create_for_widget (widget, bolddesc);
pango_font_description_free (bolddesc);
/* Decide if we should keep this bold font face, per bug 54926:
diff --git a/src/vtedraw.h b/src/vtedraw.h
index d0d2be9..a50aff1 100644
--- a/src/vtedraw.h
+++ b/src/vtedraw.h
@@ -58,7 +58,7 @@ struct _vte_draw_text_request {
};
/* Create and destroy a draw structure. */
-struct _vte_draw *_vte_draw_new(GtkWidget *widget);
+struct _vte_draw *_vte_draw_new(void);
void _vte_draw_free(struct _vte_draw *draw);
void _vte_draw_set_cairo(struct _vte_draw *draw,
@@ -74,6 +74,7 @@ void _vte_draw_clear(struct _vte_draw *draw,
gint x, gint y, gint width, gint height);
void _vte_draw_set_text_font(struct _vte_draw *draw,
+ GtkWidget *widget,
const PangoFontDescription *fontdesc);
void _vte_draw_get_text_metrics(struct _vte_draw *draw,
gint *width, gint *height, gint *ascent);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]