123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- diff -NurpP --minimal vte-0.28.2.orig/src/vte-private.h vte-0.28.2/src/vte-private.h
- --- vte-0.28.2.orig/src/vte-private.h 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vte-private.h 2012-04-06 00:23:46.000000000 +0000
- @@ -281,6 +281,9 @@ struct _VteTerminalPrivate {
- gboolean scroll_on_keystroke;
- long scrollback_lines;
-
- + /* Scaling options */
- + gboolean scale_background;
- +
- /* Cursor shape */
- VteTerminalCursorShape cursor_shape;
- float cursor_aspect_ratio;
- diff -NurpP --minimal vte-0.28.2.orig/src/vte.c vte-0.28.2/src/vte.c
- --- vte-0.28.2.orig/src/vte.c 2011-08-28 21:31:45.000000000 +0000
- +++ vte-0.28.2/src/vte.c 2012-04-06 00:23:46.000000000 +0000
- @@ -179,7 +179,8 @@ enum {
- PROP_SCROLL_ON_OUTPUT,
- PROP_WINDOW_TITLE,
- PROP_WORD_CHARS,
- - PROP_VISIBLE_BELL
- + PROP_VISIBLE_BELL,
- + PROP_SCALE_BACKGROUND
- };
-
- /* these static variables are guarded by the GDK mutex */
- @@ -11179,6 +11180,10 @@ vte_terminal_paint(GtkWidget *widget, Gd
- 0,
- terminal->pvt->screen->scroll_delta *
- terminal->char_height);
- + } else if (terminal->pvt->scale_background) {
- + _vte_draw_set_background_scale(terminal->pvt->draw,
- + terminal->char_width * terminal->column_count,
- + terminal->char_height * terminal->row_count);
- } else {
- _vte_draw_set_background_scroll(terminal->pvt->draw, 0, 0);
- }
- @@ -11574,6 +11579,9 @@ vte_terminal_get_property (GObject *obje
- case PROP_SCROLL_BACKGROUND:
- g_value_set_boolean (value, pvt->scroll_background);
- break;
- + case PROP_SCALE_BACKGROUND:
- + g_value_set_boolean (value, pvt->scale_background);
- + break;
- case PROP_SCROLLBACK_LINES:
- g_value_set_uint (value, pvt->scrollback_lines);
- break;
- @@ -11680,6 +11688,9 @@ vte_terminal_set_property (GObject *obje
- case PROP_PTY_OBJECT:
- vte_terminal_set_pty_object (terminal, g_value_get_object (value));
- break;
- + case PROP_SCALE_BACKGROUND:
- + vte_terminal_set_scale_background (terminal, g_value_get_boolean (value));
- + break;
- case PROP_SCROLL_BACKGROUND:
- vte_terminal_set_scroll_background (terminal, g_value_get_boolean (value));
- break;
- @@ -12697,6 +12708,19 @@ vte_terminal_class_init(VteTerminalClass
- G_PARAM_STATIC_STRINGS));
-
- /**
- + * VteTerminal:scale-background:
- + *
- + * Controls whether or not the terminal will scale the background image
- + * (if one is set)
- + */
- + g_object_class_install_property
- + (gobject_class,
- + PROP_SCALE_BACKGROUND,
- + g_param_spec_boolean ("scale-background", NULL, NULL,
- + FALSE,
- + G_PARAM_READWRITE | STATIC_PARAMS));
- +
- + /**
- * VteTerminal:scroll-background:
- *
- * Controls whether or not the terminal will scroll the background image (if
- @@ -12991,6 +13015,36 @@ vte_terminal_get_allow_bold(VteTerminal
- }
-
- /**
- + * vte_terminal_set_scale_background:
- + * @terminal: a #VteTerminal
- + * @scale: whether the terminal should scale the background
- + *
- + * Controls whether or not the terminal will scale the background image (if
- + * one is set) to the widget size.
- + *
- + * Since: 0.11
- + */
- +void
- +vte_terminal_set_scale_background(VteTerminal *terminal, gboolean scale)
- +{
- + VteTerminalPrivate *pvt;
- +
- + g_return_if_fail(VTE_IS_TERMINAL(terminal));
- +
- + pvt = terminal->pvt;
- +
- + scale = scale != FALSE;
- + if (scale == pvt->scale_background)
- + return;
- +
- + pvt->scale_background = scale;
- +
- + g_object_notify (G_OBJECT (terminal), "scale-background");
- +
- + vte_terminal_queue_background_update(terminal);
- +}
- +
- +/**
- * vte_terminal_set_scroll_background:
- * @terminal: a #VteTerminal
- * @scroll: whether the terminal should scroll the background image along with
- diff -NurpP --minimal vte-0.28.2.orig/src/vte.c.orig vte-0.28.2/src/vte.c.orig
- diff -NurpP --minimal vte-0.28.2.orig/src/vte.h vte-0.28.2/src/vte.h
- --- vte-0.28.2.orig/src/vte.h 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vte.h 2012-04-06 00:23:46.000000000 +0000
- @@ -306,6 +306,7 @@ void vte_terminal_set_audible_bell(VteTe
- gboolean vte_terminal_get_audible_bell(VteTerminal *terminal);
- void vte_terminal_set_visible_bell(VteTerminal *terminal, gboolean is_visible);
- gboolean vte_terminal_get_visible_bell(VteTerminal *terminal);
- +void vte_terminal_set_scale_background(VteTerminal *terminal, gboolean scale);
- void vte_terminal_set_scroll_background(VteTerminal *terminal, gboolean scroll);
- void vte_terminal_set_scroll_on_output(VteTerminal *terminal, gboolean scroll);
- void vte_terminal_set_scroll_on_keystroke(VteTerminal *terminal,
- diff -NurpP --minimal vte-0.28.2.orig/src/vte.h.orig vte-0.28.2/src/vte.h.orig
- diff -NurpP --minimal vte-0.28.2.orig/src/vteapp.c vte-0.28.2/src/vteapp.c
- --- vte-0.28.2.orig/src/vteapp.c 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vteapp.c 2012-04-06 00:23:46.000000000 +0000
- @@ -553,7 +553,7 @@ main(int argc, char **argv)
- const char *background = NULL;
- gboolean transparent = FALSE, audible = TRUE,
- debug = FALSE, dingus = FALSE, dbuffer = TRUE,
- - console = FALSE, scroll = FALSE, keep = FALSE,
- + console = FALSE, scroll = FALSE, scale = FALSE, keep = FALSE,
- icon_title = FALSE, shell = TRUE, highlight_set = FALSE,
- cursor_set = FALSE, reverse = FALSE, use_geometry_hints = TRUE,
- antialias = TRUE, use_scrolled_window = FALSE,
- @@ -669,6 +669,11 @@ main(int argc, char **argv)
- "Set cursor shape (block|underline|ibeam)", NULL
- },
- {
- + "scale-background", 'z', 0,
- + G_OPTION_ARG_NONE, &scale,
- + "Enable a scaling background", NULL
- + },
- + {
- "scroll-background", 's', 0,
- G_OPTION_ARG_NONE, &scroll,
- "Enable a scrolling background", NULL
- @@ -891,6 +896,7 @@ main(int argc, char **argv)
- vte_terminal_set_audible_bell(terminal, audible);
- vte_terminal_set_visible_bell(terminal, !audible);
- vte_terminal_set_cursor_blink_mode(terminal, cursor_blink_mode);
- + vte_terminal_set_scale_background(terminal, scale);
- vte_terminal_set_scroll_background(terminal, scroll);
- vte_terminal_set_scroll_on_output(terminal, FALSE);
- vte_terminal_set_scroll_on_keystroke(terminal, TRUE);
- diff -NurpP --minimal vte-0.28.2.orig/src/vteapp.c.orig vte-0.28.2/src/vteapp.c.orig
- diff -NurpP --minimal vte-0.28.2.orig/src/vtebg.c vte-0.28.2/src/vtebg.c
- --- vte-0.28.2.orig/src/vtebg.c 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vtebg.c 2012-04-06 00:23:46.000000000 +0000
- @@ -56,6 +56,8 @@ typedef struct {
- PangoColor tint_color;
- double saturation;
- cairo_surface_t *surface;
- + int width;
- + int height;
- } VteBgCacheItem;
-
- static void vte_bg_cache_item_free(VteBgCacheItem *item);
- @@ -321,6 +323,8 @@ static void item_surface_destroy_func(vo
- "VteBgCacheItem %p surface destroyed\n", item);
-
- item->surface = NULL;
- + item->width = 1;
- + item->height = 1;
- }
-
- /*
- @@ -364,7 +368,9 @@ vte_bg_cache_search(VteBg *bg,
- const GdkPixbuf *source_pixbuf,
- const char *source_file,
- const PangoColor *tint,
- - double saturation)
- + double saturation,
- + int *surface_width,
- + int *surface_height)
- {
- GList *i;
-
- @@ -392,6 +398,11 @@ vte_bg_cache_search(VteBg *bg,
- break;
- }
-
- + if (surface_width)
- + *surface_width = item->width;
- + if (surface_height)
- + *surface_height = item->height;
- +
- return cairo_surface_reference(item->surface);
- }
- }
- @@ -407,6 +418,8 @@ vte_bg_cache_search(VteBg *bg,
- * @tint: a #PangoColor to use as tint color
- * @saturation: the saturation as a value between 0.0 and 1.0
- * @other: a #cairo_surface_t
- + * @surface_width: pointer to store the surface width
- + * @surface_height: pointer to store the surface height
- *
- * Returns: a reference to a #cairo_surface_t, or %NULL on failure
- */
- @@ -417,7 +430,9 @@ vte_bg_get_surface(VteBg *bg,
- const char *source_file,
- const PangoColor *tint,
- double saturation,
- - cairo_surface_t *other)
- + cairo_surface_t *other,
- + int *surface_width,
- + int *surface_height)
- {
- VteBgPrivate *pvt;
- VteBgCacheItem *item;
- @@ -440,7 +455,8 @@ vte_bg_get_surface(VteBg *bg,
-
- cached = vte_bg_cache_search(bg, source_type,
- source_pixbuf, source_file,
- - tint, saturation);
- + tint, saturation,
- + surface_width, surface_height);
- if (cached != NULL) {
- return cached;
- }
- @@ -494,6 +510,13 @@ vte_bg_get_surface(VteBg *bg,
- else
- goto out;
-
- + if (surface_width)
- + *surface_width = width;
- + if (surface_height)
- + *surface_height = height;
- +
- + item->width = width;
- + item->height = height;
- item->surface =
- cairo_surface_create_similar(other, CAIRO_CONTENT_COLOR_ALPHA,
- width, height);
- diff -NurpP --minimal vte-0.28.2.orig/src/vtebg.c.orig vte-0.28.2/src/vtebg.c.orig
- diff -NurpP --minimal vte-0.28.2.orig/src/vtebg.h vte-0.28.2/src/vtebg.h
- --- vte-0.28.2.orig/src/vtebg.h 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vtebg.h 2012-04-06 00:23:46.000000000 +0000
- @@ -63,7 +63,9 @@ vte_bg_get_surface(VteBg *bg,
- const char *source_file,
- const PangoColor *tint,
- double saturation,
- - cairo_surface_t *other);
- + cairo_surface_t *other,
- + int *surface_width,
- + int *surface_height);
-
- G_END_DECLS
-
- diff -NurpP --minimal vte-0.28.2.orig/src/vtedraw.c vte-0.28.2/src/vtedraw.c
- --- vte-0.28.2.orig/src/vtedraw.c 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vtedraw.c 2012-04-06 00:23:46.000000000 +0000
- @@ -752,6 +752,7 @@ struct _vte_draw {
- struct font_info *font;
- struct font_info *font_bold;
- cairo_pattern_t *bg_pattern;
- + gint bg_width, bg_height;
-
- cairo_t *cr;
- };
- @@ -839,6 +840,8 @@ _vte_draw_set_background_solid(struct _v
- green,
- blue,
- opacity);
- + draw->bg_width = 1;
- + draw->bg_height = 1;
- }
-
- void
- @@ -850,6 +853,7 @@ _vte_draw_set_background_image (struct _
- double saturation)
- {
- cairo_surface_t *surface;
- + int surface_width, surface_height;
-
- /* Need a valid draw->cr for cairo_get_target () */
- _vte_draw_start (draw);
- @@ -857,7 +861,8 @@ _vte_draw_set_background_image (struct _
- surface = vte_bg_get_surface (vte_bg_get_for_screen (gtk_widget_get_screen (draw->widget)),
- type, pixbuf, filename,
- color, saturation,
- - cairo_get_target(draw->cr));
- + cairo_get_target(draw->cr),
- + &surface_width, &surface_height);
-
- _vte_draw_end (draw);
-
- @@ -868,6 +873,8 @@ _vte_draw_set_background_image (struct _
- cairo_pattern_destroy (draw->bg_pattern);
-
- draw->bg_pattern = cairo_pattern_create_for_surface (surface);
- + draw->bg_width = surface_width;
- + draw->bg_height = surface_height;
- cairo_surface_destroy (surface);
- cairo_pattern_set_extend (draw->bg_pattern, CAIRO_EXTEND_REPEAT);
- }
- @@ -888,6 +895,24 @@ _vte_draw_set_background_scroll (struct
- cairo_pattern_set_matrix (draw->bg_pattern, &matrix);
- }
-
- +void
- +_vte_draw_set_background_scale (struct _vte_draw *draw,
- + gint sx, gint sy)
- +{
- + cairo_matrix_t matrix;
- +
- + _vte_debug_print (VTE_DEBUG_DRAW,
- + "draw_set_scale (%d, %d)\n",
- + sx, sy);
- +
- + g_return_if_fail (draw->bg_pattern != NULL);
- +
- + cairo_matrix_init_scale (&matrix,
- + (1.0 * draw->bg_width) / sx,
- + (1.0 * draw->bg_height) / sy);
- + cairo_pattern_set_matrix (draw->bg_pattern, &matrix);
- +}
- +
- void
- _vte_draw_clip (struct _vte_draw *draw, GdkRegion *region)
- {
- diff -NurpP --minimal vte-0.28.2.orig/src/vtedraw.c.orig vte-0.28.2/src/vtedraw.c.orig
- diff -NurpP --minimal vte-0.28.2.orig/src/vtedraw.h vte-0.28.2/src/vtedraw.h
- --- vte-0.28.2.orig/src/vtedraw.h 2011-08-16 21:52:48.000000000 +0000
- +++ vte-0.28.2/src/vtedraw.h 2012-04-06 00:23:46.000000000 +0000
- @@ -82,6 +82,8 @@ void _vte_draw_set_background_image(stru
- double saturation);
- void _vte_draw_set_background_scroll(struct _vte_draw *draw,
- gint x, gint y);
- +void _vte_draw_set_background_scale(struct _vte_draw *draw,
- + gint sx, gint sy);
-
- void _vte_draw_clip(struct _vte_draw *draw, GdkRegion *region);
- void _vte_draw_clear(struct _vte_draw *draw,
|