e299db3a4da942a3883261569a64446e74a21591
[vte.git] / ChangeLog
1 2008-11-21  Christian Persch  <chpe@gnome.org>
2
3         * src/vtepangocairo.c: (font_info_destroy_delayed),
4         (font_info_destroy): Use gdk_threads_add_timeout_seconds() for
5         complete threadsafety.
6
7 2008-11-21  Chris Wilson  <chris@chris-wilson.co.uk>
8
9         * vte.pc.in: Remove FT2_LIBS and FT2_CFLAGS
10
11 2008-11-21  Chris Wilson  <chris@chris-wilson.co.uk>
12
13         * src/iso2022.c (_vte_iso2022_is_ambiguous): Break out of interval
14         search as early as possible. Exploit the strict ordering of the 
15         ambiguous/unambiguous ranges to break out of the for loop as soon
16         as the character is less than a range start. (As the arrays only
17         contain 2/3 elements, it is not worth adding the overhead of calling
18         bsearch()).
19
20 2008-11-21  Chris Wilson  <chris@chris-wilson.co.uk>
21
22         * src/iso2022.c (process_cdata): Copy the gunichars directly to the
23         array from the incoming chunk.
24
25 2008-11-20  Chris Wilson  <chris@chris-wilson.co.uk>
26
27         * src/Makefile.am: Remove FT2_FLAGS
28
29 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
30
31         * src/vtepangocairo.c (font_info_destroy_delayed): Remove obsolete
32         check.
33
34 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
35
36         Bug 561713 – crash on font cache cleanup
37
38         * src/vtepangocairo.c (font_info_reference), (font_info_destroy):
39         Remove destroy timeout when resurrecting a font info.
40
41 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
42
43         * src/vtepangocairo.c (font_info_cache_ascii),
44         (font_info_allocate), (font_info_free),
45         (font_info_find_for_context):
46         Make profiling messages print the info pointer.
47
48 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
49
50         * configure.in:  Remove more cruft.
51
52 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
53
54         Bug 560819 – Remove obsolete backends
55
56         * configure.in:
57         * src/Makefile.am:
58         * src/vtebg.c (vte_bg_get_pixmap):
59         * src/vtebg.h:
60         * src/vtedraw.c:
61         * src/vtefc.c:
62         * src/vtefc.h:
63         * src/vteft2.c:
64         * src/vteft2.h:
65         * src/vtegl.c:
66         * src/vtegl.h:
67         * src/vteglyph.c:
68         * src/vteglyph.h:
69         * src/vterdb.c:
70         * src/vterdb.h:
71         * src/vtergb.c:
72         * src/vtergb.h:
73         * src/vtexft.c:
74         * src/vtexft.h:
75         Remove all backends except for pangocairo.  Saves so much code.
76
77 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
78
79         Bug 560819 – Remove obsolete backends
80
81         * src/Makefile.am:
82         * src/vtedraw.c:
83         * src/vtepango.c:
84         * src/vtepango.h:
85         Remove pango backend.
86
87 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
88
89         Bug 560819 – Remove obsolete backends
90
91         * configure.in:
92         * src/Makefile.am:
93         * src/vtedraw.c:
94         * src/vtepangox.c:
95         * src/vtepangox.h:
96         Remove pangox backend.
97
98 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
99
100         Bug 560818 – pangocairo backend doesn't share font cache across
101         widgets
102
103         * src/vtepangocairo.c (font_info_cache_ascii),
104         (font_info_allocate), (font_info_free), (font_info_register),
105         (font_info_unregister), (font_info_reference),
106         (font_info_destroy_delayed), (font_info_destroy), (context_hash),
107         (context_equal), (font_info_find_for_context),
108         (font_info_create_for_context), (font_info_create_for_screen),
109         (font_info_get_unichar_info): Cache font info and use it for multiple
110         widgets.
111
112 2008-11-19  Behdad Esfahbod  <behdad@gnome.org>
113
114         * src/vtepangocairo.c (font_info_create_for_screen),
115         (font_info_destroy): Remove unused PangoCoverage.
116
117 2008-11-19  Behdad Esfahbod  <behdad@gnome.org>
118
119         * src/vtepangocairo.c (font_info_find_unichar_info),
120         (font_info_cache_ascii), (font_info_measure_font),
121         (font_info_get_unichar_info): Cache ASCII characters when building
122         font.
123
124 2008-11-18  Christian Persch  <chpe@gnome.org>
125
126         Remove glib usage from gnome-pty-helper. Bug #560977.
127
128         * gnome-pty-helper/Makefile.am: Remove GLIB CFLAGS/LIBS.
129         * gnome-pty-helper/configure.in: Remove glib check, and do some auto*
130         modernisation.
131         * gnome-pty-helper/gnome-pty-helper.c: (open_ptys), (exit_handler),
132         (main): Use alloca instead of g_alloca, and use int instead of
133         gboolean.
134
135 2008-11-18  Behdad Esfahbod  <behdad@gnome.org>
136
137         * src/vtepangocairo.c (font_info_create_for_screen),
138         (font_info_destroy): Remove copy of font desc and antialias from font
139         info object as they were not used.
140
141 2008-11-18  Behdad Esfahbod  <behdad@gnome.org>
142
143         Bug 561185 – pangocairo backend sets antialias incorrectly
144
145         * src/vtepangocairo.c (font_info_create_for_screen): Handle
146         FORCE_ENABLE correctly.
147
148 2008-11-16  Behdad Esfahbod  <behdad@gnome.org>
149
150         Bug 560817 – pagocairo backend doesn't have correct opacity support   
151
152         * src/vtepangocairo.c (_vte_pangocairo_clear),
153         (_vte_pangocairo_draw_text), (_vte_pangocairo_draw_rectangle),
154         (_vte_pangocairo_fill_rectangle): Fix opacity support by using
155         SOURCE operator.
156
157 2008-11-16  Behdad Esfahbod  <behdad@gnome.org>
158
159         Bug 560991 – Unsetting background doesn't work
160
161         * src/vte.c (vte_terminal_set_background_image): Correctly unset
162         background if image==NULL.
163
164 2008-11-14 Christian Persch <chpe@gnome.org>
165
166         * src/vteskel.c: Fix missing prototype warning.
167
168 2008-11-14  Behdad Esfahbod  <behdad@gnome.org>
169
170         Bug 395599 – Add pangocairo backend
171
172         * configure.in:
173         Require pango >= 1.22.0
174
175         * src/Makefile.am:
176         * src/vtedraw.c:
177         * src/vtepangocairo.c:
178         * src/vtepangocairo.h:
179         Add a pangocairo drawing backend.  Use it by default.  This is as fast
180         as the xft backend.  Doesn't share font caches across widgets yet.
181         Also, the transparent background stuff doesn't match xft backend's
182         yet.
183
184 2008-11-14  Behdad Esfahbod  <behdad@gnome.org>
185
186         * src/vte.c (vte_terminal_ensure_font):
187         * src/vtedraw.c (_vte_draw_new), (_vte_draw_free),
188         (_vte_draw_set_background_opacity),
189         (_vte_draw_set_background_color), (_vte_draw_set_text_font),
190         (_vte_draw_get_text_metrics), (_vte_draw_get_char_width),
191         (_vte_draw_char), (_vte_draw_draw_rectangle),
192         (_vte_draw_set_scroll):
193         * src/vtedraw.h:
194         * src/vteft2.c (_vte_ft2_destroy), (_vte_ft2_start),
195         (_vte_ft2_end), (_vte_ft2_set_background_image), (_vte_ft2_clear),
196         (_vte_ft2_set_text_font), (_vte_ft2_get_text_metrics),
197         (_vte_ft2_get_char_width), (_vte_ft2_draw_text),
198         (_vte_ft2_draw_has_char), (_vte_ft2_draw_rectangle),
199         (_vte_ft2_fill_rectangle):
200         * src/vtegl.c (_vte_gl_destroy), (_vte_gl_get_visual),
201         (_vte_gl_start), (_vte_gl_end), (_vte_gl_set_background_image),
202         (_vte_gl_clear), (_vte_gl_set_text_font),
203         (_vte_gl_get_text_metrics), (_vte_gl_get_char_width),
204         (_vte_gl_draw_text), (_vte_gl_draw_has_char), (_vte_gl_rectangle):
205         * src/vtepango.c (_vte_pango_set_text_font),
206         (_vte_pango_get_text_metrics):
207         * src/vtepangox.c (_vte_pangox_create), (_vte_pangox_destroy),
208         (_vte_pangox_start), (_vte_pangox_end),
209         (_vte_pangox_set_background_image), (_vte_pangox_clip),
210         (_vte_pangox_clear), (_vte_pangox_set_text_font),
211         (_vte_pangox_get_text_metrics), (_vte_pangox_get_using_fontconfig),
212         (_vte_pangox_draw_text), (_vte_pangox_draw_has_char),
213         (_vte_pangox_draw_rectangle), (_vte_pangox_fill_rectangle):
214         * src/vtepangox.h:
215         * src/vteskel.c (_vte_skel_clear), (_vte_skel_get_text_metrics),
216         (_vte_skel_draw_text), (_vte_skel_fill_rectangle):
217         * src/vtexft.c (_vte_xft_set_text_font),
218         (_vte_xft_get_text_metrics), (_vte_xft_draw_text):
219         Remove unneeded draw methods.
220
221 2008-11-14  Behdad Esfahbod  <behdad@gnome.org>
222
223         * src/vtedraw.c (_vte_draw_get_char_width): Minor fix.
224
225         * src/vtepangox.c (_vte_pango_x_create), (_vte_pango_x_start),
226         (_vte_pango_x_clear): Cleanup here too.
227
228 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
229
230         * configure.in:
231         * src/vte-private.h:
232         Undo previous change instead of cleanly fix it for now.
233
234 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
235
236         * configure.in:
237         * src/vte-private.h:
238         Why do we let people configure random things?
239
240 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
241
242         * src/vte.c (vte_terminal_background_update):
243         * src/vtedraw.c (_vte_draw_update_requires_clear), (_vte_draw_new),
244         (_vte_draw_set_background_opacity),
245         (_vte_draw_set_background_color), (_vte_draw_set_background_image),
246         (_vte_draw_char), (_vte_draw_set_scroll):
247         * src/vtedraw.h:
248         * src/vteft2.c (_vte_ft2_set_background_image), (_vte_ft2_clear),
249         (_vte_ft2_get_char_width):
250         * src/vtegl.c (_vte_gl_create), (_vte_gl_clear),
251         (_vte_gl_get_char_width), (_vte_gl_draw_text):
252         * src/vtepango.c (_vte_pango_create), (_vte_pango_start),
253         (_vte_pango_set_background_image), (_vte_pango_clear):
254         * src/vtexft.c (_vte_xft_create), (_vte_xft_set_background_image),
255         (_vte_xft_clear), (_vte_xft_get_char_width):
256         Simplify backends by relying more on defaults.
257
258 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
259
260         * src/vtedraw.c (_vte_draw_init_user), (_vte_draw_init_default):
261         Accept draw impl if impl->check is NULL.
262
263 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
264
265         * src/vtedraw.h:
266         * src/vtedraw.c (_vte_draw_new), (_vte_draw_get_visual),
267         (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
268         (_vte_draw_set_background_color), (_vte_draw_set_background_image),
269         (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
270         (_vte_draw_set_text_font), (_vte_draw_get_text_width),
271         (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
272         (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
273         (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
274         (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
275         (_vte_draw_set_scroll):
276         Use sensical defaults instead of g_return_if_fail'ing when backend
277         functions are not implemented.
278
279 2008-10-31  Chris Wilson  <chris@chris-wilson.co.uk>
280
281         Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
282
283         * src/vte.c (vte_terminal_deselect_all):
284         Preserve the copy of the selection until it is replace by a new
285         selection, so that we can perform asynchronous copies from the
286         clipboard.
287
288 2008-10-23  Chris Wilson  <chris@chris-wilson.co.uk>
289
290         Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
291
292         * src/vte.c (vte_terminal_deselect_all),
293         (vte_terminal_extend_selection):
294         After the user modifies the selection, copy it to PRIMARY and store
295         it on the terminal. This ensures that after a screen redraw, we
296         compare the contents of the selected region with the current
297         selection, instead of stale data.
298
299 2008-10-23  Christian Persch  <chpe@gnome.org>
300
301         * configure.in:
302         * src/Makefile.am: Use glib-genmarshal --internal directly instead
303         of checking the glib version, since we now depend on a glib version
304         that provides this.
305
306 2008-10-23  Christian Persch  <chpe@gnome.org>
307
308         Bug 556398 – maybe deprecate vte_terminal_get_char_ascent/descent
309
310         * src/vte.[ch]: Deprecate vte_terminal_get_char_ascent/descent.
311
312 2008-10-23  Christian Persch  <chpe@gnome.org>
313
314         Bug 339819 – LibVTE terminals in GLADE
315
316         A glade/*:
317         * Makefile.am
318         * configure.in: Add glade catalogue.
319
320 2008-10-23  Christian Persch  <chpe@gnome.org>
321
322         Bug 399364 – Implement properties
323
324         * src/vte.c: Add gobject properties.
325
326 2008-10-19  Christian Persch  <chpe@gnome.org>
327
328         Bug 556328 – Document set-scroll-adjustment parameters
329
330         * src/vte.c: Document the set-scroll-adjustments signal.
331
332 2008-10-15  Behdad Esfahbod  <behdad@gnome.org>
333
334         * doc/reference/Makefile.am:
335         * doc/reference/check-doc-coverage.sh:
336         * doc/reference/check.docs:
337         Update doc coverage test from cairo.
338
339 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
340
341         * src/vte.c (vte_terminal_set_cursor_shape):
342         Invalidate cursor upon shape change.
343
344 2008-10-15  Christian Persch  <chpe@gnome.org>
345
346         * python/vte.defs: Add new API to the binding.
347
348 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
349
350         * src/vte-private.h:
351         * src/vte.c (vte_terminal_draw_line), (vte_terminal_paint_cursor):
352         Remove VTE_CURSOR_OUTLINE in favor of VTE_LINE_WIDTH.
353
354 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
355
356         * src/vte.c (vte_terminal_paint_cursor):
357         Supposedly handle reverse video during cursor drawing.
358
359 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
360
361         * src/vte.c (vte_terminal_paint_im_preedit_string),
362         (vte_terminal_paint):
363         Move IM preedit string drawing into its own function for code
364         clarity.
365
366 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
367
368         Bug 549835 – Feature Request: Configurable cursor appearance
369
370         * src/vte.h:
371         New public api:
372
373                 VteTerminalCursorShape
374                 vte_terminal_set_cursor_shape
375                 vte_terminal_get_cursor_shape
376
377         * src/vte-private.h:
378         * src/vte.c (_vte_terminal_insert_char), (vte_terminal_init),
379         (vte_terminal_paint_cursor), (vte_terminal_paint),
380         (vte_terminal_set_cursor_shape), (vte_terminal_get_cursor_shape):
381         Implement new API.  Also clean up cursor drawing in general.
382
383         * doc/reference/Makefile.am:
384         * doc/reference/tmpl/reaper.sgml:
385         * doc/reference/tmpl/vte-unused.sgml:
386         * doc/reference/tmpl/vte.sgml:
387         * doc/reference/vte-sections.txt:
388         Doc new symbols.  Also add some missing docs.
389
390 2008-10-13  Christian Persch  <chpe@gnome.org>
391
392         * src/vte.c: Add gobject property infrastructure.
393
394 2008-10-13  Christian Persch  <chpe@gnome.org>
395
396         * src/Makefile.am: Fix missing prototypes compiler warning in
397         marshal.c.
398
399 2008-10-06  Christian Persch  <chpe@gnome.org>
400
401         * src/vteconv.c: (_vte_conv_open): Fix compiler warning.
402
403 2008-10-06  Christian Persch  <chpe@gnome.org>
404
405         Bug 509204 – child-exited signal does not provide exit code
406
407         * python/vte.defs: Add the new function to the bindings.
408
409 2008-10-06  Christian Persch  <chpe@gnome.org>
410
411         Bug 539130 – building g-t fails due to GtkType etc. deprecation
412
413         * src/vte.h: Deprecate useless macros.
414
415 2008-10-06  Christian Persch  <chpe@gnome.org>
416
417         Bug 509204 – child-exited signal does not provide exit code
418
419         * src/vte-private.h:
420         * src/vte.h:
421         * src/vte.c: Add function to get the child's exit status.
422
423 2008-10-06  Christian Persch  <chpe@gnome.org>
424
425         * configure.in: Bump version to 0.17.5.
426
427 2008-09-08  Christian Persch  <chpe@gnome.org>
428
429         Release 0.17.3.
430
431         * NEWS:
432         * configure.in: Updated.
433
434 2008-09-07  Christian Persch  <chpe@gnome.org>
435
436         * python/vte.defs: Update python bindings.
437
438 2008-08-20  Sébastien Granjoux  <seb.sfo@free.fr>
439
440         Bug 538344 – Anjuta hangs when program is executed in terminal
441
442         * src/vte.c: Ensure the output channel exists when we need to write.
443
444 2008-08-20  Christian Persch  <chpe@gnome.org>
445
446         * src/vte.c: (vte_terminal_match_check_internal_gregex): Plug a mem
447         leak.
448
449 2008-08-15  Chris Wilson  <chris@chris-wilson.co.uk>
450
451         * src/vte.c (vte_terminal_set_pty):
452         fcntl(2) specifies that the flags argument is a long. Make it so.
453
454 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
455
456         * src/vte-private.h:
457         * src/vte.c (vte_terminal_match_check_internal_vte),
458         (vte_terminal_ensure_cursor), (vte_terminal_set_colors),
459         (_vte_terminal_insert_char), (vte_terminal_feed),
460         (vte_terminal_key_press), (vte_terminal_match_hilite_update),
461         (vte_terminal_extend_selection):
462         * src/vteseq.c (vte_terminal_find_charcell),
463         (vte_sequence_handler_set_title_internal),
464         (vte_sequence_handler_decset_internal), (vte_sequence_handler_cb),
465         (vte_sequence_handler_cd), (vte_sequence_handler_ce),
466         (vte_sequence_handler_ec), (vte_sequence_handler_ta),
467         (vte_sequence_handler_set_mode),
468         (vte_sequence_handler_window_manipulation):
469         Fix all "signed vs unsigned comparison" warnings.
470
471 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
472
473         * src/vte.c (regex_match_clear_cursor),
474         (vte_terminal_set_cursor_from_regex_match):
475         Fix uninitialized cursor warning.  Setting to NULL sounds
476         right to me.  ChPe?
477
478 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
479
480         * src/vte.c: Remove useless "inline" decorators.  Gcc has been
481         rightfully complaining.
482
483 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
484
485         Bug 546940 – Crash when selecting text
486
487         * src/vte.c (vte_terminal_extend_selection): Fix crash with 64-bit
488         systems.  Note to self:
489
490                 unsigned int len = 0;
491                 long i = len - 1;
492                 assert (i < 0);
493
494         fails on 64-bit systems.
495
496 2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
497
498         Released vte-0.17.1.
499
500         * NEWS: Updated.
501
502         * configure.in: Bumped version to 0.17.1.
503         Bumped libtool version to 12:0:3.
504
505 2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
506
507         Bug 546366 – hard to select last tab char on a line
508
509         * src/vte.c (vte_terminal_extend_selection):
510         * src/vteseq.c (vte_sequence_handler_ta):
511         Handle fragment cells.
512
513 2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
514
515         Bug 545924 – tab characters not handled correctly after ncurses clear 
516         Patch from Patryk Zawadzki
517
518         * src/vteseq.c (vte_sequence_handler_ta): Ignore empty cells at end of
519         line.
520
521 2008-07-14  Behdad Esfahbod  <behdad@gnome.org>
522
523         Bug 542795 – VTE_CJK_WIDTH don't work
524
525         * src/iso2022.c (_vte_iso2022_ambiguous_width): Fix VTE_CJK_WIDTH env
526         handling.
527
528 2008-06-27  Christian Persch  <chpe@gnome.org>
529
530         Bug 399744 – Hide more font-aa implementation details
531
532         * src/vtexft.c: Disable antialiasing if using the default antialias
533         setting and the XRender extension is not available.
534
535 2008-06-27  Christian Persch  <chpe@gnome.org>
536
537         Bug 510903 – use gtk-cursor-blink setting
538
539         * doc/reference/tmpl/vte.sgml:
540         * doc/reference/vte-sections.txt:
541         * src/vte-private.h:
542         * src/vte.c:
543         * src/vte.h: Make the cursor blinking follow the gtk setting by
544         default, with a possible override.
545
546 2008-06-26  Christian Persch  <chpe@gnome.org>
547
548         * src/vte.h: Remove the enum type declarations that are now in
549         vtetypebuiltins.h.
550
551 2008-06-26  Christian Persch  <chpe@gnome.org>
552
553         * Makefile.am:
554         * autogen.sh: Fix the build from svn and make dist when using
555         intltool 0.40.0. Tarball builds still only require 0.35.0.
556
557 2008-06-26  Christian Persch  <chpe@gnome.org>
558
559         * src/vteversion.h.in: Disallow direct inclusion of the new
560         vteversion.h file.
561
562 2008-06-26  Christian Persch  <chpe@gnome.org>
563
564         * configure.in:
565         * src/Makefile.am:
566         * src/vte.c:
567         * src/vte.h:
568         * src/vtetypebuiltins.c.template:
569         * src/vtetypebuiltins.h.template: Use glib-mkenums to generate the
570         enum types; makes it easier to add more enum types.
571
572 2008-06-26  Christian Persch  <chpe@gnome.org>
573
574         Bug 539130 – building g-t fails due to GtkType etc. deprecation
575
576         * src/reaper.h:
577         * src/vte.c:
578         * src/vteaccess.[ch]: 
579         * src/vtebg.h: Also remove the deprecated GtkType macros from here.
580
581 2008-06-25  Christian Persch  <chpe@gnome.org>
582
583         Bug 540182 – crash in geany with vte trunk
584
585         * src/vte.c: Make sure that match_attributes always exist even if
586         there haven't been any matches added.
587
588 2008-06-23  Christian Persch  <chpe@gnome.org>
589
590         Bug 535552 – vte_terminal_set_allow_bold doesn't queue redraw
591
592         * src/vte.c: Invalidate all when changing the allow-bold property.
593
594 2008-06-23  Christian Persch  <chpe@gnome.org>
595
596         Bug 535469 – support named cursors on matches
597
598         * src/vte-private.h
599         * src/vte.c
600         * src/vte.h: Implement named cursors on matches.
601
602 2008-06-23  Christian Persch  <chpe@gnome.org>
603
604         Bug 418918 – Switch to GRegex
605
606         * src/vte-private.h
607         * src/vte.c
608         * src/vte.h: Implement GRegex matching, to be used alternatively
609         to the old vteregex matching.
610
611 2008-06-23  Christian Persch  <chpe@gnome.org>
612
613         Bug 535467 – implement set-scroll-adjustments signal
614
615         * src/vte.c: Add set-scroll-adjustments signal, needed to allow
616         adding a VteTerminal into a GtkScrolledWindow.
617
618 2008-06-23  Christian Persch  <chpe@gnome.org>
619
620         Bug 535468 – need version check macros
621
622         * configure.in
623         * doc/reference/tmpl/vteversion.sgml
624         * doc/reference/vte-sections.txt
625         * doc/reference/vte.types
626         * src/Makefile.am
627         * src/vte.h
628         A src/vteversion.h.in: Add version check macro.
629
630 2008-06-21  Kjartan Maraas  <kmaraas@gnome.org>
631
632         * src/vte.h: Don't use GTK_CHECK* macros.
633
634 2008-06-04  Christian Persch  <chpe@gnome.org>
635
636         Bug 515972 – Bold black is black in vte's default palette
637
638         * src/vte.c: (vte_terminal_set_colors): Correctly set the value of
639         'bold black' in the palette. Patch by Santtu Lakkala.
640
641 2008-06-04  Behdad Esfahbod  <behdad@gnome.org>
642
643         Released vte-0.16.14.
644
645         * NEWS: Updated.
646
647         * configure.in: Bumped version to 0.16.14.
648         Bumped libtool version to 11:18:2.
649
650 2008-06-04  Behdad Esfahbod  <behdad@gnome.org>
651
652         Bug 536632 – vte build failure in ring.c:210: error: expected
653         expression before 'do'
654
655         * src/debug.h:
656         * src/ring.c:
657         * src/ring.h:
658         With latest glib (after bug #519026), g_error is expanding to
659         "do {...} while(0)" instead of "{...}".  This breaks build in
660         debugging mode.  Use g_critical instead.  Also add some
661         G_STMT_START/END to some macros.
662
663 2008-05-29  Chris Wilson  <chris@chris-wilson.co.uk>
664
665         * src/pty.c (merge_environ): Replace previous commit with the
666         better patch by Christian Persch.
667
668 2008-05-29  Chris Wilson  <chris@chris-wilson.co.uk>
669
670         * src/pty.c (merge_environ): Fix bug in patch to use g_listenv()
671         as it only returns the variable name and we need to use g_getenv()
672         to retrieve its value.
673
674 2008-05-27  Behdad Esfahbod  <behdad@gnome.org>
675
676         * src/iso2022.c (_vte_iso2022_ambiguous_width): Oops.  Fix thinko
677         in last commit.
678
679 2008-05-27  Behdad Esfahbod  <behdad@gnome.org>
680
681         Bug 535022 – ambiguous width in utf8 locale
682
683         * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize
684         env var settings VTE_CJK_WIDTH=narrow and VTE_CJK_WIDTH=wide.
685         Any other value means "auto" based on locale, as it was doing
686         previously.
687
688 2008-05-21  Chris Wilson  <chris@chris-wilson.co.uk>
689
690         * src/pty.c (merge_environ): Silence compiler warning about using
691         environ as a local variable name.
692
693 2008-05-21  Richard Hult  <richard@imendio.com>
694
695         Bug 534148 – Use g_listenv() instead of environ
696
697         * src/pty.c: (merge_environ): Use g_listenv() instead of
698         non-portable environ extern.
699
700 2008-05-19  Kjartan Maraas  <kmaraas@gnome.org>
701
702         * configure.in: automake doesn't like to substitute more
703         than one variable at a time.
704         * src/vtedraw.c: (_vte_draw_get_using_fontconfig):
705         * src/vtetc.c: (_vte_termcap_find_boolean):
706         Fix two compiler warnings.
707
708 2008-05-09  Chris Wilson  <chris@chris-wilson.co.uk>
709
710         * src/vtedraw.c (_vte_draw_text):
711             Add the text to draw to the debug output.
712
713 2008-05-09  Chris Wilson  <chris@chris-wilson.co.uk>
714
715         Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion
716                                `channel != NULL' failed"
717
718         * src/debug.c (_vte_debug_parse_string):
719         * src/debug.h:
720         * src/vte-private.h:
721         * src/vte.c (vte_terminal_emit_adjustment_changed),
722         (_vte_terminal_adjust_adjustments_full),
723         (vte_terminal_scroll_lines), (vte_terminal_maybe_scroll_to_bottom),
724         (_vte_terminal_insert_char), (vte_terminal_catch_child_exited),
725         (mark_input_source_invalid), (_vte_terminal_connect_pty_read),
726         (mark_output_source_invalid), (_vte_terminal_connect_pty_write),
727         (_vte_terminal_disconnect_pty_read),
728         (_vte_terminal_disconnect_pty_write), (_vte_terminal_fork_basic),
729         (vte_terminal_eof), (_vte_terminal_enable_input_source),
730         (vte_terminal_io_read), (vte_terminal_handle_scroll),
731         (vte_terminal_finalize), (vte_terminal_class_init),
732         (vte_terminal_set_pty), (process_timeout), (update_repeat_timeout),
733         (update_timeout):
734         It was possible for _vte_terminal_enable_input_source() to be called
735         after the input closed with G_IO_HUP. The minimal change would just
736         have been to add a guard to check the pty_master was still valid
737         before reattaching the source. Instead I removed the redundant
738         duplication of the input and output channels and added lots of
739         debugging.
740
741 2008-05-08  Chris Wilson  <chris@chris-wilson.co.uk>
742
743         Bug 516869 – vte displays nothing on GTK+/DirectFB
744
745         Original patch by Jérémy Bobbio.
746
747         * src/vte.c (vte_terminal_class_init), (update_regions),
748         (update_repeat_timeout), (update_timeout):
749         gdk_window_process_all_updates() is ineffective on the gtk+-directfb
750         and gtk+-quartz backends, so in order to process updates immediately
751         one must call gdk_window_process_updates() on the desired GdkWindows
752         instead.
753
754 2008-03-10  Behdad Esfahbod  <behdad@gnome.org>
755
756         Released vte-0.16.13.
757
758         * NEWS: Updated.
759
760         * configure.in: Bumped version to 0.16.13.
761         Bumped libtool version to 11:17:2.
762
763 2008-02-20  Behdad Esfahbod  <behdad@gnome.org>
764
765         Bug 517709 – VTE's pty.c makes 4096 getrlimit calls when it only needs
766         one
767
768         * src/pty.c (_vte_pty_start_helper): Only close fds 0, 1, and 2.
769         gnome-pty-helper closes all fds anyway.
770
771 2008-02-08  Behdad Esfahbod  <behdad@gnome.org>
772
773         * src/vte.c:
774         * src/vteapp.c:
775         * src/vtergb.c:
776         Remove unneeded #include <fontconfig/fontconfig.h>
777
778 2008-01-09  Behdad Esfahbod  <behdad@gnome.org>
779
780         Bug 449131 – Wrong gettext domain
781
782         * src/pty.c:
783         * src/reaper.c (vte_reaper_class_init):
784         * src/trie.c:
785         * src/vtebg.c (vte_bg_class_init):
786         * src/vteglyph.c:
787         Oops.  Fix all remaining ones too.
788
789 2008-01-07  Behdad Esfahbod  <behdad@gnome.org>
790
791         Released vte-0.16.12.
792
793         * NEWS: Updated.
794
795         * configure.in: Bumped version to 0.16.12.
796         Bumped libtool version to 11:16:2.
797 .
798 2007-12-21  Chris Wilson  <chris@chris-wilson.co.uk>
799
800         Bug 503164 – Drawing problems for VTE with gtk+-quartz
801
802         * src/vte.c (vte_terminal_realize):
803         Continuing the saga, remove the fiddling with visibility state
804         during realize.
805
806 2007-12-18  Behdad Esfahbod  <behdad@gnome.org>
807
808         Bug 449131 – Wrong gettext domain
809
810         * src/vte.c (vte_terminal_class_init): Use GETTEXT_DOMAIN in
811         bind_textdomain_codeset().
812
813 2007-12-17  Behdad Esfahbod  <behdad@gnome.org>
814
815         Released vte-0.16.11.
816
817         * NEWS: Updated.
818
819         * configure.in: Bumped version to 0.16.11.
820         Bumped libtool version to 11:15:2.
821 .
822 2007-12-17  Chris Wilson  <chris@chris-wilson.co.uk>
823
824         Bug 503164 – Drawing problems for VTE with gtk+-quartz
825
826         * src/vte.c (vte_terminal_init):
827         GdkQuartz does not generate GdkVisibilityNotify events and
828         so the terminal was never marked as unobscured, causing all
829         redraws to be discarded. Resolve this by initially setting the
830         terminal to be unobscured.
831
832 2007-12-10  Behdad Esfahbod  <behdad@gnome.org>
833
834         Bug 319687 – Pasting of text containing characters not in the
835         terminal's encoding silently fails
836
837         * src/vteconv.c (_vte_conv_open): Try to open converter with
838         transliteration.  Supported by GNU iconv and GLibc.
839
840 2007-12-03  Behdad Esfahbod  <behdad@gnome.org>
841
842         Released vte-0.16.10.
843
844         * NEWS: Updated.
845
846         * configure.in: Bumped version to 0.16.10.
847         Bumped libtool version to 11:14:2.
848 .
849 2007-12-03  Chris Wilson  <chris@chris-wilson.co.uk>
850
851         Bug 497246 – Kill vte_iso2022_fragment_input
852
853         * src/iso2022.c (process_block), (_vte_iso2022_process):
854         Avoid the temporary allocation of the GArray holding the fragments
855         by processing each fragment as it is decyphered. This array is
856         allocated and grown for every single input chunk and is currently the
857         most frequent allocation made by vte.
858
859 2007-12-03  Chris Wilson  <chris@chris-wilson.co.uk>
860
861         * src/keymap.c: Make is_cursor_key static.
862
863 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
864
865         Bug 412435 – Invalid variable name in Makefile.am
866
867         * Makefile.am:
868         * configure.in:
869         * vte.spec.in:
870         Remove spec file and old convenience cvs make targets.
871
872 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
873
874         Bug 416561 – Rendering issue in VtePango
875
876         * src/vtepango.c (_vte_pango_draw_rectangle):
877         * src/vtepangox.c (_vte_pango_x_draw_rectangle):
878         gdk_draw_rectangle has slightly different semantics when
879         filling vs outlining.  Fix for that.
880
881 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
882
883         Bug 416558 – Rendering errors in VteFT2
884
885         * src/vteft2.c (_vte_ft2_create): Disable Gtk+ double-buffering.
886
887 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
888
889         Bug 403217 – Outdated README
890
891         * README: Rewrite.
892
893 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
894
895         Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
896         Patch from Mauricio and Mariano Suárez-Alvarez
897
898         * src/vte.c (vte_terminal_scroll_lines),
899         (vte_terminal_scroll_pages), (vte_terminal_key_press):
900         Implement single-line scroll.
901
902 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
903
904         Bug 353610 – Don't convert tab characters upon copying
905
906         * src/vte-private.h:
907         * src/vteseq.c (vte_sequence_handler_ta):
908         Smart tab handling to try to preserve tab character upong copying.
909         Also makes such smart tabs all-or-none selectable.
910
911 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
912
913         Bug 499892 – strikethrough line is too high
914
915         * src/vte-private.h:
916         * src/vte.c (vte_terminal_apply_metrics), (vte_terminal_init),
917         (vte_terminal_draw_cells): Adjust underline/strikethrough thickness
918         and position based on pangofc's heuristics.
919
920 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
921
922         * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
923         available backends to stderr.
924
925 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
926
927         Bug 499891 – vte with opacity set, shows invisible chars
928
929         * src/vte.c (vte_terminal_draw_rows): Don't draw invisible chars.
930
931 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
932
933         Bug 499896 – Alternate charset isn't an attribute, though we treat it
934         as one.
935
936         * src/vte-private.h:
937         * src/vte.c (_vte_terminal_set_default_attributes),
938         (_vte_terminal_insert_char), (vte_terminal_reset):
939         * src/vteseq.c (vte_sequence_handler_ae),
940         (vte_sequence_handler_as):
941         Move cell.attr.alternate to screen->alternate_charset.
942
943 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
944
945         Bug 499893 – cell.attr.protect is unused
946
947         * src/vte-private.h:
948         * src/vte.c (_vte_terminal_set_default_attributes):
949         * src/vteseq.c (vte_sequence_handler_mp):
950         Comment out cell.attr.protect which is unused.
951
952 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
953
954         * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once):
955         Minor optimization, if one can call it that.
956
957 2007-11-26  Behdad Esfahbod  <behdad@gnome.org>
958
959         * src/vte.c: Fix doc syntax.
960
961 2007-11-26  Behdad Esfahbod  <behdad@gnome.org>
962
963         Revert previous change.  For reason, see bug.
964         Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
965         trailing spaces
966
967         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
968         Don't trim space characters, just the empty space after lines,
969         like we used to.
970
971 2007-11-26  Behdad Esfahbod  <behdad@gnome.org>
972
973         Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
974         trailing spaces
975
976         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
977         Trim trailing space characters if asked to.
978
979 2007-11-23  Behdad Esfahbod  <behdad@gnome.org>
980
981         * doc/reference/Makefile.am:
982         * doc/reference/check.docs:
983         Add script to check doc coverage is 100% on "make check".
984
985 2007-11-23  Behdad Esfahbod  <behdad@gnome.org>
986
987         Bug 499287 – Fix doc coverage regression
988
989         * doc/reference/tmpl/vte.sgml:
990         * doc/reference/vte-sections.txt:
991         Document undocumented symbols.
992
993 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
994
995         * src/vte.c (vte_terminal_io_read), (vte_terminal_init),
996         (process_timeout), (update_repeat_timeout), (update_timeout):
997             Tweak to read across chunk boundaries whilst still maintaining
998             fairness between multiple terminals and refresh rate targets.
999
1000 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1001
1002         * src/ring.c (_vte_ring_insert_preserve):
1003             Use stack allocation to hold small numbers of temporary
1004             gpointers.
1005
1006 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1007
1008         * src/vte-private.h:
1009         * src/vte.c (_vte_free_row_data), (vte_terminal_reset_rowdata),
1010         (vte_terminal_finalize), (vte_terminal_reset):
1011             Export _vte_row_data_free.
1012
1013         * src/vteseq.c (vte_remove_line_internal):
1014             Cache the removed VteRowData - fixes the continual reallocation
1015             of row data during the vim scrolling benchmark.
1016
1017 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1018
1019         * src/vte.c (release_chunk), (prune_chunks),
1020         (remove_from_active_list), (process_timeout),
1021         (update_repeat_timeout):
1022             Delay pruning the chunks freelist until we finished processing
1023             all the incoming data. We were discarding the freelist far too
1024             early and reduced the efficacy of the cache.
1025
1026 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1027
1028         * src/vterdb.h:
1029         * src/vterdb.c (_vte_rdb_get), (_vte_rdb_search), (_vte_rdb_quark),
1030         (_vte_rdb_get_rgba), (_vte_rdb_get_hintstyle), (_vte_rdb_release):
1031             Remove redundant queries and cache the XRequest on the root
1032             window (saves a few round-trips during terminal construction).
1033             Add a new function to free the cache.
1034
1035         * src/vtefc.c (_vte_fc_defaults_from_rdb):
1036             Release the cache after retrieving settings.
1037
1038 2007-11-15  Chris Wilson  <chris@chris-wilson.co.uk>
1039
1040         * src/vte.c (vte_terminal_focus_out):
1041             Similar for the leave notify, disable the match updating after
1042             hiding the cursor after the loss of focus.
1043             However, do we really want to disable the hilighting whilst the
1044             pointer may still be within the terminal?
1045
1046 2007-11-15  Chris Wilson  <chris@chris-wilson.co.uk>
1047
1048         * src/vte.c (vte_terminal_enter):
1049             Don't automatically reshow the hilight on receiving an enter
1050             event, but wait for the motion notify to update the cursor
1051             co-ordinates, otherwise we may hilight something quite distant
1052             from the cursor.
1053
1054 2007-11-15  Chris Wilson  <chris@chris-wilson.co.uk>
1055
1056         * src/vte.c (vte_terminal_leave):
1057             Mark the cursor as invisible on leaving the terminal as this
1058             stops the hilight matcher running whilst the cursor is absent.
1059
1060 2007-11-06  Behdad Esfahbod  <behdad@gnome.org>
1061
1062         * src/vte.c (vte_terminal_set_font_from_string_full): Allow NULL
1063         font argument.  Can be used to set antialias without setting font.
1064
1065         * src/vteapp.c (main): Fix antialias handling which was borked when
1066         moving to GOption.
1067
1068 2007-11-06  Behdad Esfahbod  <behdad@gnome.org>
1069
1070         Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk
1071         to get antialias and hinting value
1072
1073         * src/vtefc.c (_vte_fc_defaults_from_gtk),
1074         (_vte_fc_defaults_from_rdb): Replace _vte_fc_defaults_from_gtk() with
1075         gtk_default_substitute() from Gtk+-2.6.  It's essentially the same
1076         thing, but not overriding elements of the pattern already present.
1077         Also remove a couple redundant calls.
1078
1079 2007-10-11  Chris Wilson  <chris@chris-wilson.co.uk>
1080
1081         Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale environment
1082
1083         * src/vte.c (vte_terminal_set_encoding):
1084             Fallback to using UTF-8 as the locale encoding. This prevents
1085             subsequent crashes but may display gibberish in the output.
1086
1087 2007-10-05  Chris Wilson  <chris@chris-wilson.co.uk>
1088
1089         Bug 483642 – vte_terminal_feed crash when 8190 characters passed
1090
1091         * src/vte.c (vte_terminal_feed):
1092             Break the feed data into chunks.
1093
1094 2007-09-30  Chris Wilson  <chris@chris-wilson.co.uk>
1095
1096         * src/vtexft.c (_vte_xft_set_background_image):
1097                 Skip retrieving the VteBg if the source is VTE_BG_SOURCE_NONE
1098                 as we neither need it to listen for changes to the background
1099                 nor require it to load the pixmap (which is a no-op).
1100
1101 2007-09-30  Chris Wilson  <chris@chris-wilson.co.uk>
1102
1103         * src/vtexft.c (_vte_xft_destroy):
1104                 Ensure the GdkPixmap is destroyed along with the VteXft
1105                 context.
1106
1107 2007-09-26  Chris Wilson  <chris@chris-wilson.co.uk>
1108
1109         Bug 480735 – Underlining whitespace not reliable
1110
1111         Original patch by Steven Skovran.
1112
1113         I really must remember to run vttest more often. (And to work within
1114         git-svn.)
1115
1116         * src/vte.c (vte_terminal_draw_rows):
1117             Do not skip spaces.
1118
1119 2007-09-26  Chris Wilson  <chris@chris-wilson.co.uk>
1120
1121         Bug 480735 – Underlining whitespace not reliable
1122
1123         Original one-liner by Steven Skovran.
1124
1125         * src/vte.c (vte_terminal_draw_rows):
1126             Do not try to over zealously skip whitespace. The goal is
1127             to maintain the current run whilst avoiding adding spaces to
1128             the glyph sequence - so check the cell fully for attribute
1129             breaks and simply do not add it to the glyphs if it contains a
1130             space.
1131
1132 2007-09-17  Behdad Esfahbod  <behdad@gnome.org>
1133
1134         Released vte-0.16.9.
1135
1136         * NEWS: Updated.
1137
1138         * configure.in: Bumped version to 0.16.9.
1139         Bumped libtool version to 11:13:2.
1140
1141 2007-09-05  Behdad Esfahbod  <behdad@gnome.org>
1142
1143         * perf/vim.sh: Wait for keypress when done, so one can do
1144         "vte -c ./vim.sh" and not lose the final numbers.
1145
1146         * src/vtepango.c (_vte_pango_destroy), (_vte_pango_start),
1147         (_vte_pango_end), (_vte_pango_set_background_color),
1148         (_vte_pango_set_background_image), (_vte_pango_clear),
1149         (_vte_pango_set_text_font), (_vte_pango_get_using_fontconfig),
1150         (_vte_pango_draw_text), (_vte_pango_draw_has_char),
1151         (_vte_pango_draw_rectangle), (_vte_pango_fill_rectangle),
1152         (_vte_pango_set_scroll):  General cleanup.  Also implement
1153         _vte_pango_draw_has_char() using
1154         pango_layout_get_unknown_glyphs_count() when available.
1155
1156 2007-09-02  Behdad Esfahbod  <behdad@gnome.org>
1157
1158         Bug 469862 – Handling of wrapped links in gnome-terminal is broken
1159
1160         * src/vteseq.c (vte_sequence_handler_ce): Reset soft_wrapped.
1161
1162 2007-09-01  Chris Wilson  <chris@chris-wilson.co.uk>
1163
1164         cf Bug 469862 – Handling of wrapped links in gnome-terminal is broken
1165
1166         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
1167             Revert the last character is in last column check as that
1168             behaviour is required to handle terminal resizing where the
1169             screen contents are not reconstructed (e.g. bash).
1170
1171 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1172
1173         Bug 471901 – troubles with pad
1174
1175         * src/vte-private.h:
1176         * src/vte.c (_vte_invalidate_cells), (vte_terminal_draw_rows),
1177         (vte_terminal_paint): Don't abuse VTE_PAD_WIDTH.
1178
1179 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1180
1181         Bug 469862 – Handling of wrapped links in gnome-terminal is broken
1182
1183         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
1184             Check that the last character is in the last column before
1185             adding a newline for autowrapped lines.
1186
1187 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1188
1189         * MAINTAINERS: Add myself to the list, as Behdad had suggested some
1190         time ago.
1191
1192 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1193
1194         Bug 153265 – Handle Sun Cut, Copy, Paste keys
1195         Patch by Brian Cameron.
1196
1197         * doc/reference/tmpl/vte.sgml:
1198         * src/vte.c (vte_terminal_class_init),
1199         (vte_terminal_real_copy_clipboard), (vte_terminal_copy_clipboard),
1200         (vte_terminal_real_paste_clipboard),
1201         (vte_terminal_paste_clipboard):
1202         * src/vte.h:
1203             Add key bindings for the special function keys.
1204
1205 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1206
1207         * src/vte.c (vte_terminal_draw_rows): Bad manipulation of patches
1208         whilst attempting to apply the fix for Bug 434230 - net result was
1209         that the correct code was being circumvented.
1210
1211 2007-08-29  Chris Wilson  <chris@chris-wilson.co.uk>
1212
1213         Bug 471484 – vteapp resize weirdness
1214
1215         * src/vteapp.c (main): Distinguish between setting the geometry and
1216         disabling the use of geometry hints. A regression when converting to
1217         GOption based arguments.
1218
1219 2007-08-27  Behdad Esfahbod  <behdad@gnome.org>
1220
1221         Bug 470690 – Typo at src/vtexft.c "appropiate" should be "appropriate"
1222
1223         * src/vtexft.c (_vte_xft_open_font_for_char): Fix typo.
1224
1225 2007-08-07  Behdad Esfahbod  <behdad@gnome.org>
1226
1227         * MAINTAINERS: Add Userid field, remove Guilherme.
1228
1229 2007-08-03  Chris Wilson  <chris@chris-wilson.co.uk>
1230
1231         Bug 434230 – Spaces are not underlined
1232         Original patch by Santtu Lakkala.
1233
1234         * src/vte.c (vte_terminal_draw_rows): Only skip cells if we do not
1235         need to draw on top.
1236
1237 2007-08-03  Chris Wilson  <chris@chris-wilson.co.uk>
1238
1239         Bug 450069 – vte crash on removing a terminal tab
1240
1241         * src/vte.c (vte_terminal_emit_eof), (vte_terminal_queue_eof),
1242         (vte_terminal_eof): Move the EOF emission to an idle handler so that
1243         the source is inactive whilst the VteTerminal is finalized.
1244
1245 2007-07-30  Behdad Esfahbod  <behdad@gnome.org>
1246
1247         Released vte-0.16.8.
1248
1249         Quick followup release with no code changes, to fix missing
1250         documentation index in the tarball.
1251
1252         * NEWS: Updated.
1253
1254         * configure.in: Bumped version to 0.16.8.
1255         Bumped libtool version to 11:12:2.
1256
1257 2007-07-27  Behdad Esfahbod  <behdad@gnome.org>
1258
1259         Released vte-0.16.7.
1260
1261         * NEWS: Updated.
1262
1263         * configure.in: Bumped version to 0.16.7.
1264         Bumped libtool version to 11:11:2.
1265
1266 2007-07-27  Behdad Esfahbod  <behdad@gnome.org>
1267
1268         Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
1269         Patch by James Bowes
1270
1271         * src/keymap.c (_vte_keymap_map), (is_cursor_key),
1272         (_vte_keymap_key_add_key_modifiers):
1273         * src/keymap.h:
1274         * src/vte.c (vte_terminal_key_press):
1275         Only switch to CSI for some cursor keys when in cursor app mode.
1276
1277 2007-06-25  Chris Wilson  <chris@chris-wilson.co.uk>
1278
1279         Bug 448259 – Mapping for Ctrl-_
1280         Patch by Andrey Melnikov.
1281
1282         * src/keymap.c: Add mapping for Ctrl-Minus.
1283
1284 2007-06-25  Chris Wilson  <chris@chris-wilson.co.uk>
1285
1286         Bug 449809 – use python-config to get python includes
1287         Patch by Sebastien Bacher.
1288
1289         * acinclude.m4: prefer python-config where available.
1290
1291 2007-06-25  Chris Wilson  <chris@chris-wilson.co.uk>
1292
1293         Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted
1294         Patch by Dale Sedivec.
1295
1296         * src/vteseq.c (vte_sequence_handler_window_manipulation): Restore
1297         the missing 'L'.
1298
1299 2007-06-21  Christian Persch  <chpe@gnome.org>
1300
1301         * configure.in:
1302         * src/Makefile.am: Move libtool versioning to configure so you just
1303         have to update one file for releasing. See bug #396265 comment 17.
1304
1305 2007-06-18  Behdad Esfahbod  <behdad@gnome.org>
1306
1307         Released vte-0.16.6.
1308
1309         * NEWS: Updated.
1310
1311         * configure.in: Bumped version to 0.16.6.
1312
1313         * src/Makefile.am: Bumped libtool version to 11:10:2.
1314
1315 2007-06-12  Chris Wilson  <chris@chris-wilson.co.uk>
1316
1317         * src/vte.c (vte_terminal_set_size): Call gtk_widget_queue_resize()
1318         after updating row/column count.
1319
1320 2007-06-11  Behdad Esfahbod  <behdad@gnome.org>
1321
1322         Bug 372743 – vte_terminal_set_colors doesn't work as advertised
1323
1324         * src/vte.c (vte_terminal_set_colors): Allow 24-color palettes.
1325
1326 2007-06-09  Behdad Esfahbod  <behdad@gnome.org>
1327
1328         Bug 445620 – Some characters shows different in different locales.
1329         Patch from Zealot
1330
1331         * src/iso2022.c (_vte_iso2022_state_set_codeset): Update ambiguous
1332         width.
1333
1334 2007-06-04  Behdad Esfahbod  <behdad@gnome.org>
1335
1336         Released vte-0.16.5.
1337
1338         * NEWS: Updated.
1339
1340         * configure.in: Bumped version to 0.16.5.
1341
1342         * src/Makefile.am: Bumped libtool version to 11:9:2.
1343
1344 2007-05-30  Chris Wilson  <chris@chris-wilson.co.uk>
1345
1346         fcrozat pointed out 'some strange "underline" line where cursor is
1347         located and blinking'.
1348
1349         Also reported in bug 442688.
1350
1351         * src/vte.c (vte_terminal_draw_rows):
1352             Continuation of the previous commit: catch a couple more locations
1353             where we need to skip past the end of the line. The problem in
1354             this case was we tried to use some uninitialised variables whilst
1355             trying to draw the cell attributes.
1356
1357 2007-05-28  Behdad Esfahbod  <behdad@gnome.org>
1358
1359         Released vte-0.16.4.
1360
1361         * NEWS: Updated.
1362
1363         * configure.in: Bumped version to 0.16.4.
1364
1365         * src/Makefile.am: Bumped libtool version to 11:8:2.
1366
1367 2007-05-28  Chris Wilson  <chris@chris-wilson.co.uk>
1368
1369         uws noted on IRC that 'vte trunk does strange thingies with colors'
1370
1371         * src/vte.c (vte_terminal_draw_rows):
1372             When reaching the end-of-row be careful not to reset the
1373             current text attributes (color, underlining, etc).
1374
1375 2007-05-25  Chris Wilson  <chris@chris-wilson.co.uk>
1376
1377         * src/vte.c (vte_terminal_expand_region),
1378         (vte_terminal_paint_area):
1379             Only add the borders to the clear area.
1380
1381 2007-05-23  Chris Wilson  <chris@chris-wilson.co.uk>
1382
1383         Bug 429278 – Cursor drawn strangely in joe
1384
1385         * src/vte.c (vte_terminal_expand_region),
1386         (vte_terminal_paint_area):
1387             Ensure the expanded regions are cell aligned.
1388
1389 2007-05-23  Chris Wilson  <chris@chris-wilson.co.uk>
1390
1391         cf Bug 439247 – scrolling vim in full screen is painfully slow and takes up 100% of the cpu
1392
1393         * src/vte.c (vte_terminal_draw_rows):
1394             Fix up the unwanted break of Glyph runs at the end-of-lines.
1395
1396 2007-05-23  Chris Wilson  <chris@chris-wilson.co.uk>
1397
1398         Bug 440475 – Display glitch with transparent backgroud
1399
1400         * src/vte.c (vte_terminal_paint_area):
1401             Apply the band-aid fix to clear the area that's about to be
1402             repainted. The full solution will to be ensure that the regions
1403             after expansion are cell-aligned.
1404
1405 2007-05-22  Chris Wilson  <chris@chris-wilson.co.uk>
1406
1407         Bug 375112 – ctrl-key combinations yielding just key
1408         Original patch by <samo@altern.org> and refactored by Loïc Minier.
1409
1410         * src/vte.c (vte_translate_national_ctrlkeys),
1411         (vte_terminal_key_press):
1412             When cooking a string to pass through to the client obtain the
1413             "raw" keyval.
1414
1415 2007-05-22  Chris Wilson  <chris@chris-wilson.co.uk>
1416
1417         Bug 440377 – gnome-terminal cannot refresh terminal when accessibility enabled
1418         Original patch by Li Yuan.
1419
1420         * src/vteaccess.c (vte_terminal_accessible_focus_in),
1421         (vte_terminal_accessible_focus_out),
1422         (vte_terminal_accessible_visibility_notify):
1423             Return FALSE rather than void...
1424
1425 2007-05-17  Chris Wilson  <chris@chris-wilson.co.uk>
1426
1427         * perf/scroll.vim:
1428         * perf/vim.sh:
1429             Measure full screen scrolling performance.
1430
1431 2007-05-15  Chris Wilson  <chris@chris-wilson.co.uk>
1432
1433         kmaraas reported an issue on IRC where the scrollback was not being
1434         updated correctly in the first tab when the terminal was resized via
1435         a second tab.
1436
1437         * src/vte.c (vte_terminal_size_allocate): Check whether we need to
1438         recompute the visible lines due to a change in layout geometry.
1439
1440 2007-04-27  Chris Wilson  <chris@chris-wilson.co.uk>
1441
1442         Bug 433776 – gnome-terminal crashes when open preedit area
1443         Take 2.
1444
1445         * src/vte.c (vte_terminal_paint): The preedit_cursor is returned by
1446         the input modules in characters not in bytes as assumed by the
1447         validation.
1448
1449 2007-04-27  Chris Wilson  <chris@chris-wilson.co.uk>
1450
1451         Bug 433776 – gnome-terminal crashes when open preedit area
1452
1453         * src/vte.c (vte_terminal_paint): Use the validated cursor index.
1454
1455 2007-04-27  Behdad Esfahbod  <behdad@gnome.org>
1456
1457         Released vte-0.16.3.
1458
1459         * NEWS: Updated.
1460
1461         * configure.in: Bumped version to 0.16.3.
1462
1463         * src/Makefile.am: Bumped libtool version to 11:7:2.
1464
1465 2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>
1466
1467         Bug 429189 – Vte-WARNING's
1468
1469         * src/vtexft.c (_vte_xft_open_font_for_char):
1470                 Convert the warning into a DEBUG.
1471
1472 2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>
1473
1474         Bug 415044 – Use --enable-debug rather than --enable-debugging
1475
1476         As noted on Bug 414716, the convention is to use --enable-debug
1477         to enable extra debugging code.
1478
1479         * configure.in:
1480                 s/debugging/debug/
1481
1482 2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>
1483
1484         Bug 414716 – Refresh issue after changing workspaces
1485
1486         * src/vte.c (vte_terminal_hierarchy_changed):
1487                 Do not respond to toplevel mapping events.
1488
1489 2007-04-23  Behdad Esfahbod  <behdad@gnome.org>
1490
1491         Released vte-0.16.2.
1492
1493         * NEWS: Updated.
1494
1495         * configure.in: Bumped version to 0.16.2.
1496
1497         * src/Makefile.am: Bumped libtool version to 11:6:2.
1498
1499 2007-04-23  Chris Wilson <chris@chris-wilson.co.uk>
1500
1501         Bug 431799 – Regex highlighting is broken
1502
1503         * src/vte.c (vte_terminal_emit_contents_changed),
1504         (vte_terminal_match_hilite_update), (process_timeout),
1505         (update_repeat_timeout), (update_timeout):
1506                 Always emit any pending updates before redrawing. This
1507                 ensures for example that the match contents are updated
1508                 after a simple scroll event.
1509
1510 2007-04-20  Chris Wilson  <chris@chris-wilson.co.uk>
1511
1512         * src/vtexft.c (_vte_xft_start), (_vte_xft_clip):
1513                 Optimise away the use of a clip mask for the common case
1514                 of redrawing the whole terminal.
1515
1516 2007-04-17  Behdad Esfahbod  <behdad@gnome.org>
1517
1518         * src/iso2022.c (_vte_iso2022_ambiguous_width): Consider
1519         ambiguous-width chars if VTE_CJK_WIDTH env var is set and we are
1520         under a CJK locale.
1521
1522 2007-03-12  Behdad Esfahbod  <behdad@gnome.org>
1523
1524         Released vte-0.16.1.
1525
1526         * NEWS: Updated.
1527
1528         * configure.in: Bumped version to 0.16.1.
1529
1530         * src/Makefile.am: Bumped libtool version to 11:5:2.
1531
1532 2007-04-06  Chris Wilson  <chris@chris-wilson.co.uk>
1533
1534         Bug 426870 – vte often passes NUL to functions requiring valid unichar
1535
1536         * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
1537         (vte_terminal_paint):
1538                 Consistently guard against cell->c == '\0' before calling
1539                 _vte_draw_get_char_width.
1540
1541 2007-04-06  Chris Wilson  <chris@chris-wilson.co.uk>
1542
1543         Bug 419644 – Links do not get highlighted anymore
1544         Also see Bug 404757 – URL matching doesn't work with PCRE
1545
1546         * configure.in:
1547                 Kill --with-pcre as it changes the semantics of the API
1548                 and only causes confusion.
1549
1550 2007-04-05  Chris Wilson  <chris@chris-wilson.co.uk>
1551
1552         Bug 426541 – crash on IRM escape code
1553
1554         * src/vte.c (vte_terminal_ensure_cursor),
1555         (_vte_terminal_insert_char):
1556                 Mishandled insertion - we always extended the row for
1557                 inserts even though the row would automagically extend
1558                 for the inserted cells. This lead to referencing
1559                 uninitialised cells at the end of the row during painting.
1560         * src/vte.c (vte_terminal_draw_rows):
1561                 Retrieve the cell before inspecting it.
1562
1563 2007-04-04  Chris Wilson  <chris@chris-wilson.co.uk>
1564
1565         Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
1566
1567         Original patch by Shaun McCance and refined by Baris Cicek.
1568
1569         * src/vte.c (vte_terminal_scroll):
1570                 Send cursor keypress instead of trying to scroll the
1571                 alternate screen in vain.
1572
1573 2007-04-03  Chris Wilson  <chris@chris-wilson.co.uk>
1574
1575         Bug 425767 – vte_terminal_set_color_highlight should test for
1576         NULL before _vte_debug_print
1577
1578         * src/vte.c (vte_terminal_set_color_cursor),
1579         (vte_terminal_set_color_highlight):
1580                 Differentiate between set/unset paths.
1581
1582 2007-03-25  Chris Wilson <chris@chris-wilson.co.uk>
1583
1584         Bug 422385 – vte appears at the top of the root window even when
1585         packed at the bottom of it
1586
1587         Patch by Dodji Seketeli.
1588
1589         * src/vte.c (vte_terminal_size_allocate), (vte_terminal_realize):
1590                 Honour the allocated position when realizing the widget.
1591
1592 2007-03-22  Chris Wilson  <chris@chris-wilson.co.uk>
1593
1594         * src/vtexft.c (_vte_xft_draw_text):
1595                 Insert spaces into the Xft glyph stream to avoid the
1596                 overhead of restarting a glyph sequence for every word.
1597
1598 2007-03-21  Chris Wilson  <chris@chris-wilson.co.uk>
1599
1600         Bug 420935 – glyph can be cropped with not fitting in a cell
1601
1602         * src/vte.c (vte_terminal_paint):
1603                 Don't redraw the invisible cursor 
1604                 - avoids nasty artifacts like clipping extra wide glyphs.
1605
1606 2007-03-19  Chris Wilson  <chris@chris-wilson.co.uk>
1607
1608         * src/vte.c (vte_terminal_scroll_pages):
1609                 Leave 'contents-change' to the scroll handler.
1610
1611 2007-03-19  Chris Wilson  <chris@chris-wilson.co.uk>
1612
1613         * src/vte.c (vte_terminal_extend_selection),
1614         (vte_terminal_draw_rows):
1615                 Accidentally inverted an is-empty? check during the 
1616                 elimination of the empty bitfield.
1617
1618 2007-03-19  Chris Wilson  <chris@chris-wilson.co.uk>
1619
1620         Bug 420067 – Does not handle expose events whilst processing
1621         unseen incoming data
1622
1623         * src/vte.c (vte_terminal_expose):
1624                 Handle the expose immediately if we are only processing
1625                 incoming data (ie no redraws pending).
1626
1627 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1628
1629         * src/vteseq.c (vte_sequence_handler_cursor_character_absolute):
1630                 Remove a chunk of code that was tried as a mutt band-aid
1631                 long ago and was completely wrong.
1632
1633 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1634
1635         Bug 415381 – Improve performance of vte_terminal_insert_char()
1636
1637         The bulk of the work to remove redundant reads and conditionals
1638         from the code. In particular, gcc was emitting bit-by-bit copies
1639         for transferring the bitfield since we modified a member immediately
1640         afterwards - overcome this by using an explicit memcpy of the
1641         bitfields.
1642
1643         * src/vte-private.h:
1644         * src/vte.c (vte_g_array_fill), (vte_terminal_ensure_cursor),
1645         (_vte_terminal_insert_char), (vte_terminal_process_incoming),
1646         (vte_terminal_send):
1647         * src/vteseq.c (vte_sequence_handler_ic):
1648
1649 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1650
1651         cf Bug 415381 – Improve performance of vte_terminal_insert_char()
1652
1653         * src/vte-private.h: Use a simple boolean rather than counter for
1654         text changed style flags.
1655         * src/vte.c: And update users.
1656         * src/vteseq.c:
1657
1658 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1659
1660         cf Bug 415381 – Improve performance of vte_terminal_insert_char()
1661
1662         * src/vte-private.h: Embed bitfield into struct
1663         * src/vte.c:  And update users.
1664         * src/vteseq.c:
1665
1666 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1667
1668         Need to trigger update timeout rather than process timeout
1669         otherwise the background is not updated.
1670
1671         * src/vte.c (vte_terminal_queue_adjustment_changed),
1672         (vte_terminal_queue_adjustment_value_changed):
1673
1674 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1675
1676         * src/vtexft.c (_vte_xft_create), (_vte_xft_destroy),
1677         (_vte_xft_start), (_vte_xft_end), (_vte_xft_clip),
1678         (_vte_xft_clear): Avoid some allocations.
1679
1680 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1681
1682         Bug 418073 – Opacity ignored for vtexft
1683
1684         * src/vte.c:
1685         * src/vtedraw.c (_vte_draw_requires_clear):
1686         * src/vtedraw.h:
1687         * src/vteft2.c (_vte_ft2_set_background_image):
1688         * src/vtegl.c (_vte_gl_create), (_vte_gl_set_background_image):
1689         * src/vtepango.c (_vte_pango_set_background_image):
1690         * src/vtepangox.c (_vte_pango_x_set_background_image):
1691         * src/vtexft.c (_vte_xft_set_background_color),
1692         (_vte_xft_set_background_image):
1693                 Flood fill the backing pixmap if we need to change it's
1694                 opacity as well.
1695
1696 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1697
1698         Bug 418910 – Asymmetric scrolling with mouse wheel
1699
1700         * configure.in:
1701         * src/vte.c: Round-up the delta before applying to ensure consistency
1702         between up and down.
1703
1704 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1705
1706         * src/vte.c (vte_terminal_catch_child_exited), (vte_terminal_eof),
1707         (vte_terminal_process_incoming): Refactor some common code.
1708
1709 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1710
1711         Bug 416634 – Rendering glitch as autowrapped chars are outside invalidated bbox
1712
1713         * src/vte.c (_vte_terminal_insert_char),
1714         (vte_terminal_process_incoming): Correctly update bbox after
1715         autowrapping.
1716
1717 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1718
1719         Bug 416635 – Rendering glitch: double draw of line below exposed region
1720
1721         * src/vte.c (vte_terminal_expand_region),
1722         (vte_terminal_paint_area): Kill a couple of off-by-ones.
1723
1724 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1725
1726         Bug 418588 – Invalid read when drawing preedit cursor
1727
1728         * src/vte.c (vte_terminal_paint):
1729                 No need to read what is drawn and furthermore isn't allocated.
1730
1731 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1732
1733         Bug 417652 – Scrolling bug exposed by nvi
1734
1735         * src/vte.c (vte_terminal_insert_rows), (_vte_terminal_ensure_row),
1736         (vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta):
1737                 Ensure the rows before updating the insert delta and refactor
1738                 the common code.
1739
1740 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
1741
1742         Bug 417301 – Terminal widgets don't respond to DPI changes
1743
1744         * src/vte.c (vte_terminal_fc_settings_changed): Force a font reload
1745         after XFT settings have changed.
1746
1747 2007-03-12  Behdad Esfahbod  <behdad@gnome.org>
1748
1749         Released vte-0.16.0.
1750
1751         * NEWS: Updated.
1752
1753         * configure.in: Bumped version to 0.16.0.
1754
1755         * src/Makefile.am: Bumped libtool version to 11:4:2.
1756
1757 2007-03-06  Chris Wilson  <chris@chris-wilson.co.uk>
1758
1759         * src/vteseq.c (vte_sequence_handler_cm), (vte_sequence_handler_sf):
1760                 More work to match mutt's behaviour under xterm.
1761
1762 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1763
1764         * src/vte.c (vte_terminal_io_read):
1765                 Use the process estimate to load balance between multiple
1766                 active terminals.
1767
1768 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1769
1770         * src/vteseq.c (vte_sequence_handler_cm),
1771         (vte_sequence_handler_dc), (vte_sequence_handler_sf),
1772         (vte_sequence_handler_cursor_character_absolute):
1773                 Tweak the fill of painted cells to match mutt's behaviour
1774                 under xterm.
1775
1776 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1777
1778         Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
1779
1780         * src/vte.c (vte_terminal_map_toplevel),
1781         (vte_terminal_hierarchy_changed):
1782                 Force the visibility state to unobscured after the toplevel is
1783                 remapped.
1784
1785 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1786
1787         * src/vte.c (vte_terminal_size_allocate):
1788                 Note to self: Never try to optimize away the redraw.
1789
1790 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1791
1792         * src/vte.c (_vte_terminal_insert_char):
1793         * src/vtedraw.c (_vte_draw_text), (_vte_draw_char),
1794         (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle):
1795                 Touch up whitespace in debug output.
1796
1797 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1798
1799         * src/vte.c (_vte_invalidate_cells), (vte_terminal_set_visibility),
1800         (vte_terminal_paint_area), (vte_terminal_expose):
1801                 Make sure the invalidated_all flag is cleared in the expose
1802                 event if we handle it immediately.
1803
1804 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1805
1806         * src/vteseq.c (vte_sequence_handler_ce),
1807         (vte_sequence_handler_clear_current_line):
1808                 Fixup invalidation to end-of-line.
1809
1810 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1811
1812         cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
1813
1814         * src/vte.c (vte_terminal_draw_rows), (vte_terminal_expand_region):
1815                 Include the window padding when painting the cell backgrounds.
1816
1817 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1818
1819         Bug 414586 – Terminal screen blinks when menu is opened for the first time
1820
1821         Avoid resetting the window background colour when the style is reset.
1822         Avoid clearing the window if we are using a simple color and double
1823         bufferring (i.e when we know we are using a pre-cleared pixmap).
1824
1825         * src/vte-private.h:
1826         * src/vte.c (vte_terminal_init), (vte_terminal_size_allocate),
1827         (vte_terminal_unrealize), (vte_terminal_realize),
1828         (vte_terminal_paint_area), (vte_terminal_expose),
1829         (vte_terminal_class_init), (vte_terminal_background_update):
1830         * src/vtedraw.c (_vte_draw_has_background_image):
1831         * src/vtedraw.h:
1832         * src/vteft2.c (_vte_ft2_set_background_image):
1833         * src/vtegl.c (_vte_gl_set_background_image):
1834         * src/vtepango.c (_vte_pango_set_background_image):
1835         * src/vtepangox.c (_vte_pango_x_set_background_image):
1836         * src/vtexft.c (_vte_xft_set_background_image):
1837
1838 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1839
1840         Bug 414586 – Terminal screen blinks when menu is opened for the first time
1841
1842         * src/vte.c (_vte_invalidate_cells), (_vte_invalidate_all),
1843         (vte_terminal_expose), (add_update_timeout):
1844                 Juggle the handling of external exposes/invalidates to avoid
1845                 delays in refreshing the display when we are idle.
1846
1847 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
1848
1849         cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
1850
1851         * src/vte.c (_vte_invalidate_cells), (vte_terminal_init),
1852         (vte_terminal_expand_region), (vte_terminal_paint_area):
1853                 After enlarging the expand region make sure the dirty area
1854                 includes the border for edge cells.
1855
1856 2007-03-04  Chris Wilson  <chris@chris-wilson.co.uk>
1857
1858         cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
1859
1860         Distinguish between internal update requests and external. If we
1861         need to update due to a user action (such as adjusting the background
1862         or color palette) do not impose a futher delay.
1863
1864         Tidy the color palette modification code to not trigger invalidates if
1865         we do not actually modify the palette.
1866
1867         * src/vte-private.h:
1868         * src/vte.c (vte_terminal_set_color_internal),
1869         (vte_terminal_set_color_bold), (vte_terminal_set_color_dim),
1870         (vte_terminal_set_color_foreground),
1871         (vte_terminal_set_color_background),
1872         (vte_terminal_set_color_cursor),
1873         (vte_terminal_set_color_highlight), (vte_terminal_set_colors),
1874         (root_pixmap_changed_cb), (vte_terminal_set_background_saturation),
1875         (vte_terminal_set_background_tint_color), (add_update_timeout):
1876         * src/vteseq.c (vte_sequence_handler_ce),
1877         (vte_sequence_handler_clear_current_line),
1878         (vte_sequence_handler_clear_above_current):
1879
1880 2007-03-02  Chris Wilson  <chris@chris-wilson.co.uk>
1881
1882         Bug 413068 – new line added to tab when opened
1883
1884         * src/vte.c (vte_terminal_size_allocate):
1885                 Replace the ill-conceived attempt (delta could not be
1886                 negative, so insert_delta or scroll_delta would not become
1887                 negative either) by only considering changes wrt to the number
1888                 of visible lines.
1889
1890 2007-03-02  Chris Wilson  <chris@chris-wilson.co.uk>
1891
1892         Bug 413068 – new line added to tab when opened
1893
1894         * src/vte.c (_vte_terminal_insert_char):
1895                 Improve debug output.
1896         * src/vte.c (vte_terminal_size_allocate):
1897                 Be careful that we don't force insert_delta or scroll_delta
1898                 to become negative.
1899
1900 2007-03-01  Behdad Esfahbod  <behdad@gnome.org>
1901
1902         Released vte-0.15.6.
1903
1904         * NEWS: Updated.
1905
1906         * configure.in: Bumped version to 0.15.6.
1907
1908         * src/Makefile.am: Bumped libtool version to 11:3:2.
1909
1910 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
1911
1912         * src/vte.c (vte_terminal_draw_cells), (vte_terminal_draw_rows),
1913         (vte_terminal_paint):
1914                 Tweak the clear widths to include the pixel widening due to
1915                 psuedo-bold.
1916
1917 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
1918
1919         * src/vte-private.h:
1920         * src/vte.c (_vte_terminal_ensure_row),
1921         (vte_terminal_ensure_cursor), (_vte_terminal_insert_char):
1922         * src/vteseq.c (vte_sequence_handler_ta):
1923                 Be more careful when filling in gaps.
1924
1925 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
1926
1927         Fix X11 headers / libraries detection on bi-arch systems.
1928         Patch by Frederic Crozat.
1929
1930         * configure.in:
1931                 Check for x_includes before ac_x_includes, and similary for
1932                 ac_x_libraries.
1933
1934 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
1935
1936         Bug 410534 – Slow content scrolling, takes 100% of CPU.
1937
1938         * src/vtexft.c:
1939                 Further reduce the cap to 80 after more testing on the
1940                 broken fglrx driver.
1941
1942 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
1943
1944         Bug 413068 – new line added to tab when opened
1945
1946         * src/vte.c (vte_terminal_ensure_font), (vte_terminal_realize):
1947                 Beware when no font is set before the first request...
1948                 Make sure that at least the default font is set.
1949
1950 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
1951
1952         Bug 413262 – Incorrectly coloured tabs
1953
1954         * src/vte-private.h:
1955         * src/vte.c (vte_terminal_ensure_cursor),
1956         (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
1957         (_vte_terminal_feed_chunks), (vte_terminal_set_scrollback_lines):
1958         * src/vteseq.c (vte_sequence_handler_ta),
1959         (vte_sequence_handler_request_terminal_parameters),
1960         (vte_sequence_handler_return_terminal_status),
1961         (vte_sequence_handler_send_primary_device_attributes):
1962                 Fill the tab in the current color, else it will be filled at
1963                 the time of writing the next character.
1964
1965 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
1966
1967         Bug 413102 – Incorrect highlighting in vim
1968
1969         * src/vte-private.h:
1970         * src/vte.c (_vte_terminal_ensure_row),
1971         (_vte_terminal_insert_char):
1972         * src/vteseq.c(vte_sequence_handler_cb),
1973         (vte_sequence_handler_ce), (vte_sequence_handler_cr),
1974         (vte_sequence_handler_ec), (vte_sequence_handler_sf):
1975                 Paint the row background when scrolling, this more closely
1976                 matches xterm's behaviour.
1977
1978 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
1979
1980         Bug 413158 – Cursor trails
1981
1982         * src/vte.c (_vte_invalidate_cell):
1983                 _vte_invalidate_cell() can be called to invalidate any visible
1984                 cell so issue the invalidate even for blank cells.
1985
1986 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
1987
1988         * src/vte.c (_vte_terminal_insert_char):
1989                 Correct the OBO in the number of columns ensured.
1990
1991 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
1992
1993         Bug 413078 – Crash during opening a new tab whilst scrolling
1994         
1995         During input processing it was possible to both remove the timeout and
1996         then add a new one. The currently running timeout would believe that
1997         it was to continue since the terminal was still active, and so *two*
1998         timeouts would be scheduled. Occasionally the second timeout would be
1999         called after the first had finished all the work, resulting in the
2000         second timeout trying to access a NULL active_terminal list.
2001
2002         * src/vte.c (add_update_timeout), (remove_from_active_list),
2003         (vte_terminal_add_process_timeout), (need_processing),
2004         (process_timeout), (update_repeat_timeout), (update_timeout):
2005                 Watch for recursive g_source_remove() from within timeouts.
2006
2007 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2008
2009         Bug 410534 – Slow content scrolling, takes 100% of CPU.
2010
2011         Submitting long glyph runs was causing a dramatic (10x) slow down
2012         in the fglrx xserver.
2013
2014         * src/vtedraw.h:
2015         * src/vtexft.c(_vte_xft_draw_text):
2016                 Cap the max glyph run length to 300.
2017
2018 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2019
2020         Bug 412717 – Crash when opening a new tab with window maximized
2021
2022         * src/vte.c (vte_terminal_size_allocate):
2023                 We didn't carefully check the values we were clamping the
2024                 cursor to and ended up setting it to -1...  Don't do that!
2025
2026 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2027
2028         * src/vteaccess.c (vte_terminal_accessible_text_scrolled):
2029                 Consistently guard against the snapshot being NULL.
2030
2031 2007-02-27  Behdad Esfahbod  <behdad@gnome.org>
2032
2033         Released vte-0.15.5.
2034
2035         * NEWS: Updated.
2036
2037         * configure.in: Bumped version to 0.15.5.
2038
2039         * src/Makefile.am: Bumped libtool version to 11:2:2.
2040
2041 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2042
2043         Bug 412562 – Crash in vte_terminal_match_hilite_update
2044
2045         * src/vte.c (vte_terminal_match_check_internal),
2046         (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
2047         (vte_terminal_paste_cb), (vte_terminal_match_hilite_update),
2048         (vte_terminal_copy_cb):
2049                 Fixup a few 64bit-isms, notably format strings and an
2050                 undesired unsigned integer promotion causing this crash.
2051
2052 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2053
2054         Bug 410986 – Fails to build with -z defs
2055
2056         If you link the vtemodule.so to libpython, then programs importing
2057         vte will have the symbols twice in memory: one set from python and
2058         the other from libpython.
2059
2060         * configure.in:
2061         * python/Makefile.am:
2062                 Remove PYTHON_LIBS from linking vtemodule.so.
2063                 Convert unresolved symbol errors into warnings so that
2064                 building with -Wl,-z,defs continues to work. This is a 
2065                 *hack* as it hides real errors if you are updating
2066                 vte.{def,override}.
2067                 
2068 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2069
2070         * src/vtexft.c  (_vte_xft_open_font_for_char),
2071         (_vte_xft_font_for_char), (_vte_xft_compute_char_width),
2072         (_vte_xft_char_width), (_vte_xft_start), (_vte_xft_get_char_width),
2073         (_vte_xft_draw_text):
2074                 Avoid some computations whilst drawing text.
2075
2076 2007-02-26  Behdad Esfahbod  <behdad@gnome.org>
2077
2078         Released vte-0.15.4.
2079
2080         * NEWS: Updated.
2081
2082         * configure.in: Bumped version to 0.15.4.
2083
2084         * src/Makefile.am: Bumped libtool version to 11:1:2.
2085
2086 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2087
2088         Bug 410986 – Fails to build with -z defs
2089
2090         The forgotten half - the python module also fails to link.
2091
2092         * acinclude.m4:
2093         * python/Makefile.am:
2094                 Add PYTHON_LIBS pointing to the customary location and
2095                 remember to include them when compiling vtemodule.so.
2096
2097 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2098
2099         Bug 412361 – Yet another mouse selection regression...
2100         Part 2.
2101
2102         * src/vte.c: (vte_terminal_queue_adjustment_value_changed),
2103         (_vte_terminal_adjust_adjustments_full),
2104         (vte_terminal_scroll_pages), (vte_terminal_autoscroll),
2105         (vte_terminal_size_allocate), (vte_terminal_scroll):
2106                 We implicitly used a bit of sanity checking when setting the
2107                 adjustment value. Ensure the value really is within the
2108                 adjustment range before updating scroll_delta.
2109
2110 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2111
2112         Bug 412361 – Yet another mouse selection regression...
2113         Part 1.
2114
2115         * src/vte.c: (vte_terminal_draw_rows):
2116                 Restore drawing of the selection below the text.
2117
2118 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2119
2120         * src/vte.c: (vte_terminal_class_init), (time_process_incoming),
2121         (process_timeout), (update_repeat_timeout), (update_timeout):
2122                 Update max number of processable bytes each time we call
2123                 vte_terminal_process_incoming().
2124
2125 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2126
2127         * src/vte.c: (vte_terminal_emit_adjustment_changed),
2128         (_vte_terminal_adjust_adjustments_full):
2129                 Refactor the common code.
2130
2131 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2132
2133         Push a couple of NULL checks to the callers so to be able to move them
2134         outside of the inner-most loops.
2135
2136         * src/vte.c: (_vte_row_data_find_charcell), (_vte_invalidate_cell),
2137         (_vte_terminal_adjust_adjustments),
2138         (vte_terminal_get_text_range_maybe_wrapped), (find_start_column),
2139         (find_end_column), (vte_terminal_draw_rows):
2140
2141 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2142
2143         Some applications, such as cat, dump as much data to the terminal as
2144         possible. In these scenarios it is likely that we will read data from
2145         the child much faster than we can process it and the refresh will
2146         stutter.
2147
2148         The ideal solution would be to speed up the data processing so that
2149         this overrun was impossible. However, the approach taken here is to
2150         estimate how much data we can actually process in our time slice and
2151         to stop reading once we have sufficient data.
2152
2153         * src/vte-private.h:
2154         * src/vte.c: (_vte_invalidate_all),
2155         (vte_terminal_emit_contents_changed),
2156         (vte_terminal_match_contents_clear),
2157         (vte_terminal_match_contents_refresh),
2158         (vte_terminal_emit_adjustment_changed),
2159         (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
2160         (vte_terminal_catch_child_exited), (vte_terminal_eof),
2161         (vte_terminal_process_incoming), (vte_terminal_io_read),
2162         (vte_terminal_handle_scroll), (vte_terminal_init),
2163         (vte_terminal_size_allocate), (need_processing), (process_timeout),
2164         (update_repeat_timeout), (update_timeout):
2165         * src/vteseq.c: (vte_sequence_handler_decset_internal):
2166
2167 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2168
2169         Bug 411000 – Orca repeats old text in gnome-terminal
2170
2171         The deferred handling of the window scrolling had the unfortunate
2172         side-effect of postponing the accessibility 'text-scrolled' signal
2173         until after the 'text-inserted' signal. This caused vteaccess to
2174         determine that the whole window had been modified and cause orca to
2175         reread the entire screen.
2176
2177         * src/vte-private.h:
2178         * src/vte.c: (vte_terminal_emit_contents_changed),
2179         (_vte_terminal_queue_contents_changed),
2180         (vte_terminal_emit_cursor_moved),
2181         (vte_terminal_queue_cursor_moved), (vte_terminal_scroll_pages),
2182         (vte_terminal_eof), (vte_terminal_emit_pending_text_signals),
2183         (vte_terminal_process_incoming), (vte_terminal_handle_scroll),
2184         (vte_terminal_size_allocate), (vte_terminal_unrealize),
2185         (vte_terminal_emit_pending_signals):
2186         * src/vteaccess.c: (emit_text_caret_moved),
2187         (emit_text_changed_insert), (emit_text_changed_delete):
2188         * src/vteseq.c: (vte_sequence_handler_decset_internal):
2189                 Restore the order of the ally signals. However, Bug 372777
2190                 remains unresolved.
2191
2192 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2193
2194         * src/vte.c: (vte_terminal_io_read):
2195                 Eeek, correctly compute the buffer length when we no longer
2196                 aim to fill it.
2197
2198 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2199
2200         Use a separate debug flag for the ally interface.
2201
2202         * src/debug.c: (_vte_debug_parse_string):
2203         * src/debug.h:
2204         * src/vteaccess.c:
2205         (vte_terminal_accessible_update_private_data_if_needed),
2206         (vte_terminal_accessible_invalidate_cursor),
2207         (vte_terminal_accessible_finalize),
2208         (vte_terminal_accessible_get_text),
2209         (vte_terminal_accessible_get_text_somewhere),
2210         (vte_terminal_accessible_text_init),
2211         (vte_terminal_accessible_component_init),
2212         (vte_terminal_accessible_action_init),
2213         (vte_terminal_accessible_factory_new):
2214
2215 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2216
2217         * src/vte-private.h:
2218         * src/vte.c: (vte_terminal_io_read):
2219                 And finally clamp the maximum number of bytes transferred in
2220                 a single chunk.
2221
2222 2007-02-24  Chris Wilson  <chris@chris-wilson.co.uk>
2223
2224         * src/vte.c:
2225                 Hint that the compiler should inline
2226                 vte_terminal_determine_colors().
2227
2228 2007-02-24  Chris Wilson  <chris@chris-wilson.co.uk>
2229
2230         cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
2231         cf Bug 410463 – Poor interactive performance with multiple terminals
2232
2233         * src/vte.c: (vte_terminal_io_read):
2234                 Do not loop whilst reading in a backlog of child data - should
2235                 help prevent monopolisation of vte by a single child and make
2236                 vte more responsive to user input on slower computers.
2237
2238 2007-02-24  Chris Wilson  <chris@chris-wilson.co.uk>
2239
2240         Bug 159078 – slow highlight
2241
2242         Do not update the match hilite during a selection-drag.
2243         Record unsuccesful regex matches, so we can quickly determine whether
2244         the cursor is still inside the blank region.
2245
2246         * src/vte-private.h:
2247         * src/vte.c: (vte_terminal_match_check_internal),
2248         (rowcol_inside_match), (vte_terminal_match_check),
2249         (_vte_terminal_set_pointer_visible),
2250         (vte_terminal_match_hilite_clear),
2251         (vte_terminal_match_hilite_show), (vte_terminal_match_hilite_hide),
2252         (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
2253         (vte_terminal_motion_notify), (vte_terminal_button_press),
2254         (vte_terminal_focus_in), (vte_terminal_focus_out),
2255         (vte_terminal_enter), (vte_terminal_leave), (vte_terminal_init),
2256         (vte_terminal_unrealize), (vte_terminal_draw_rows),
2257         (vte_terminal_paint):
2258
2259 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2260
2261         A couple of compiler warnings and avoid unnecessary arithmetic.
2262
2263         * src/vte.c: (_vte_terminal_set_default_attributes),
2264         (find_start_column), (find_end_column),
2265         (vte_terminal_start_selection), (vte_terminal_extend_selection),
2266         (vte_terminal_draw_rows), (vte_terminal_paint):
2267         * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_for_char),
2268         (_vte_xft_char_width), (_vte_xft_unlock_fonts), (_vte_xft_start),
2269         (_vte_xft_clip), (_vte_xft_set_text_font), (_vte_xft_draw_text):
2270
2271 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2272
2273         Bug 411276 – SVN trunk compilation error
2274         Part 2.
2275
2276         * configure.in:
2277                 Check that the header file defines FcStrFree before checking
2278                 for the availability of the function. Complete hack, but
2279                 appears to work.
2280
2281 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2282
2283         Bug 411276 – SVN trunk compilation error
2284
2285         * configure.in:
2286                 Ubuntu Edgy appears to have a broken fontconfig-dev package
2287                 where the function is exported from the library but is missing
2288                 the corresponding prototypes.
2289                 So we reorder the determination of the compilation flags
2290                 before checking for available functions in the hope that the
2291                 tests will then match the results at compile time.
2292
2293 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2294
2295         * src/vte.c: (vte_terminal_io_read):
2296                 Prevent a deadlock on recursively grabbing the gdk_mutex.
2297
2298 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2299
2300         Heuristic to avoid a read when it's likely to just return EAGAIN.
2301
2302         * src/vte-private.h:
2303         * src/vte.c: (vte_terminal_io_read), (process_timeout),
2304         (update_repeat_timeout), (update_timeout):
2305
2306 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2307
2308         Add a new debug flag to monitor draw operations.
2309         Don't issue individual glyphs for is_local_graphic() in the middle of
2310         a run.
2311
2312         * src/debug.c: (_vte_debug_parse_string):
2313         * src/debug.h:
2314         * src/vte.c: (vte_terminal_unichar_is_local_graphic),
2315         (vte_terminal_draw_rows), (vte_terminal_paint):
2316         * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
2317         (_vte_draw_new), (_vte_draw_free), (_vte_draw_get_visual),
2318         (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
2319         (_vte_draw_set_background_color), (_vte_draw_set_background_image),
2320         (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
2321         (_vte_draw_set_text_font), (_vte_draw_get_text_width),
2322         (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
2323         (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
2324         (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
2325         (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
2326         (_vte_draw_set_scroll):
2327         * src/vtedraw.h:
2328         * src/vteft2.c: (_vte_ft2_draw_has_char):
2329         * src/vtegl.c: (_vte_gl_draw_has_char):
2330         * src/vtepango.c: (_vte_pango_draw_has_char):
2331         * src/vtepangox.c: (_vte_pango_x_draw_has_char):
2332         * src/vteskel.c: (_vte_skel_draw_has_char):
2333         * src/vtexft.c: (_vte_xft_draw_has_char):
2334
2335 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2336
2337         * src/vte.c: (vte_terminal_draw_rows):
2338                 Don't break a glyph run for a graphic, issue the draw
2339                 and continue.
2340
2341 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2342
2343         Cache the font metrics on the vte_xft_font, avoids having to remeasure
2344         when opening a new terminal.
2345
2346         * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_set_text_font):
2347
2348 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2349
2350         Share XftFonts between terminal backends and preserve faces from the
2351         previous draw - helps prevents font cache thrashing inside libXft.
2352
2353         * src/vtexft.c: (_vte_xft_font_hash), (_vte_xft_font_equal),
2354         (_vte_xft_font_open), (_vte_xft_font_close),
2355         (_vte_xft_font_for_char), (_vte_xft_unlock_fonts),
2356         (_vte_xft_destroy), (_vte_xft_start), (_vte_xft_end),
2357         (ptr_array_zeroed_new), (_vte_xft_set_text_font),
2358         (_vte_xft_get_char_width), (_vte_xft_draw_text),
2359         (_vte_xft_draw_char):
2360
2361 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2362
2363         Bug 410986 – Fails to build with -z defs
2364         Patch by Loïc Minier.
2365
2366         * src/Makefile.am:
2367                 Add FreeType to the libs.
2368
2369 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2370
2371         * src/vte.c: (vte_terminal_send):
2372                 Return in the face of error as we appear to hit this in the
2373                 wild.
2374
2375 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2376
2377         Bug 410819 – slider not correctly positioned after calling less
2378
2379         * src/vte.c: (_vte_terminal_adjust_adjustments),
2380         (_vte_terminal_adjust_adjustments_full),
2381         (vte_terminal_maybe_scroll_to_top), (vte_terminal_size_allocate),
2382         (vte_terminal_set_scrollback_lines):
2383         * src/vteseq.c: (vte_sequence_handler_decset_internal):
2384                 Fixup a lot of issues with changing the number of scrollback
2385                 lines, such as missing value_changed signals for the
2386                 scrollbar and a couple of missing CLAMPs.
2387
2388 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2389
2390         After adjusting the current profile, the last line gets chomped.
2391
2392         * src/vte.c: (vte_terminal_set_scrollback_lines):
2393
2394 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2395
2396         cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
2397
2398         * src/vte.c: (vte_terminal_scroll),
2399         (vte_terminal_set_scrollback_lines):
2400                 Operate on scroll delta directly as adjustment->value updates
2401                 are not instantaneous and we may have several scroll events
2402                 before the next update.
2403
2404 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2405
2406         Bug 410463 – Poor interactive performance with multiple terminals
2407
2408         * src/vte.c: (vte_terminal_io_read), (process_timeout),
2409         (update_repeat_timeout):
2410                 When multiple terminals are active, poll the IO sources
2411                 from within the process/display timeout (akin to 
2412                 interrupt mitigation).
2413                 Return to normal interrupts when we only have a single active
2414                 terminal - so we don't sacrifice high performance.
2415
2416 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2417
2418         A small bit of callgrinding, avoid the modulus inside
2419         vte_terminal_ensure_cursor() by caching the last row_data.
2420
2421         * src/iso2022.c: (process_cdata):
2422         * src/ring.c: (_vte_ring_new), (_vte_ring_insert),
2423         (_vte_ring_insert_preserve), (_vte_ring_remove):
2424         * src/ring.h:
2425         * src/table.c: (_vte_table_match):
2426         * src/vte.c: (_vte_terminal_ensure_cursor),
2427         (_vte_terminal_insert_char), (vte_terminal_process_incoming):
2428
2429 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2430
2431         Callgrind strikes again...
2432         Inserting a char is a rare operation (especially in the scrolling
2433         benchmark!) so only read the old cell during an insert. This wins
2434         about 5% during a hexdump.
2435
2436         * src/iso2022.c: (_vte_iso2022_find_nextctl),
2437         (_vte_iso2022_fragment_input), (process_cdata):
2438         * src/vte.c: (_vte_terminal_insert_char):
2439         * src/vteseq.c: (vte_sequence_handler_sf):
2440
2441 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2442
2443         RedHat Bug 113195: First line displayed incorrectly if prompt changes background color
2444
2445         e.g. PS1='\e[46m[\u@\h:\w]\e[m \e[45m'
2446         The issue is when we insert a char on a new row and the background is
2447         not the default, we fill the entire row with the *current* colour.
2448         This behaviour is incorrect, and the fix is to fill to the end of the
2449         line on a carriage return.
2450
2451         * src/vte-private.h:
2452         * src/vte.c: (_vte_terminal_ensure_cursor),
2453         (_vte_terminal_insert_char), (vte_terminal_process_incoming),
2454         (vte_terminal_send):
2455         * src/vteseq.c: (vte_sequence_handler_ce),
2456         (vte_sequence_handler_cr), (vte_sequence_handler_cs),
2457         (vte_sequence_handler_cS),
2458         (vte_sequence_handler_cursor_lower_left),
2459         (vte_sequence_handler_dc), (vte_sequence_handler_ic),
2460         (vte_sequence_handler_sf):
2461
2462 2007-02-20  Chris Wilson  <chris@chris-wilson.co.uk>
2463
2464          RedHat Bug 123845: gnome-terminal not parsing cursor position escape sequence properly
2465
2466         * src/caps.c:
2467         * src/vteseq.c: (vte_sequence_handler_cm):
2468                 Add 'ESC [ Pn H' to cursor-position and provide default
2469                 values.
2470
2471 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2472
2473         Bug 409055 – Terminal stays blank
2474
2475         Due to GTK+ coallescing of XExposeEvents it was possible for our
2476         GdkExposeEvent to arrive before the GdkVisibilityEvent associated with
2477         the mapping of our toplevel and so we discarded the event as we
2478         believed we were still unviewable.
2479
2480         * src/vte.c: (_vte_invalidate_cells), (vte_terminal_expose),
2481         (reset_update_regions):
2482                 Assume that all GdkExposeEvents have been checked for
2483                 suitability before delivery. We know this true for locally
2484                 generated expose events which are extensively checked during
2485                 invalidation, and we presume that X will not generate expose
2486                 events on unmapped or otherwise unviewable windows.
2487
2488 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2489
2490         * src/vte.c: (_vte_terminal_adjust_adjustments),
2491         (_vte_terminal_adjust_adjustments_full):
2492                 Dead code elimination.
2493
2494 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2495
2496         * perf/random.sh:
2497                 A simple script to dump a fixed amount of random data to the
2498                 terminal.
2499
2500 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2501
2502         A few more trivial incremental improvements.
2503
2504         * src/Makefile.am:
2505         * src/iso2022.c: (_vte_iso2022_map_get):
2506                 Switch to a VteTree.
2507         * src/vte.c: (_vte_terminal_update_insert_delta),
2508         (_vte_terminal_insert_char):
2509                 No need to ensure the cursor when scrolling, only before
2510                 insertions.
2511         * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
2512         (_vte_xft_font_for_char), (_vte_xft_end):
2513                 Lock the face over the entire expose.
2514
2515 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2516
2517         Improve handling of parallel 'cat /dev/urandom' - notably a crasher
2518         in the table matcher, repeated g_getenv processing and wasted time
2519         in g_tree_lookup.
2520
2521         * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
2522         (_vte_iso2022_map_init), (_vte_iso2022_map_get),
2523         (process_8_bit_sequence), (process_cdata),
2524         (_vte_iso2022_process_single), (_vte_iso2022_process):
2525         * src/table.c: (_vte_table_match):
2526         * src/vte-private.h:
2527
2528 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2529
2530         * src/vte.c: (update_timeout):
2531                 In conjunction with the previous fix, since the terminal
2532                 can be removed from the active list by
2533                 vte_terminal_process_incoming() we need to be careful whilst
2534                 iterating along the active list.
2535
2536 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2537
2538         <fcrozat> ickle: hi.. our kernel hacker just found a nice reproducible
2539                 crash in vte :)
2540         <ickle> oh, joy
2541         <fcrozat> very easy to reproduce
2542                 cat /dev/urandom
2543                 wait 2 or 3S
2544                 then press Ctrl-Shift-T to open a new tab
2545                 => crash
2546
2547         * src/vte.c: (process_timeout), (update_repeat_timeout):
2548                 vte_terminal_process_incoming() can trigger a terminal reset
2549                 which will remove the terminal from the active list, and then
2550                 we attempt to remove it again after handling the incoming
2551                 data. The fix is simple - don't delete the link if the the
2552                 terminal is no longer active.
2553
2554 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2555
2556         As noticed on bug 409055, we do not receive a visibility-notify
2557         event when we switch workspaces (or even when the window is iconified).
2558         The workaround for this is to watch for our toplevel being unmapped
2559         and set the fully-obscured flag.
2560
2561         * src/vte.c: (vte_terminal_configure_toplevel),
2562         (vte_terminal_unmap_toplevel), (vte_terminal_hierarchy_changed),
2563         (vte_terminal_set_visibility), (vte_terminal_visibility_notify):
2564
2565 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2566
2567         * src/vte.c: (visibility_state_str),
2568         (vte_terminal_visibility_notify), (vte_terminal_init),
2569         (vte_terminal_realize):
2570                 Add the visibility state to the debug output.
2571
2572 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2573
2574         * configure.in:
2575                 Add the configuration details to config.log as well.
2576
2577 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2578
2579         Bug 409241 – gnome-terminal crashed with SIGSEGV in vte_terminal_draw_graphic()
2580
2581         * src/vte.c: (vte_terminal_paint):
2582                 Lookup fore/back colours before attempting to draw the graphic
2583                 character behind the unfocused cursor.
2584
2585 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2586
2587         * src/vte.c: (vte_terminal_visibility_notify):
2588                 Add VTE_DEBUG_EVENT info.
2589
2590 2007-02-16  Chris Wilson  <chris@chris-wilson.co.uk>
2591
2592         Bug 407945 – "GNOME" Terminal" regression after "vte" update when using "csh"
2593
2594         When passing multiple versions of the same environment
2595         variable to execve (i.e g_spawn) the result is undefined.
2596         So we solve the ambiguity by using the application passed env to
2597         override values from the current environment.
2598         
2599         * src/pty.c: (collect_variables), (merge_environ),
2600         (_vte_pty_run_on_pty):
2601
2602 2007-02-16  Chris Wilson  <chris@chris-wilson.co.uk>
2603
2604         Bug 408536 – trouble compiling vte 0.15.3
2605
2606         * configure.in:
2607         * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
2608                 Check for availability of FcStrFree() - only used for
2609                 debugging purposes so we can live without it.
2610
2611 2007-02-15  Chris Wilson  <chris@chris-wilson.co.uk>
2612
2613         Guard against a missing default number of rows or columns
2614         inside the termcap.
2615
2616         * src/vte-private.h:
2617         * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
2618
2619 2007-02-15  Chris Wilson  <chris@chris-wilson.co.uk>
2620
2621         Bug 408040 – vte automagic hyperlinks
2622         Patch by Gilles Dartiguelongue.
2623
2624         * src/vteapp.c:
2625                 Correct the typo in the nntp protocol matcher.
2626
2627 2007-02-14  Chris Wilson  <chris@chris-wilson.co.uk>
2628
2629         Bug 407839 – Use of environ breaks build on Solaris
2630         Original patch by Damien Carbery.
2631
2632         * src/pty.c:
2633                 extern char **environ - glibc was 'conveniently' declaring
2634                 it for us...
2635
2636 2007-02-13  Chris Wilson  <chris@chris-wilson.co.uk>
2637
2638         uws reported that scrolling inside screen with a status line was
2639         broken. Indeed any scrolling inside an alternative screen was broken,
2640         e.g. plain vim would not always update the topmost line. The issue was
2641         the interaction with the deferred value-changed signal emission and
2642         failing to correctly maintain the current scroll_delta. The fix is
2643         that we always now apply changes to the scroll_delta and swap
2644         scroll_delta with adjustment->value before the deferred signal
2645         emission to correctly trigger the handle_scroll().
2646
2647         * src/vte-private.h:
2648         * src/vte.c: (_vte_invalidate_cells),
2649         (vte_terminal_emit_adjustment_changed),
2650         (vte_terminal_queue_adjustment_value_changed),
2651         (_vte_terminal_adjust_adjustments),
2652         (_vte_terminal_adjust_adjustments_full),
2653         (vte_terminal_maybe_scroll_to_bottom),
2654         (vte_terminal_process_incoming), (vte_terminal_extend_selection),
2655         (vte_terminal_handle_scroll), (vte_terminal_set_scrollback_lines):
2656         * src/vteseq.c: (vte_sequence_handler_sf):
2657
2658 2007-02-13  Chris Wilson  <chris@chris-wilson.co.uk>
2659
2660         Bug 407358 – regression in mouse selection
2661
2662         * src/vte.c: (vte_terminal_motion_notify):
2663                 When outside the terminal we used an uninitialised variable to
2664                 determine the mouse tracking mode.
2665
2666 2007-02-12  Behdad Esfahbod  <behdad@gnome.org>
2667
2668         Released vte-0.15.3.
2669
2670         * NEWS: Updated.
2671
2672         * configure.in: Bumped version to 0.15.3.
2673
2674         * src/Makefile.am: Bumped libtool version to 11:0:2.
2675
2676 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
2677
2678         * src/vte.c: (vte_terminal_extend_selection),
2679         (vte_terminal_motion_notify):
2680                 Restore autoscroll behaviour.
2681
2682 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
2683
2684         * src/vte.c: (vte_terminal_start_selection):
2685                 Invalidate the selected region when starting in
2686                 select-word or select-line mode.
2687
2688 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
2689
2690         Restore double-click to select word behaviour, broken by r1671 as
2691         the second click occurs in the same place as the first (obviously!).
2692
2693         * src/vte.c: (vte_terminal_extend_selection),
2694         (vte_terminal_autoscroll), (vte_terminal_motion_notify),
2695         (vte_terminal_button_press):
2696
2697 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
2698
2699         Bug 407091 – vte_terminal_fork_command() env argument changed semantic in 0.15.2
2700         Original patch by Michael Vogt.
2701
2702         * src/pty.c: (_vte_pty_run_on_pty):
2703                 Copy the current environment into the child's.
2704
2705 2007-02-11  Chris Wilson  <chris@chris-wilson.co.uk>
2706
2707         Bug 323393 – Hyper-sensitive selection
2708
2709         * src/vte.c: (vte_terminal_extend_selection):
2710                 Don't start (or update) the selection until you
2711                 move off the current cell (character).
2712
2713 2007-02-11  Chris Wilson  <chris@chris-wilson.co.uk>
2714
2715         Bug 406763 – Selecting double-wide characters
2716
2717         * src/vte.c: (start_column), (end_column),
2718         (vte_terminal_start_selection), (vte_terminal_extend_selection),
2719         (vte_terminal_draw_rows):
2720                 Extend selection to include fragment cells i.e. double-wide
2721                 characters.
2722
2723 2007-02-10  Chris Wilson  <chris@chris-wilson.co.uk>
2724
2725         Have a separate adjust_adjustments for when we know that the page
2726         size and step lengths may have changed.
2727
2728         * src/vte.c: (_vte_terminal_adjust_adjustments),
2729         (_vte_terminal_adjust_adjustments_full),
2730         (vte_terminal_set_scrollback_lines), (vte_terminal_reset):
2731
2732 2007-02-10  Chris Wilson  <chris@chris-wilson.co.uk>
2733
2734         * src/vte.c: (_vte_terminal_adjust_adjustments),
2735         (vte_terminal_size_allocate), (vte_terminal_set_scrollback_lines):
2736                 Prevent the display of garbage after resizing and switching
2737                 between alternate screens.
2738                 However, instead of displaying garbage after the cursor, we
2739                 lose some data above the current scroll delta, should we have
2740                 a full history.  Bizarre.
2741
2742 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
2743
2744         * src/vte.c: (_vte_terminal_adjust_adjustments):
2745                 Do not allow to scroll past the last line after reducing
2746                 scrollback lines.
2747         * src/vtexft.c: (_vte_xft_set_text_font):
2748                 Ensure a fallback height is set.
2749
2750 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
2751
2752         * src/vte.c: (vte_terminal_get_text_range_maybe_wrapped):
2753                 Reuse VteRowData whilst in the row.
2754
2755 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
2756
2757         Rework to reduce number of times mutex is taken and shorten the hold.
2758
2759         * src/vte.c: (vte_terminal_queue_adjustment_changed),
2760         (vte_terminal_queue_adjustment_value_changed),
2761         (vte_terminal_io_read), (vte_terminal_paint),
2762         (vte_terminal_add_process_timeout), (vte_terminal_is_processing),
2763         (vte_terminal_start_processing):
2764
2765 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
2766
2767         A number of small bug fixes...
2768         - do not override the user setting of scrollback lines with the
2769         terminal size.
2770         - only set the current screen rather than both and so reset the
2771         scrollback lines when we switch between normal and alternate.
2772         - do not invalidate inside set_scrollback lines as setting does not
2773         actually modify the on-screen contents.
2774         - push the scroll-adjustment to the post-processing emission.
2775         - queue timeouts on value change (should be a no-op)
2776         - reorder emission so that scrolling occurs before invalidating the
2777         window (ie so that the scroll happens this cycle, not next).
2778
2779         Still unsolved: the clamping of the cursor when switching between
2780         alternate screens.
2781
2782         * src/vte-private.h:
2783         * src/vte.c: (vte_terminal_emit_adjustment_changed),
2784         (vte_terminal_queue_adjustment_changed),
2785         (vte_terminal_queue_adjustment_value_changed),
2786         (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
2787         (vte_terminal_maybe_scroll_to_top),
2788         (vte_terminal_maybe_scroll_to_bottom),
2789         (_vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta),
2790         (vte_terminal_process_incoming), (vte_terminal_extend_selection),
2791         (vte_terminal_autoscroll), (vte_terminal_handle_scroll),
2792         (vte_terminal_size_allocate), (vte_terminal_scroll),
2793         (vte_terminal_background_update),
2794         (vte_terminal_queue_background_update),
2795         (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
2796         (add_process_timeout), (vte_terminal_add_process_timeout),
2797         (vte_terminal_start_processing), (update_repeat_timeout),
2798         (update_timeout):
2799         * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
2800         (vte_sequence_handler_decset_internal), (vte_sequence_handler_al),
2801         (vte_sequence_handler_dl), (vte_sequence_handler_sf),
2802         (vte_sequence_handler_sr), (vte_sequence_handler_clear_screen),
2803         (vte_sequence_handler_cursor_character_absolute),
2804         (vte_sequence_handler_insert_lines),
2805         (vte_sequence_handler_delete_lines),
2806         (vte_sequence_handler_screen_alignment_test):
2807
2808 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
2809
2810         * src/vteapp.c: (main): whitespace
2811
2812 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
2813
2814         Bug 363597 – Scrollback in profile dialog doesn't work
2815
2816         * src/vte-private.h:
2817         * src/vte.c: (vte_terminal_init),
2818                 Only use SCROLLBACK_MIN during initialisation, so rename it
2819                 to SCROLLBACK_INIT.
2820         (vte_terminal_set_scrollback_lines):
2821                 Remove MAX(lines, SCROLLBACK_MIN) and update code comments
2822                 to reduce confusion.
2823
2824 2007-02-08  Mariano Suárez-Alvarez  <mariano@gnome.org>
2825
2826         * src/vteapp.c(main): do something useful with --geometry.
2827
2828 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
2829
2830         Use gtk_widget_get_(screen|display) which will itself return a default
2831         if not currently attached.
2832
2833         * src/vtedraw.c: (_vte_draw_get_colormap):
2834         * src/vtefc.c: (_vte_fc_defaults_from_gtk):
2835         * src/vtegl.c: (_vte_gl_check), (_vte_gl_create),
2836         (_vte_gl_destroy), (_vte_gl_start), (_vte_gl_end), (_vte_gl_clear),
2837         (_vte_gl_draw_text), (_vte_gl_rectangle):
2838         * src/vterdb.c: (_vte_rdb_get):
2839         * src/vteseq.c: (vte_sequence_handler_window_manipulation):
2840
2841 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
2842
2843         Some more callgrinding - kill a little bit of overhead.
2844
2845         * src/iso2022.c: (_vte_iso2022_sequence_length),
2846         (_vte_iso2022_fragment_input), (process_control):
2847         * src/matcher.c: (_vte_matcher_free_params_array):
2848         * src/vteconv.c: (_vte_conv):
2849
2850 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
2851
2852         Actually return whether or not we found the char in
2853         _vte_xft_font_for_char - saves having to double check afterwards!
2854
2855         * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_set_text_font),
2856         (_vte_xft_draw_text):
2857
2858 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
2859
2860         As spotted perusing roxterm, we fail to redraw after changing the text
2861         colour.
2862
2863         * src/vte.c: (vte_terminal_set_color_internal):
2864                 Remember to invalidate all!
2865
2866 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
2867
2868         * src/vte.c: (vte_terminal_match_check_internal):
2869                 Scan for newlines before and after the current row
2870                 to find the entire line in case of soft-wrapping.
2871
2872 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
2873
2874         Bug 345344 – Pattern matching is inefficient
2875         Bug 324246 – Performance degredation with large numbers of highlighted addresses/URLs
2876
2877         * src/vte.c: (vte_terminal_match_check_internal):
2878                 Trim the searched string down to the row containing the
2879                 pointer. During a mutt session this drops the time consumed by
2880                 regexec from ~30% to ~2%.
2881                 Note: multi-line regexes are now unsupported!
2882
2883 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
2884
2885         * src/vteseq.c: (_vte_sequence_get_handler):
2886                 Avoid the strlen when possible.
2887
2888 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
2889
2890         Some cleanups and a bug...
2891
2892         vte_terminal_match_hilite() compared the current cell to the last
2893         mouse position without a floor().
2894
2895         * src/vte.c: (vte_terminal_process_incoming),
2896         (vte_terminal_match_hilite), (vte_terminal_select_all),
2897         (vte_terminal_select_none), (vte_terminal_motion_notify),
2898         (vte_terminal_button_press):
2899
2900 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2901
2902         Bug 86119 – "select all" feature
2903         Original patch by Simone Gotti.
2904
2905         * src/vte.c: (vte_terminal_select_all), (vte_terminal_select_none):
2906         * src/vte.h:
2907                 Add 2 new API entry points to select the entire contents
2908                 and clear the current selection.
2909
2910 2007-02-06  Chris Wilson <chris@chris-wilson.co.uk>
2911
2912         Bug 342059 – ASCII escape sequences don't work as expected
2913         Correction by Mariano Suárez-Alvarez.
2914
2915         * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
2916                 OBO on the parameter.
2917
2918 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2919
2920         Bug 342059 – ASCII escape sequences don't work as expected
2921         Patch by Mariano Suárez-Alvarez.
2922
2923         * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
2924                 Provide a default value.
2925
2926 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2927
2928         And finally as noted on bug 324246#c8 hide the hilite when the mouse
2929         leaves the terminal (show again when it enters and let motion-notify
2930         correct it later).
2931
2932         * src/vte.c: (vte_terminal_enter), (vte_terminal_leave),
2933         (vte_terminal_realize), (vte_terminal_class_init):
2934
2935 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2936
2937         As noted on bug 324246#c8, hide the hilite when the focus disappears.
2938         On focus restore the match for the last mouse coordinates and let
2939         motion-notify take care of the rest.
2940
2941         * src/vte.c: (vte_terminal_match_hilite_update),
2942         (vte_terminal_match_hilite), (vte_terminal_focus_in):
2943
2944 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2945
2946         Convert the exposed rectangles to cells and remerge them.
2947
2948         * src/vte.c: (vte_terminal_expand_region),
2949         (vte_terminal_paint_area), (vte_terminal_paint):
2950
2951 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2952
2953         As noted on Bug 401052#c13, vte fails to completely clear the cell's
2954         previous contents.
2955
2956         * src/vte.c: (_vte_invalidate_cells):
2957                 Grow the invalidate region by a single pixel to accomodate
2958                 antialiased pseudo-bold characters.
2959
2960 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2961
2962         Move status_line_changed to post-processing emission.
2963
2964         * src/vte-private.h:
2965         * src/vte.c: (_vte_terminal_insert_char), (vte_terminal_reset),
2966         (vte_terminal_emit_pending_signals):
2967         * src/vteseq.c: (vte_sequence_handler_ts):
2968
2969 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2970
2971         Clamp down on needless invalidates during selection.
2972
2973         As commented on in Bug 401052#c10
2974
2975         * src/vte.c: (_vte_invalidate_region), (vte_terminal_deselect_all),
2976         (vte_terminal_match_hilite_clear), (vte_terminal_start_selection),
2977         (vte_terminal_extend_selection):
2978
2979 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2980
2981         * src/vte.c: (vte_terminal_draw_rows):
2982                 Don't needlessly break the text run on a space if we are
2983                 not drawing cell attributes.
2984
2985 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
2986
2987         * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht):
2988                 One more G_UNLIKELY
2989         * src/vte.c: (vte_terminal_match_hilite),
2990         (vte_terminal_motion_notify):
2991                 Avoid expensive hiliting if the pointer is not in the window.
2992         * src/vteregex.c: (_vte_regex_exec):
2993                 Prefer g_new(x,n) over g_malloc(sizeof(x)*n)
2994
2995 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
2996
2997         Bug 404757 – URL matching doesn't work with PCRE
2998
2999         * configure.in:
3000                 mention the inconsistency in the help string and default to no.
3001
3002 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3003
3004         * src/vte.c: (vte_terminal_draw_rows):
3005                 Don't draw cell attributes across spaces.
3006
3007 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3008
3009         * src/vte.c: (_vte_terminal_insert_char):
3010                 A couple more G_LIKELYs.
3011
3012 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3013
3014         Bug 403028 – decset mode 12 = blinking cursor
3015
3016         * src/vteseq.c: (vte_sequence_handler_decset_internal):
3017                 Following convention, disallow the application's control
3018                 over the blinking cursor in favour of the user's setting.
3019
3020 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3021
3022         Some more small callgrind tweaks - well into the law of diminishing
3023         returns.
3024
3025         * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht),
3026         (_vte_iso2022_is_ambiguous), (process_8_bit_sequence),
3027         (process_cdata), (_vte_iso2022_unichar_width):
3028         * src/matcher.c: (_vte_matcher_free_params_array):
3029         * src/vte.c: (vte_terminal_process_incoming):
3030
3031 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3032
3033         Beware the trivial change. Handle reuse of GValueArray correctly.
3034
3035         * src/matcher.c: (_vte_matcher_match):
3036         * src/table.c: (_vte_table_match):
3037         * src/trie.c: (_vte_trie_match):
3038         * src/vte.c: (vte_terminal_process_incoming):
3039
3040 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3041
3042         * src/table.c: (_vte_table_match):
3043                 And kill the leak as vte_table_match erroneously cleared
3044                 its output arguments.
3045
3046 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3047
3048         The continual reallocation of GValueArray is the last trivially
3049         avoidable g_realloc.
3050
3051         * src/interpret.c: (main):
3052         * src/matcher.c: (_vte_matcher_create), (_vte_matcher_destroy),
3053         (_vte_matcher_match), (_vte_matcher_free_params_array):
3054         * src/matcher.h:
3055         * src/table.c: (_vte_table_extract_string):
3056         * src/trie.c: (_vte_trie_matchx), (_vte_trie_match), (main):
3057         * src/vte.c: (vte_terminal_process_incoming):
3058
3059 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3060
3061         * src/ring.c: (_vte_ring_insert):
3062                 Missed an important compiler warning.
3063
3064 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3065
3066         cf Bug 342338 – suffers from memory fragmentation
3067
3068         Reuse the last VteRowData instead of immediately freeing it. Avoids
3069         recreating and *regrowing* a new GArray on the heap.
3070
3071         In the simple scrolling benchmarks this can boost performance by as
3072         much as 10%!
3073
3074         * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
3075         (_vte_ring_remove), (_vte_ring_append):
3076         * src/ring.h:
3077         * src/vte-private.h:
3078         * src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor),
3079         (_vte_terminal_insert_char), (vte_terminal_reset_rowdata):
3080         * src/vteseq.c: (vte_insert_line_internal),
3081         (vte_sequence_handler_scroll_up_or_down),
3082         (vte_sequence_handler_cd), (vte_sequence_handler_sf),
3083         (vte_sequence_handler_clear_screen),
3084         (vte_sequence_handler_screen_alignment_test):
3085
3086 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3087
3088         A few more compiler warnings.
3089
3090         * src/buffer.c: (_vte_buffer_peek_gstring):
3091         * src/iso2022.c: (process_control):
3092         * src/vteft2.c: (_vte_ft2_set_text_font):
3093         * src/vteseq.c: (vte_sequence_handler_set_title_internal):
3094         * src/vtetc.c: (_vte_termcap_parse_file):
3095
3096 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3097
3098         Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
3099
3100         * src/vtedraw.h:
3101         * src/vteglyph.c: (_vte_glyph_cache_set_font_description):
3102         * src/vtepango.c: (_vte_pango_set_text_font):
3103         * src/vtepangox.c: (_vte_pango_x_set_text_font):
3104         * src/vtexft.c: (_vte_xft_set_text_font):
3105                 Detect a change in font between wide-chars and recheck for a
3106                 fixed-width estimate.
3107
3108 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3109
3110         Micro-opts.
3111
3112         * src/table.c: (_vte_table_match):
3113                 No need set to NULL.
3114         * src/vte.c: (_vte_terminal_ensure_cursor):
3115                 If we have added some rows, the last is the current.
3116
3117 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3118
3119         Move window/icon title changed to the post-processing emission - helps
3120         with the artificial benchmark of replaying a recorded jhbuild script.
3121
3122         * src/vte-private.h:
3123         * src/vte.c: (vte_terminal_finalize),
3124         (vte_terminal_emit_icon_title_changed),
3125         (vte_terminal_emit_window_title_changed),
3126         (vte_terminal_emit_pending_signals):
3127         * src/vteseq.c: (vte_sequence_handler_set_title_internal):
3128
3129 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3130
3131         Broke clear-to-end-of-line by lowering the number of cells appended,
3132         instead of the number of cells invalidated.
3133
3134         * src/vte.c: (vte_terminal_draw_rows):
3135         * src/vteseq.c: (vte_sequence_handler_ce):
3136
3137 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3138
3139         cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on unaccelerated X server
3140
3141         Another chunk of performance improvements - the majority focusing on
3142         reducing the amount of work down per interrupt (input data from
3143         child).
3144
3145         To handle reads without addition copies VTE_INPUT_CHUNK_SIZE chunks
3146         are allocated on demand and filled from read with no further copy -
3147         previously the read was into a local buffer and then immediately
3148         copied into a _vte_buffer.
3149         _vte_iso2022_process() is then adjusted to use a ptr+length, rather
3150         than a _vte_buffer and is called for every input chunk (taking special
3151         care over the boundary cases).
3152
3153         * src/interpret.c: (main):
3154         * src/iso2022.c: (_vte_iso2022_fragment_input),
3155         (process_8_bit_sequence), (process_cdata), (_vte_iso2022_process):
3156         * src/iso2022.h:
3157         * src/vte-private.h:
3158         * src/vte.c: (get_chunk), (release_chunk), (prune_chunks),
3159         (_vte_incoming_chunks_release), (_vte_incoming_chunks_length),
3160         (_vte_incoming_chunks_count), (_vte_incoming_chunks_reverse),
3161         (vte_terminal_match_check_internal), (_vte_terminal_ensure_cursor),
3162         (vte_terminal_set_colors), (_vte_terminal_insert_char),
3163         (vte_terminal_catch_child_exited), (vte_terminal_eof),
3164         (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
3165         (vte_terminal_io_read), (vte_terminal_feed), (vte_terminal_send),
3166         (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
3167         (remove_from_active_list), (need_processing), (update_regions),
3168         (update_repeat_timeout):
3169         * src/vte.h:
3170         * src/vteseq.c: (vte_sequence_handler_cb),
3171         (vte_sequence_handler_ce), (vte_sequence_handler_ec):
3172
3173 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3174
3175         Store whether the codeset is ambiguous in a state variable,
3176         rather than recomputing the ambiguous width every processing loop.
3177
3178         * src/iso2022.c: (_vte_iso2022_is_ambiguous),
3179         (_vte_iso2022_state_new), (_vte_iso2022_find_nextctl):
3180
3181 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3182
3183         * src/vtexft.c: (_vte_xft_create), (_vte_xft_destroy):
3184                 Remove zero-initialisers after g_slice_new0().
3185         * src/vtexft.c :(_vte_xft_set_text_font):
3186                 Print out the width range.
3187
3188 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3189
3190         * configure.in:
3191                 Missing space between -Wflags.
3192
3193 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3194
3195         Eliminate the temporary g_sliced parameter list,
3196         in favour of an on-stack list.
3197
3198         * src/table.c: (_vte_table_arginfo_head_init),
3199         (_vte_table_arginfo_alloc), (_vte_table_arginfo_head_revert),
3200         (_vte_table_arginfo_head_reverse),
3201         (_vte_table_arginfo_head_finalize), (_vte_table_addi),
3202         (_vte_table_matchi), (_vte_table_extract_string),
3203         (_vte_table_match):
3204
3205 2007-02-02  Chris Wilson  <chris@chris-wilson.co.uk>
3206
3207         * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
3208                 Dump the chosen fonts to VTE_DEBUG_MISC.
3209         * src/vteft2.c: (_vte_ft2_set_text_font):
3210                 Print out the font metrics ala vtexft.c
3211
3212 2007-02-02  Chris Wilson  <chris@chris-wilson.co.uk>
3213
3214         Bug 322241 – Please switch to pkg-config to check for freetype
3215
3216         * configure.in:
3217                 Prefer to use the freetype2.pc if available.
3218
3219 2007-02-02  Chris Wilson  <chris@chris-wilson.co.uk>
3220
3221         Bug 322240 – Usage of pkg-config privates header
3222
3223         * vte.pc.in:
3224                 Move @FT2_LIBS@ to Libs.private.
3225
3226 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3227
3228         cf Bug 403275 – crash in Terminal: I was typing reset on th...
3229
3230         Not the crash, just a freeze found whilst trying to reproduce the
3231         bug on trunk.
3232
3233         * src/vte.c: (remove_from_active_list):
3234                 Don't remove the terminal from the active list if it still
3235                 has pending redraws.
3236         
3237         * src/vte.c: (process_timeout), (update_timeout):
3238                 Reorder the loop to remove the terminal from the active list
3239                 if it no longer needs processing.
3240
3241 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3242
3243         * perf/scroll.vim:
3244                 Extract the bits the test needs out of debian.vim.
3245
3246 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3247
3248         As spotted on bug 399617c8, we convert an array of unichars to a
3249         string and then iterate over the string interpreting bytes as
3250         unichars.
3251
3252         * src/table.c: (_vte_table_extract_numbers):
3253                 Dispense with the temporary string and process the unichar
3254                 array directly.
3255
3256 2007-02-01  Chris Wilson <chris@chris-wilson.co.uk>
3257
3258         Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
3259
3260         * src/vtexft.c: (_vte_xft_clip):
3261                 Precompute clip offsets.
3262
3263 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3264
3265         Bug 382245 – __PyGtk_API multiply defined in python module
3266
3267         * configure.in:
3268                 Add -fno-common to MAYBE_WARN in order to catch future
3269                 errors of this type.
3270         * python/vte.override:
3271                 Define PYGTK_NO_IMPORT.
3272
3273 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3274
3275         Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
3276
3277         Patch originally by Michele Baldessari.
3278
3279         * src/vteseq.c: (vte_sequence_handler_cs):
3280                 Move the cursor to (0,0) rather than clamping the cursor to 
3281                 be inside the scroll region.
3282
3283 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3284
3285         In a few places the contents of a GValue were being used without
3286         checking that they were of the expected type.
3287
3288         cf Bug 117945 which mentions stack corruption inside
3289         vte_sequence_handler_delete_lines() - one of the corrected instances.
3290
3291         * src/vteseq.c: (vte_sequence_handler_al),
3292         (vte_sequence_handler_cs), (vte_sequence_handler_cS),
3293         (vte_sequence_handler_dl),
3294         (vte_sequence_handler_character_attributes),
3295         (vte_sequence_handler_insert_lines),
3296         (vte_sequence_handler_delete_lines),
3297         (vte_sequence_handler_device_status_report),
3298         (vte_sequence_handler_dec_device_status_report):
3299                 Check that the GValue holds a long before dereference.
3300
3301 2007-01-31  Chris Wilson <chris@chris-wilson.co.uk>
3302
3303         Back to the old-style io loop as _vte_buffer_append() is too slow - on
3304         a slow system the read can fill before the data is copied (even more
3305         apparent under valgrind).
3306
3307         * src/vte-private.h:
3308         * src/vte.c: (vte_terminal_io_read):
3309
3310 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3311
3312         Use the display stashed inside the font and not the default display!
3313
3314         * src/vtexft.c: (_vte_xft_char_exists), (_vte_xft_text_extents),
3315         (_vte_xft_font_open), (_vte_xft_font_close),
3316         (_vte_xft_font_for_char), (_vte_xft_draw_text):
3317
3318 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3319
3320         A mixed bag of cleanups.
3321
3322         * configure.in:
3323         * src/pty.c: (_vte_pty_set_utf8):
3324                 Test for existence of tc[sg]etattr.
3325         * src/vte-private.h:
3326         * src/vte.c: (vte_terminal_emit_adjustment_changed),
3327         (vte_terminal_queue_adjustment_changed),
3328         (vte_terminal_set_color_internal), (vte_terminal_handle_sequence),
3329         (_vte_terminal_enable_input_source), (vte_terminal_io_read),
3330         (vte_terminal_init), (vte_terminal_unrealize),
3331         (vte_terminal_finalize), (vte_terminal_background_update),
3332         (vte_terminal_queue_background_update),
3333         (vte_terminal_emit_pending_signals), (process_timeout),
3334         (update_repeat_timeout), (update_timeout):
3335                 Move idle signal emission to display handlers.
3336         * src/vtedraw.h:
3337                 Add '&' to the single width characters.
3338         * src/vteseq.c: (_vte_sequence_get_handler):
3339         * src/vteseq.h:
3340                 Drop the extraneous GQuark parameter.
3341         * src/vtexft.c: (_vte_xft_set_text_font):
3342                 Avoid use of strlen for a compile-time fixed length string.
3343
3344 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3345
3346         Bug 147784 – cursor unvisible under mouse highlight
3347
3348         Original patch by Chris Health
3349
3350         * src/vte.c: (vte_terminal_paint):
3351                 Reverse cursor color if it is in the selected region and draw
3352                 it as an outline.
3353
3354 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3355
3356         Bug 368894 – crash in Terminal: I started gnome-terminal...
3357
3358         * src/vtebg.c: (vte_bg_cache_search), (vte_bg_get_pixmap),
3359         (vte_bg_get_pixbuf):
3360                 When retrieving a cached pixmap check that the visual
3361                 matches the current request.
3362
3363 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3364
3365         Use gdk_error_trap_{push,pop} around raw Xft calls - about a
3366         path outside of vte_draw_{begin,end}.
3367
3368         * src/vtexft.c: (_vte_xft_set_text_font):
3369
3370 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3371
3372         Use gdk_error_trap_{push,pop} around raw X11 and Xft calls.
3373         cf Bug 368894.
3374
3375         * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_start),
3376         (_vte_xft_end):
3377
3378 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3379
3380         Use gperf to calculate a more optimal vte_sequence_get_handler().
3381         This reduces vte_sequence_get_handler() from ~13% of the runtime
3382         during 'seq 1 1e6' to ~.5% (cumulative).
3383
3384         * src/Makefile.am:
3385         * src/vteseq-2.c: (vteseq_2_hash), (vteseq_2_lookup):
3386         * src/vteseq-2.gperf:
3387         * src/vteseq-n.c: (vteseq_n_hash), (vteseq_n_lookup):
3388         * src/vteseq-n.gperf:
3389         * src/vteseq.c: (_vte_sequence_get_handler):
3390
3391 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3392
3393         Rudimentary vim scrolling benchmark.
3394
3395         * perf/Makefile.am:
3396         * perf/UTF-8-demo.txt:
3397         * perf/scroll.vim:
3398         * perf/vim.sh:
3399
3400 2007-01-30  Chris Wilson  <chris@chris-wilson.co.uk>
3401
3402         Bug 402329 – Rendering problem with underlines and cursor
3403
3404         * src/vte.c: (vte_terminal_paint):
3405                 Check hilite state when redrawing character under cursor.
3406
3407 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3408
3409         * src/vte-private.h:
3410         * src/vte.c: (vte_terminal_io_read):
3411                 Clean up the read IO loop.
3412
3413 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3414
3415         NULL return from pcre_study() does not necessarily mean an error
3416         occurred.
3417
3418         * src/vteregex.c: (_vte_regex_compile), (_vte_regex_exec):
3419
3420 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3421
3422         * src/vte.c: (_vte_terminal_set_pointer_visible),
3423         (_vte_terminal_fudge_pango_colors):
3424                 Kill a couple more compiler warnings.
3425
3426 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3427
3428         Bug 336105 – gnome-terminal crashes when termcap not found
3429
3430         * src/matcher.c: (_vte_matcher_init):
3431         * src/vte-private.h:
3432         * src/vte.c: (vte_terminal_set_default_tabstops),
3433         (vte_terminal_key_press), (vte_terminal_set_emulation),
3434         (_vte_terminal_inline_error_message), (vte_terminal_set_termcap),
3435         (vte_terminal_init), (vte_terminal_finalize),
3436         (vte_terminal_draw_cells):
3437                 Detect and issue an inline warning when we fail
3438                 to load a termcap.
3439
3440 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3441
3442         Tighten the invalidated cells.
3443
3444         * src/vte.c: (_vte_terminal_select_text):
3445         * src/vteseq.c: (vte_sequence_handler_cb):
3446
3447 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3448
3449         More compiler warnings.
3450
3451         * src/vtepangox.c: (_vte_pango_x_set_text_font),
3452         (_vte_pango_x_draw_text):
3453         * src/vteregex.c: (_vte_regex_exec):
3454
3455 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3456
3457         Detect availability of PCRE.
3458
3459         * configure.in:
3460         * src/Makefile.am:
3461
3462 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3463
3464         Improve handling of multi-row clears.
3465
3466         * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows),
3467         (vte_terminal_paint):
3468
3469 2007-01-29  Chris Wilson <chris@chris-wilson.co.uk>
3470
3471         Add debugging flags for printing out cells contents and attributes as
3472         they are rendered.
3473
3474         * src/debug.c: (_vte_debug_parse_string):
3475         * src/debug.h:
3476         * src/vte.c: (vte_terminal_draw_cells):
3477
3478 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3479
3480         * src/vte.c: (vte_terminal_draw_rows):
3481                 Don't issue glyph items for blank cells.
3482
3483 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3484
3485         * configure.in:
3486                 Add -Wshadow to MAYBE_WARN
3487         * src/ring.c: (_vte_ring_remove):
3488         * src/table.c: (_vte_table_matchi):
3489         * src/vtedraw.c: (_vte_draw_clip):
3490         * src/vteskel.c:
3491                 Clean up some compiler warnings.
3492
3493 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3494
3495         * src/vteskel.c:
3496                 Add the NULL clip func to the skeleton function table.
3497
3498 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3499
3500         Update match hilite before showing the pointer as the choice of
3501         cursor depends on whether the pointer is above a matched region.
3502
3503         * src/vte.c: (vte_terminal_motion_notify),
3504         (vte_terminal_button_press), (vte_terminal_button_release):
3505
3506 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3507
3508         Only update the matched region if we move the pointer outside of the
3509         currently matched region.
3510         And only invalidate the cells underneath the matched region.
3511
3512         * src/vte.c: (_vte_invalidate_region),
3513         (vte_terminal_match_hilite_clear), (cursor_inside_match),
3514         (vte_terminal_match_hilite), (vte_terminal_draw_rows):
3515
3516 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3517
3518         * src/table.c: (_vte_table_free):
3519                 Fix a memleak.
3520
3521 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3522
3523         ==26147== 2,895 (352 direct, 2,543 indirect) bytes in 22 blocks are definitely lost in loss record 107 of 170
3524         ==26147==    at 0x4021380: malloc (vg_replace_malloc.c:149)
3525         ==26147==    by 0x4E85965: g_malloc (gmem.c:131)
3526         ==26147==    by 0x4E95537: g_slice_alloc (gslice.c:777)
3527         ==26147==    by 0x4E7C255: g_list_prepend (glist.c:95)
3528         ==26147==    by 0x428B887: vte_terminal_feed (vte.c:10991)
3529         ==26147==    by 0x429DD20: vte_terminal_io_read (vte.c:3214)
3530         ==26147==    by 0x4EA7A8C: g_io_unix_dispatch (giounix.c:162)
3531         ==26147==    by 0x4E7E481: g_main_context_dispatch (gmain.c:2045)
3532         ==26147==    by 0x4E8145E: g_main_context_iterate (gmain.c:2677)
3533         ==26147==    by 0x4E81808: g_main_loop_run (gmain.c:2881)
3534         ==26147==    by 0x45BA503: gtk_main (gtkmain.c:1148)
3535         ==26147==    by 0x805F7A3: main (terminal.c:1773)
3536
3537         * src/vte.c: (remove_from_active_list), (process_timeout),
3538         (update_repeat_timeout):
3539                 g_list_delete_link() is the one that actually frees the link.
3540                 s/g_list_remove_link/g_list_delete_link/.
3541
3542 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3543
3544         ==26147== Conditional jump or move depends on uninitialised value(s)
3545         ==26147==    at 0x42AB9F7: _vte_rdb_search (vterdb.c:95)
3546         ==26147==    by 0x42ABB40: _vte_rdb_quark (vterdb.c:201)
3547         ==26147==    by 0x42ABB9F: _vte_rdb_get_hintstyle (vterdb.c:241)
3548         ==26147==    by 0x42A7952: _vte_fc_patterns_from_pango_font_desc (vtefc.c:302)
3549         ==26147==    by 0x42B4E9B: _vte_xft_set_text_font (vtexft.c:103)
3550         ==26147==    by 0x42A6BE5: _vte_draw_set_text_font (vtedraw.c:258)
3551         ==26147==    by 0x428C62B: vte_terminal_ensure_font (vte.c:5963)
3552         ==26147==    by 0x4290295: vte_terminal_size_request (vte.c:6613)
3553         ==26147==    by 0x4E25228: g_cclosure_marshal_VOID__BOXED (gmarshal.c:566)
3554         ==26147==    by 0x4E17038: g_type_class_meta_marshal (gclosure.c:567)
3555         ==26147==    by 0x4E188FC: g_closure_invoke (gclosure.c:490)
3556         ==26147==    by 0x4E29779: signal_emit_unlocked_R (gsignal.c:2370)
3557         ==26147== 
3558
3559         * src/vterdb.c: (_vte_rdb_get):
3560                 Check the result of the get_property_string before using the
3561                 returned values.
3562
3563 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3564
3565         * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows):
3566                 Merge draw_cells() with the background clear, as generating
3567                 items for many rows and then splitting again in draw cells is
3568                 simply inefficient.
3569
3570 2007-01-28  Chris Wilson  <chris@chris-wilson.co.uk>
3571
3572         Bug 401215 – Multi-pass renderering
3573
3574         * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_clear_cells),
3575         (vte_terminal_draw_cells_with_attributes),
3576         (vte_terminal_draw_rows), (vte_terminal_paint):
3577                 Break the draw_rows() loop into two passes - first clear the
3578                 background and second render the text.
3579                 Add another function based on draw_cells() that just clears the
3580                 background and make clearing the background optional in
3581                 draw_cells() - updating callers accordingly.
3582                 Adventurous souls are required to clean up draw_rows().
3583
3584 2007-01-27  Chris Wilson  <chris@chris-wilson.co.uk>
3585
3586         Fix compilation *with* debugging enabled.
3587         Grrr.
3588
3589         * src/keymap.c: (_vte_keysym_print):
3590
3591 2007-01-27  Chris Wilson  <chris@chris-wilson.co.uk>
3592
3593         Fix compilation without debugging enabled.
3594
3595         * src/keymap.c: (_vte_keysym_print), (_vte_keymap_map):
3596         * src/vte.c: (display_control_sequence):
3597         * src/vteapp.c: (main):
3598
3599 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3600
3601         * src/debug.h:
3602                 Provide a safe fallback for non-C99 compilers (well actually
3603                 anything that isn't a recent gcc at the moment).
3604
3605 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3606
3607         Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input style
3608
3609         Patch by ynakai@redhat.com.
3610
3611         * src/vte.c: (_vte_terminal_fudge_pango_colors):
3612                 Check the attributes for each cell rather than assuming the
3613                 pango attributes (and cell attributes) are the same for the
3614                 whole string.
3615
3616 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3617
3618         * src/vteseq.c: (vte_sequence_handler_vb):
3619                 Iterating over all queued exposures and drawing on top of the
3620                 flash does not sense. Simply flush the draw.
3621
3622 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3623
3624         s/_VTE_DEBUG_ON/_VTE_DEBUG_IF/ and don't include
3625         the code block inside the macro.
3626
3627         * src/debug.h:
3628         * src/iso2022.c: (process_control), (_vte_iso2022_process):
3629         * src/keymap.c: (_vte_keymap_map):
3630         * src/matcher.c: (_vte_matcher_init):
3631         * src/pty.c: (_vte_pty_run_on_pty):
3632         * src/table.c: (_vte_table_addi), (_vte_table_matchi),
3633         (_vte_table_extract_numbers), (_vte_table_match):
3634         * src/trie.c: (_vte_trie_addx):
3635         * src/vte.c: (vte_terminal_match_check_internal),
3636         (vte_terminal_match_check), (vte_terminal_handle_sequence),
3637         (vte_terminal_catch_child_exited), (vte_terminal_process_incoming),
3638         (vte_terminal_io_write), (vte_terminal_send),
3639         (vte_terminal_key_press), (vte_terminal_copy_cb),
3640         (vte_terminal_set_font_full), (vte_terminal_realize),
3641         (vte_terminal_paint), (vte_terminal_scroll):
3642         * src/vteapp.c: (main):
3643         * src/vtebg.c: (vte_bg_root_pixmap):
3644
3645 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3646
3647         Bug 400834 – Use a global display/process timeout
3648
3649         Currently each terminal uses it own display timeout. Given that
3650         typical usage is several active terminals, there is an immediate
3651         advantage (context switches, fairness, smoothness) to using a single
3652         common timeout.
3653
3654         * src/debug.c: (_vte_debug_parse_string):
3655         * src/debug.h:
3656                 Add VTE_DEBUG_TIMEOUT
3657         * src/vte-private.h:
3658         * src/vte.c: (update_regions), (_vte_invalidate_cells),
3659         (_vte_invalidate_all), (vte_terminal_init),
3660         (vte_terminal_class_init), (add_update_timeout),
3661         (remove_from_active_list), (remove_update_timeout),
3662         (add_process_timeout), (vte_terminal_stop_processing),
3663         (vte_terminal_is_processing), (process_timeout),
3664         (update_repeat_timeout), (update_timeout):
3665                 Modify to use a global timeout rather than individual
3666                 private timeouts.
3667
3668 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3669
3670         Unable to set background scrolling mode from cmdline due to variable
3671         name confusion.
3672
3673         * src/vteapp.c: (main):
3674                 --scroll should set scroll=TRUE rather than cursor=TRUE!
3675
3676 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3677
3678         Bug 401082 – double-draw issue
3679
3680         The main cause of this bug was not expanding the cleared area to cover
3681         all the cells affected by the draw and forgetting to offset the clear
3682         by VTE_PAD_WIDTH.
3683
3684         To counter the performance hit due to the expanded repaint area, each
3685         backend is presented with the opportunity to apply a clip to the
3686         exposed region before painting.
3687
3688         This also fixes bug 333157,
3689
3690         * src/vte.c: (_vte_invalidate_cells), (vte_terminal_paint_area),
3691         (vte_terminal_paint):
3692         * src/vtedraw.c: (_vte_draw_clip):
3693         * src/vtedraw.h:
3694         * src/vteft2.c: (_vte_ft2_end), (_vte_ft2_clip):
3695         * src/vtegl.c:
3696         * src/vtepango.c: (_vte_pango_clip):
3697         * src/vtepangox.c: (_vte_pango_x_clip):
3698         * src/vtexft.c: (_vte_xft_clip), (_vte_xft_draw_text):
3699
3700 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3701
3702         * src/vte.c: (vte_terminal_match_hilite):
3703         * src/vteseq.c: (vte_sequence_handler_ce),
3704         (vte_sequence_handler_dc), (vte_sequence_handler_ec):
3705                 Tighten the _vte_invalidate_cells() to only those that
3706                 we potentially modify.
3707
3708 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3709
3710         * src/vtexft.c: (_vte_xft_set_text_font):
3711                 Remove the additional pixel inter-character spacing.
3712                 Compactness over clarity ;)
3713
3714 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
3715
3716         Apply a one pixel fudge to the Xft character position and width.
3717         This greatly improves text appearance and hides the misrendering of
3718         pseudo-bold characters.
3719         cf bugs 317691, 333157.
3720
3721         * src/vte.c: (vte_terminal_paint):
3722                 Increase the cursor size to fit around the cell.
3723         * src/vtexft.c: (_vte_xft_set_text_font), (_vte_xft_draw_text):
3724                 Fudge the Xft font positioning.
3725
3726 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
3727
3728         Bug 318307 – Cursor colour changes to foreground when unfocused
3729
3730         Whilst setting the colour, tweak the position of the rectangle, and
3731         extended the invalidate region to account for the OBO nature of bold
3732         font.
3733
3734         * src/vte.c: (_vte_invalidate_cells):
3735                 Include the padding to accomodate cell effects.
3736         * src/vte.c: (vte_terminal_paint):
3737                 Use the cursor color for the rectangle when unfocused.
3738
3739 2007-01-26  Behdad Esfahbod  <behdad@gnome.org>
3740
3741         * src/vte.c (vte_terminal_visibility_notify): Correctly handle
3742         visibility events: set invalidated_all to FALSE, and invalidate_all
3743         if fully unobscured.
3744
3745 2007-01-26  Behdad Esfahbod  <behdad@gnome.org>
3746
3747         * src/vte.c (vte_terminal_visibility_notify): Make sure we redraw
3748         after becoming unobscured.  There still is a bug that I've not found,
3749         but after obscuring the widget and coming back, a first redraw
3750         happens, but no update after that.
3751
3752 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
3753
3754         * src/vte.c: (vte_terminal_draw_area):
3755                 Occasionally we generate an exposed area which is computed
3756                 as 0x0 cells. Discard early, before we spend an infinity
3757                 drawing nothing.
3758
3759 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
3760
3761         Janitorial work - near elimination of #ifdef VTE_DEBUG from within
3762         functions, trimming a thousand lines of code.
3763
3764         We introduce a _vte_debug_print macro to cover the more common
3765         occurrence of printing a message at a certain debug level.
3766         And a _VTE_DEBUG_ON for a conditional code block.
3767
3768         src/debug.h     |   11 
3769         src/iso2022.c   |  201 ++-------
3770         src/keymap.c    |   41 -
3771         src/matcher.c   |   24 -
3772         src/pty.c       |  134 +-----
3773         src/reaper.c    |   21 
3774         src/ring.c      |   78 +--
3775         src/table.c     |   11 
3776         src/trie.c      |   19 
3777         src/vte.c       | 1187 ++++++++++---------------------------------------
3778         src/vteaccess.c |  198 +++------
3779         src/vteapp.c    |   21 
3780         src/vtebg.c     |   43 --
3781         src/vteconv.c   |   60 +-
3782         src/vteconv.h   |   12 
3783         src/vtedraw.c   |    6 
3784         src/vtefc.c     |    4 
3785         src/vteft2.c    |    5 
3786         src/vteglyph.c  |   27 -
3787         src/vtepango.c  |   11 
3788         src/vtepangox.c |    7 
3789         src/vteregex.c  |    2 
3790         src/vteseq.c    |  385 +++++-------------
3791         src/vtexft.c    |   26 -
3792         24 files changed, 789 insertions(+), 1745 deletions(-)
3793
3794         * src/debug.h:
3795         * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
3796         (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
3797         (process_8_bit_sequence), (process_cdata), (process_control),
3798         (_vte_iso2022_process):
3799         * src/keymap.c: (_vte_keymap_map):
3800         * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
3801         (_vte_matcher_destroy):
3802         * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
3803         (_vte_pty_set_size), (_vte_pty_get_size), (_vte_pty_ptsname),
3804         (_vte_pty_open_unix98), (_vte_pty_open_with_helper),
3805         (_vte_pty_open):
3806         * src/reaper.c: (vte_reaper_emit_signal),
3807         (vte_reaper_child_watch_cb), (vte_reaper_init),
3808         (vte_reaper_finalize):
3809         * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
3810         (_vte_ring_remove):
3811         * src/table.c: (_vte_table_addi):
3812         * src/trie.c: (char_class_string_extract), (_vte_trie_addx),
3813         (_vte_trie_add):
3814         * src/vte.c: (update_regions), (_vte_invalidate_cells),
3815         (_vte_invalidate_all), (_vte_invalidate_cell),
3816         (_vte_invalidate_cursor_once),
3817         (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
3818         (vte_terminal_emit_emulation_changed),
3819         (vte_terminal_emit_encoding_changed),
3820         (vte_terminal_emit_child_exited),
3821         (_vte_terminal_emit_contents_changed),
3822         (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
3823         (vte_terminal_emit_char_size_changed),
3824         (_vte_terminal_emit_status_line_changed),
3825         (vte_terminal_emit_increase_font_size),
3826         (vte_terminal_emit_decrease_font_size),
3827         (_vte_terminal_emit_text_inserted),
3828         (_vte_terminal_emit_text_deleted),
3829         (vte_terminal_emit_text_modified),
3830         (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
3831         (vte_terminal_match_check_internal), (vte_terminal_match_check),
3832         (vte_terminal_emit_adjustment_changed),
3833         (vte_terminal_queue_adjustment_changed),
3834         (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
3835         (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
3836         (_vte_terminal_set_pointer_visible), (vte_terminal_new),
3837         (vte_terminal_generate_bold), (_vte_terminal_insert_char),
3838         (vte_terminal_handle_sequence), (vte_terminal_catch_child_exited),
3839         (vte_terminal_fork_command),
3840         (vte_terminal_emit_pending_text_signals),
3841         (vte_terminal_process_incoming), (vte_terminal_io_read),
3842         (vte_terminal_io_write), (vte_terminal_send),
3843         (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
3844         (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
3845         (vte_terminal_configure_toplevel),
3846         (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
3847         (vte_terminal_key_press), (vte_terminal_paste_cb),
3848         (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
3849         (vte_terminal_clear_cb), (vte_terminal_copy_cb),
3850         (vte_terminal_copy), (vte_terminal_paste),
3851         (vte_terminal_start_selection), (vte_terminal_extend_selection),
3852         (vte_terminal_autoscroll), (vte_terminal_motion_notify),
3853         (vte_terminal_button_press), (vte_terminal_button_release),
3854         (vte_terminal_focus_in), (vte_terminal_focus_out),
3855         (vte_terminal_set_font_full), (vte_terminal_set_size),
3856         (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
3857         (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
3858         (vte_terminal_fc_settings_changed), (vte_terminal_init),
3859         (vte_terminal_size_request), (vte_terminal_size_allocate),
3860         (vte_terminal_unrealize), (vte_terminal_finalize),
3861         (vte_terminal_realize), (vte_terminal_draw_cells),
3862         (_vte_terminal_map_pango_color), (vte_terminal_draw_area),
3863         (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
3864         (vte_terminal_class_init), (vte_terminal_copy_clipboard),
3865         (vte_terminal_paste_clipboard), (vte_terminal_copy_primary),
3866         (vte_terminal_paste_primary), (vte_terminal_background_update),
3867         (vte_terminal_queue_background_update),
3868         (vte_terminal_set_background_saturation),
3869         (vte_terminal_set_background_tint_color),
3870         (vte_terminal_set_background_transparent),
3871         (vte_terminal_set_background_image),
3872         (vte_terminal_set_background_image_file),
3873         (vte_terminal_set_word_chars), (process_timeout),
3874         (update_repeat_timeout), (update_timeout):
3875         * src/vteaccess.c: (xy_from_offset), (emit_text_caret_moved),
3876         (emit_text_changed_insert), (emit_text_changed_delete),
3877         (vte_terminal_accessible_update_private_data_if_needed),
3878         (vte_terminal_accessible_text_modified),
3879         (vte_terminal_accessible_text_scrolled),
3880         (vte_terminal_accessible_invalidate_cursor),
3881         (vte_terminal_accessible_finalize),
3882         (vte_terminal_accessible_get_text),
3883         (vte_terminal_accessible_get_text_somewhere),
3884         (vte_terminal_accessible_get_run_attributes),
3885         (vte_terminal_accessible_text_init),
3886         (vte_terminal_accessible_component_init),
3887         (vte_terminal_accessible_action_init),
3888         (vte_terminal_accessible_factory_new):
3889         * src/vteapp.c: (destroy_and_quit_eof), (destroy_and_quit_exited),
3890         (take_xconsole_ownership), (main):
3891         * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_set_root_pixmap),
3892         (_vte_bg_resize_pixbuf):
3893         * src/vteconv.c: (_vte_conv_utf8_utf8), (_vte_conv_open),
3894         (_vte_conv), (_vte_conv_cu), (_vte_conv_uu), (_vte_conv_uc):
3895         * src/vteconv.h:
3896         * src/vtedraw.c: (_vte_draw_new):
3897         * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
3898         * src/vteft2.c: (_vte_ft2_draw_text):
3899         * src/vteglyph.c: (_vte_glyph_cache_free),
3900         (_vte_glyph_cache_set_font_description):
3901         * src/vtepango.c: (_vte_pango_set_text_font),
3902         (_vte_pango_draw_text):
3903         * src/vtepangox.c: (_vte_pango_x_set_text_font):
3904         * src/vteregex.c: (_vte_regex_exec):
3905         * src/vteseq.c: (vte_terminal_emit_deiconify_window),
3906         (vte_terminal_emit_iconify_window),
3907         (vte_terminal_emit_icon_title_changed),
3908         (vte_terminal_emit_window_title_changed),
3909         (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
3910         (vte_terminal_emit_maximize_window),
3911         (vte_terminal_emit_refresh_window),
3912         (vte_terminal_emit_restore_window),
3913         (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
3914         (vte_sequence_handler_set_title_internal),
3915         (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
3916         (vte_sequence_handler_application_keypad),
3917         (vte_sequence_handler_normal_keypad),
3918         (vte_sequence_handler_reset_mode), (vte_sequence_handler_decset),
3919         (vte_sequence_handler_decreset),
3920         (vte_sequence_handler_erase_in_display),
3921         (vte_sequence_handler_erase_in_line),
3922         (vte_sequence_handler_restore_mode),
3923         (vte_sequence_handler_save_mode),
3924         (vte_sequence_handler_window_manipulation):
3925         * src/vtexft.c: (_vte_xft_set_text_font):
3926
3927 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
3928
3929         Bug 317449 – The cursor disappears when clicking on windows above gnome-terminal
3930
3931         Enter a command that causes partial obscuration of the terminal,
3932         though it must cover the cursor. Close the new window, observe the
3933         pointer disappears.
3934
3935         The issue is that we hide the pointer whilst typing and show it after
3936         receiving a mouse movement. However in this case we steal the pointer
3937         away from the terminal without any mouse events and the cursor remains
3938         invisible.
3939
3940         * src/vte.c: (vte_terminal_focus_in):
3941                 Ensure the mouse pointer is visible on focus-in.
3942
3943 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
3944
3945         Spend half an hour a day killing warnings...
3946
3947         * configure.in:
3948                 Remove -Wswitch-enum from MAYBE_WARN. I am that lazy.
3949         * src/buffer.c:
3950         * src/iso2022.c: (_vte_iso2022_is_ambiguous),
3951         (_vte_iso2022_ambiguous_width), (_vte_iso2022_map_get),
3952         (_vte_iso2022_find_nextctl), (_vte_iso2022_sequence_length),
3953         (_vte_iso2022_fragment_input), (process_8_bit_sequence),
3954         (process_cdata), (_vte_iso2022_process_single), (process_control),
3955         (_vte_iso2022_process):
3956         * src/keymap.c: (_vte_keymap_map):
3957         * src/table.c:
3958         * src/trie.c: (char_class_none_extract),
3959         (char_class_digit_extract), (char_class_multi_extract),
3960         (char_class_any_extract), (unichar_snlen), (unichar_sncmp),
3961         (char_class_string_extract), (_vte_trie_addx), (_vte_trie_add),
3962         (_vte_trie_matchx), (_vte_trie_match), (_vte_trie_printx),
3963         (_vte_trie_print), (convert_mbstowcs), (main):
3964         * src/vte-private.h:
3965         * src/vte.c: (vte_terminal_find_charcell),
3966         (_vte_row_data_find_charcell), (vte_terminal_emit_commit),
3967         (vte_terminal_match_clear_all), (vte_terminal_match_remove),
3968         (vte_terminal_match_add), (vte_terminal_match_set_cursor),
3969         (vte_terminal_match_check_internal), (vte_terminal_set_colors),
3970         (vte_terminal_emit_pending_text_signals),
3971         (vte_terminal_is_word_char), (vte_terminal_finalize),
3972         (vte_terminal_realize), (_vte_terminal_map_pango_color),
3973         (_vte_terminal_apply_pango_attr),
3974         (_vte_terminal_translate_pango_cells),
3975         (vte_terminal_set_scrollback_lines):
3976         * src/vteseq.c: (vte_sequence_handler_decset_internal):
3977                 Fixup compiler warnings, mostly of the type mixing signed and
3978                 unsigned compares and pointers.
3979
3980 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
3981
3982         * src/vte.c: (mark_input_source_invalid),
3983         (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
3984         (_vte_terminal_connect_pty_write):
3985                 Use the GDestroyNotify to mark the source as invalid.
3986         * src/vte.c: (vte_terminal_ensure_font):
3987                 Protect ensure fonts against the VteDraw being destroyed.
3988         * src/vte.c: (vte_terminal_realize):
3989                 Reorder code to setup the style before the fonts.
3990         * src/vte.c: (vte_terminal_class_init):
3991                 The ->show() handler was redundant.
3992
3993 2007-01-25  Behdad Esfahbod  <behdad@gnome.org>
3994
3995         * src/vte.c (_vte_terminal_set_default_attributes),
3996         (_vte_invalidate_cells), (_vte_invalidate_all),
3997         (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
3998         (vte_terminal_visibility_notify), (vte_terminal_handle_scroll):
3999         Replace most of checks for terminal->pvt->visibility_state ==
4000         GDK_VISIBILITY_FULLY_OBSCURED by terminal->pvt->invalidated_all, and
4001         adapt.
4002
4003 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4004
4005         Bug 400759 – update problem with vte trunk
4006
4007         Otherwise known as the I can't count bug.
4008
4009         The number of rows and columns to paint were not properly taking
4010         account of the discrete nature of the cells ie although the floor(x)
4011         moved the start to the left by one, the extra cell was not being added
4012         to the width.
4013
4014         Also since the howmany() macro is pulled from <sys/param.h>, it can
4015         not be guarranteed to exist on all platforms. So in that case, provide
4016         a local copy.
4017
4018         * src/vte.c: (vte_terminal_draw_area):
4019                 Calculate the width as the distance between the explicity
4020                 calculated start and end cells.
4021
4022 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4023
4024         Bug 400671 – crash in Terminal: detaching of tabs
4025
4026         The fontdirty flag needed to be set on unrealize to ensure the fonts
4027         get set on the VteDraw should the terminal be realized again (e.g
4028         drag'n'dropping).
4029
4030         * src/vte.c: (vte_terminal_unrealize):
4031                 Set the fontdirty flag to TRUE.
4032         * src/vtexft.c: (_vte_xft_set_text_font),
4033         (_vte_xft_get_char_width), (_vte_xft_draw_text),
4034         (_vte_xft_draw_char):
4035                 Add safe guards to avoid dereferencing a NULL font as it
4036                 is possible for _vte_xft_font_open() to fail.
4037
4038 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4039
4040         Bug 399137 – UTF-8 problem in VteAccess
4041
4042         Improve the UTF-8 string handling within vteaccess.c
4043         A long and fraught history to this apparently simple change.
4044         Many thanks to Joanmarie Diggs and Rich Burridge for testing the
4045         patches and ensuring they caused no regressions in the ally interface.
4046
4047         * src/vteaccess.c: (emit_text_changed_insert),
4048         (emit_text_changed_delete):
4049                 Use g_utf8_pointer_to_offset() rather than open coding.
4050         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4051                 Convert the caret into a byte offset before performing the
4052                 ASCII character lookup.
4053                 Iterate backwards over the string using a g_utf8_prev_char,
4054                 and g_utf8_get_char.
4055
4056 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4057
4058         Bug 400493 – Mouse selection seriously broken
4059
4060         The rendering of non-text attributes, e.g highlight, backgrounds,
4061         underlines, was broken by the change to multi-row run of glyphs. This
4062         was most apparent when selecting regions with a mouse.
4063
4064         * src/vte.c: (_vte_invalidate_cursor_once),
4065         (vte_terminal_extend_selection),
4066         (vte_terminal_draw_rows), (vte_terminal_draw_area),
4067         (vte_terminal_paint):
4068                 Some janitorial work (a memleak, whitespace, improving debug
4069                 messages, comments).
4070         * src/vte.c: (vte_terminal_draw_cells):
4071                 Loop over cells and draw attributes for groups of cells on
4072                 each row.
4073
4074 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4075
4076         Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
4077
4078         * src/vte.c: (vte_terminal_visibility_notify):
4079                 Only force an _vte_invalidate_all if we can trivially detect
4080                 that we have switch from fully obscured to fully unobscured.
4081                 Otherwise, we will just handle the GDK expose in the normal
4082                 manner.
4083         * src/vte.c: (vte_terminal_expose):
4084                 Check the event area to see if we can use _vte_invalidate_all,
4085                 has a slight benefit of discarding further exposed area
4086                 processing.
4087                 
4088
4089 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4090
4091         GDK tries to coalesce multiple expose events into a single event.
4092         This is passed to the application as a large region containing
4093         multiple rectangles. The unfortunate effect of this is having
4094         broken the invalidated region into 2 small components for vim,
4095         the expose event was still operating on a single region covering
4096         both. The reason the effect was invisible to the eye is due to the
4097         double buffer - GDK generated a backing pixmap for the exposed event
4098         and only copied from the pixmap to the window exactly the pixels
4099         exposed. So we regenerated draw commands for the entire area, and
4100         only saved on the later blit.
4101
4102         The improvement to this is only issue draw commands for the individual
4103         rectangles rather than the region as a whole.
4104
4105         * src/vte.c: (vte_terminal_draw_area), (vte_terminal_paint),
4106         (vte_terminal_expose):
4107                 Paint the exposed rectangles not the event clipbox!
4108
4109 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4110
4111         Print out the painted area for VTE_DEBUG_UPDATES.
4112
4113         * src/vte.c: (vte_terminal_paint):
4114
4115 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4116
4117         cf Bug 400072 – Handling of ; in control sequences
4118
4119         Moral of the story: wait until the morning.
4120         Revert r1512, the mistaken attempt at parsing '\e[;30m'.
4121
4122         * src/table.c: (_vte_table_addi), (_vte_table_matchi),
4123         (_vte_table_match):
4124
4125 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4126
4127         cf Bug 399617 – Avoid memory allocations during an expose event.
4128
4129         Currently we cannot generate long glyph runs due to the text
4130         painting being broken up into single rows and setting a low
4131         max run cap. The benefit of longer runs is the backends can
4132         do more caching within a run and potentially generate fewer
4133         render calls and/or less network traffic.
4134
4135         In the simple test case, this increased the performance of a
4136         remote hexdump by 10%.
4137
4138         * src/vte.c: (vte_terminal_draw_rows), (vte_terminal_paint):
4139                 Scan entired exposed area for glyph runs.
4140         * src/vtedraw.h:
4141                 Increase VTE_DRAW_MAX_LENGTH
4142         * src/vtexft.c: (_vte_xft_draw_text):
4143                 Create GlyphSpecs rather than CharFontSpecs, saves a 
4144                 conversion and potential malloc inside libXft, and our
4145                 own malloc.
4146
4147 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4148
4149         Bug 147495 – screen flicker when opening new terminal windows
4150
4151         Last in a series of work to reduce extraneous redraws. I no longer
4152         see the flicker when opening a white terminal.
4153
4154         * src/vte.c: (_vte_terminal_scroll_region):
4155                 Detect when we can just invalidate all.
4156         * src/vte.c: (_vte_terminal_fork_basic):
4157                 Don't force an unnecessary redraw.
4158
4159 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4160
4161         * src/vte.c: (vte_terminal_set_emulation):
4162                 Add a missing '\n' to the debug printerr.
4163         * src/vte.c: (vte_terminal_init):
4164                 Initialize the row count to VTE_MIN_SCROLLBACK (was to 0
4165                 first and then later within the same function to
4166                 VTE_MIN_SCROLLBACK).
4167
4168 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4169
4170         Bug 334755 – Incomplete information from vte_terminal_get_font
4171
4172         In many situations the font_desc stored in the terminal is incomplete.
4173         _vte_fc_transcribe_from_pango_font_description() automagically fills
4174         in default values for the backends but this is hidden from the
4175         application. By filling in default values up front from the widget
4176         font description control is returned to the application and theme
4177         designers.
4178
4179         Patch by Pedro de Medeiros.
4180         Also cf bug 335269.
4181
4182         * src/vte.c: (vte_terminal_set_font_full):
4183                 Pull default font description from widget.
4184         * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
4185                 Remove default values.
4186
4187 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4188
4189         Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
4190         actually revealed a faux-pas in the conversion of the public
4191         interfaces to GPid - that it broke the ABI.
4192
4193         However, the intention is to remove the exposed pid_t, cf bug 400333.
4194
4195         * python/vte.defs:
4196         * python/vte.override:
4197         * src/pty.c: (_vte_pty_open):
4198         * src/pty.h:
4199         * src/vte.c: (_vte_terminal_fork_basic), (vte_terminal_forkpty):
4200         * src/vte.h:
4201                 Revert the exposed GPids back to pid_t.
4202
4203 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4204
4205         ==25123== Invalid read of size 1
4206         ==25123==    at 0x4055992: vte_terminal_accessible_text_modified (vteaccess.c:497)
4207         ==25123==    by 0x46A1248: g_cclosure_marshal_VOID__VOID (gmarshal.c:77)
4208         ==25123==    by 0x4693EAA: g_closure_invoke (gclosure.c:490)
4209         ==25123==    by 0x46A4972: signal_emit_unlocked_R (gsignal.c:2440)
4210         ==25123==    by 0x46A5E96: g_signal_emit_valist (gsignal.c:2199)
4211         ==25123==    by 0x46A85ED: g_signal_emit_by_name (gsignal.c:2267)
4212         ==25123==    by 0x403E9E2: _vte_terminal_emit_text_inserted (vte.c:863)
4213         ==25123==    by 0x40517EF: vte_terminal_process_incoming (vte.c:3032)
4214         ==25123==    by 0x40522B5: update_repeat_timeout (vte.c:11332)
4215
4216         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4217                 Check that the caret is inside the old string before
4218                 accessing.
4219
4220 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4221
4222         Revert changes in conjunction with bug 399137 back to r1487,
4223         which contains Rich Burridge's fix for bug 397724.
4224
4225         * src/vteaccess.c: (emit_text_changed_insert),
4226         (emit_text_changed_delete),
4227         (vte_terminal_accessible_text_modified):
4228
4229 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4230
4231         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4232                 Valgrind pointed out a couple of places where we tried to
4233                 access before the start of the string.
4234
4235 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4236
4237         Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
4238
4239         Patch by Damien Carbery.
4240
4241         * src/pty.h:
4242                 Update prototype to match new definition.
4243
4244 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4245
4246         <mariano> hm, vte is not matching «ESC [ ; 7 m» :/
4247
4248         * src/table.c: (_vte_table_addi), (_vte_table_matchi),
4249         (_vte_table_match):
4250                 s/GList/GSList/
4251                 g_slist_append -> g_slist_reverse(g_slist_prepend)
4252                 And finally add the subtable to handle the leading ';'
4253                 in the variable length parameters.
4254
4255 2007-01-23  Chris Wilson <chris@chris-wilson.co.uk>
4256
4257         A couple of minor buggets.
4258
4259         * src/iso2022.c: (_vte_iso2022_state_set_codeset):
4260                 Use g_intern_string() instead of from_quark(to_quark(str))
4261         * src/vtepango.c: (_vte_pango_create), (_vte_pango_destroy),
4262         (_vte_pango_start), (_vte_pango_end), (_vte_pango_set_text_font):
4263                 Use the widget pango context (we're guarranteed to have a
4264                 screen by this point) and don't unref it!
4265                 Inspired by Pedro de Medeiros in Bug 335269.
4266
4267 2007-01-23  Chris Wilson <chris@chris-wilson.co.uk>
4268
4269         Regression on Bug 123591:
4270                 mkdir /tmp/aa; cd /tmp/aa; bash; cd ..; rmdir aa
4271                 Open a new tab in g-t -> Failure.       
4272
4273         * src/pty.c: (_vte_pty_run_on_pty):
4274                 Check the error return from g_spawn and try again with the
4275                 pwd if it reports that the child could not change directory.
4276
4277 2007-01-23  Chris Wilson <chris@chris-wilson.co.uk>
4278
4279         * src/pty.c: (_vte_pty_run_on_pty):
4280                 Add all g_spawn parameters to VTE_DEBUG_MISC output.
4281
4282 2007-01-22  Behdad Esfahbod  <behdad@gnome.org>
4283
4284         Released vte-0.15.2.
4285
4286         * NEWS: Updated.
4287
4288         * configure.in: Bumped version to 0.15.2.
4289
4290         * src/Makefile.am: Bumped libtool version to 10:9:1.
4291
4292 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4293
4294         Bug 399137 - continuation.
4295
4296         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4297                 Classic bug:
4298                         clen = cp - old
4299                 rather than the more correct
4300                         clen = cp - current
4301
4302 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4303
4304         * src/vteapp.c: (char_size_changed), (char_size_realized), (main):
4305                 Don't try to perform gdk operations on unrealized windows.
4306
4307 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4308
4309         * src/pty.c: (_vte_pty_run_on_pty):
4310                 Print out the argument vector for VTE_DEBUG_MISC.
4311
4312 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4313
4314         * src/pty.c: (_vte_pty_run_on_pty):
4315                 Protect against g_strv_length(NULL)
4316
4317 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4318
4319         Bug 399137 - continuation.
4320
4321         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4322                 After walking back along the UTF-8 string, remember to update
4323                 the string lengths that are used to detect insertions and
4324                 deletions!
4325
4326 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4327
4328         If the caret is at the end of the buffer, then it set past the
4329         end of the offset array - do not use this as a lookup!
4330
4331         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4332                 If the caret points to past the last character, set the
4333                 offset to the string's NUL terminator.
4334
4335 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4336
4337         * configure.in:
4338                 Earlier configure.in update introduced a trailing ']', pair
4339                 it with its '['
4340                 
4341
4342 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4343
4344         Bug 132316 – terminal widget's context menu posting isn't exposed as an AtkAction
4345
4346         Original patch by <padraig.obriain@sun.com>
4347
4348         * src/vteaccess.c: (vte_terminal_accessible_free_private_data),
4349         (vte_terminal_accessible_component_init),
4350         (vte_terminal_accessible_do_action),
4351         (vte_terminal_accessible_get_n_actions),
4352         (vte_terminal_accessible_action_get_description),
4353         (vte_terminal_accessible_action_get_name),
4354         (vte_terminal_accessible_action_get_keybinding),
4355         (vte_terminal_accessible_action_set_description),
4356         (vte_terminal_accessible_action_init),
4357         (vte_terminal_accessible_get_type):
4358                 Remove grab_focus and defer to the parent's implementation.
4359                 Add an AtkAction iface.
4360
4361 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4362
4363         Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in gnome-terminal
4364
4365         The code for ATK_TEXT_BOUNDARY_WORD_START and
4366         ATK_TEXT_BOUNDARY_WORD_END is the same.
4367
4368         Patch by <padraig.obriain@sun.com>
4369
4370         * src/vteaccess.c: (vte_terminal_accessible_get_text_somewhere):
4371                 Actually provide an implementation for
4372                 ATK_TEXT_BOUNDARY_WORD_END.
4373
4374 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4375
4376         Bug 399137 – UTF-8 problem in VteAccess
4377
4378         * src/vteaccess.c: (emit_text_changed_insert),
4379         (emit_text_changed_delete):
4380                 use g_utf8_pointer_to_offset() instead of open coding
4381         (vte_terminal_accessible_update_private_data_if_needed):
4382                 add the number of UTF-8 characters to the debug output.
4383         (vte_terminal_accessible_text_modified):
4384                 iterate backwards over the UTF-8 string using
4385                 g_utf8_prev_char() and convert the caret into a byte offset
4386                 before it as such.
4387
4388 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4389
4390         Bug 123591 – vte_terminal_fork_command succeeds even when it does not
4391
4392         * python/vte.defs:
4393         * python/vte.override:
4394         * src/reaper.c: (vte_reaper_child_watch_cb):
4395         * src/vte-private.h:
4396         * src/vte.c: (vte_terminal_catch_child_exited),
4397         (_vte_terminal_fork_basic), (vte_terminal_forkpty):
4398         * src/vte.h:
4399         * src/vteapp.c:
4400                 s/pid_t/GPid/ portable variant, no API/ABI implications
4401         * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
4402         (_vte_pty_fork_on_pty_name), (_vte_pty_fork_on_pty_fd),
4403         (_vte_pty_open_unix98), (_vte_pty_pipe_open), (n_read), (n_write),
4404         (_vte_pty_start_helper), (_vte_pty_open_with_helper),
4405         (_vte_pty_open), (main):
4406                 Replace custom fork() and pipe based syncrohonisation scheme
4407                 with g_spawn_async_with_pipes() as it actually handles all
4408                 failure modes correctly, and gives us overtures of portability.
4409                 
4410
4411 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4412
4413         Hack'n'slash my way through doing a bit of weeding.
4414
4415         Fixed:
4416         - Bug 345514 – -no-undefined doesn't work with latest libtool
4417         - Bug 162003 – vte configure.in X checking can fail
4418                      – though this may cause other regressions!
4419         - Bug 314669 – Please specialize AC_PATH_XTRA
4420
4421         * configure.in:
4422                 Export LIBTOOL_EXPORT_OPTIONS for -no-undefined on windos.
4423                 Add to rather than override X_CFLAGS, X_LIBS
4424                 AC_PATH_XTRA - Find X11 using XFlush() rather than XtMalloc().
4425                 Print configuration details.
4426         * src/Makefile.am:
4427                 Conditional compilation of backends.
4428
4429 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4430
4431         Bug 389538 – crash in Terminal: nothing
4432
4433         * src/vteaccess.c: (vte_terminal_accessible_get_text):
4434                 Guard against negative length strings.
4435
4436 2007-01-22  Chris Wilson <chris@chris-wilson.co.uk>
4437
4438         Bug 161479 – Scroll wheel generates Release events
4439
4440          vte sends release events on scroll but xterm doesn't which breaks
4441          mc among others.
4442
4443          Patch by Benedikt Meurer.
4444
4445         * src/vte.c: (vte_terminal_scroll):
4446                 Remove the offending release event.
4447
4448 2007-01-20  Chris Wilson <chris@chris-wilson.co.uk>
4449
4450         <kmaraas> ickle: sparse complains about dubious 1 bit bitfields
4451                 if you use gboolean instead of guint
4452         <kmaraas> so s/gboolean/guint at line 166 and 174
4453         <mariano> unless that changes the API, of course...
4454         <kmaraas> it doesn't
4455         <mariano> gboolean a:1 is not very correct anyways
4456         <kmaraas> ickle: we've done the same change in other modules
4457         <ickle> if I do it quick, behdad might not even notice ;)
4458
4459         * src/vte.h:
4460                 Convert signed single bit field to unsigned. The code
4461                 was setting it to 1 anyhow (and not -1 as the type indicated).
4462
4463 2007-01-20  Chris Wilson <chris@chris-wilson.co.uk>
4464
4465         Bug 398602 – Build Failure
4466
4467         * src/vte.c: (vte_terminal_expose):
4468                 Fixup typo. [Grrr. Must get git-svn back into sync]
4469
4470 2006-11-19 Rich Burridge <rich.burridge@sun.com>
4471
4472         * src/vteaccess.c:
4473         Fixed bug #397724 - Orca incorrect echo's certain input in 
4474         gnome-terminal when key echo is set to off (on Ubuntu Feisty).
4475
4476 2007-01-20  Chris Wilson <chris@chris-wilson.co.uk>
4477         
4478         * src/vte.c: (vte_terminal_expose):
4479                 Also if the entire terminal is invalidated,
4480                 do not add more GTK+ exposes to it.
4481
4482 2007-01-20  Chris Wilson <chris@chris-wilson.co.uk>
4483
4484         Track when we have invalidated the entire terminal and skip adding
4485         new regions when possible.
4486
4487         * src/vte-private.h:
4488         * src/vte.c: (update_regions), (_vte_invalidate_cells),
4489         (_vte_invalidate_all), (vte_terminal_size_allocate),
4490         (reset_update_regions):
4491
4492 2007-01-20  Chris Wilson <chris@chris-wilson.co.uk>
4493
4494         Bug 398244 – Gnome-terminal opens a huge sized window
4495
4496         * src/vte.c: (vte_terminal_ensure_font),
4497         (vte_terminal_set_font_full), (vte_terminal_size_request),
4498         (vte_terminal_realize), (vte_terminal_get_char_width),
4499         (vte_terminal_get_char_height), (vte_terminal_get_char_descent),
4500         (vte_terminal_get_char_ascent):
4501                 Ensure the font metrics are calculated before use.
4502
4503 2007-01-19  Chris Wilson <chris@chris-wilson.co.uk>
4504
4505         * src/vte.c: (vte_terminal_process_incoming):
4506                 Do not invalidate the old cursor position if it was not
4507                 visible.
4508
4509 2007-01-19  Chris Wilson <chris@chris-wilson.co.uk>
4510
4511         * src/vte.c: (process_timeout):
4512                 Make sure ->process_timeout is set to VTE_INVALID_SOURCE on
4513                 all paths that remove the timeout.
4514
4515 2007-01-19  Chris Wilson  <chris@chris-wilson.co.uk>
4516
4517         Add <> to mark boundaries of process_timeout().
4518
4519         * src/vte.c: (vte_terminal_class_init), (process_timeout):
4520
4521 2007-01-19  Chris Wilson  <chris@chris-wilson.co.uk>
4522
4523         Add {},[] to mark boundaries of update_timeout() and notice that
4524         the display limited update_timeout was not dying.
4525
4526         * src/vte.c: (vte_terminal_class_init), (update_repeat_timeout),
4527         (update_timeout):
4528
4529 2007-01-19  Chris Wilson <chris@chris-wilson.co.uk>
4530
4531         * src/vte.c: (vte_terminal_realize), (remove_process_timeout):
4532                 Small cleanup:
4533                  - protect remove_process_timeout against an invalid source.
4534                  - move static prototypes into common block.
4535                  - gdk_window_show() is done in map not realize.
4536
4537 2007-01-19  Chris Wilson <chris@chris-wilson.co.uk>
4538
4539         * src/vte-private.h:
4540         * src/vte.c: (vte_terminal_process_incoming):
4541                 Introduce a bit of slack in the bbox check to allow
4542                 for a small of amount of cursor motion e.g. due to line
4543                 scrolling. This turns the long sequence of
4544                 '(?!?!??? ... ????!)'
4545                 during a hexdump into the better behaved 
4546                 '.(?!?!?!??!)-+=.(?!?!??!)-+=........'. Although it is
4547                 puzzling why we now how have a blo