1 2007-11-28 Behdad Esfahbod <behdad@gnome.org>
3 Bug 412435 – Invalid variable name in Makefile.am
8 Remove spec file and old convenience cvs make targets.
10 2007-11-28 Behdad Esfahbod <behdad@gnome.org>
12 Bug 416561 – Rendering issue in VtePango
14 * src/vtepango.c (_vte_pango_draw_rectangle):
15 * src/vtepangox.c (_vte_pango_x_draw_rectangle):
16 gdk_draw_rectangle has slightly different semantics when
17 filling vs outlining. Fix for that.
19 2007-11-28 Behdad Esfahbod <behdad@gnome.org>
21 Bug 416558 – Rendering errors in VteFT2
23 * src/vteft2.c (_vte_ft2_create): Disable Gtk+ double-buffering.
25 2007-11-28 Behdad Esfahbod <behdad@gnome.org>
27 Bug 403217 – Outdated README
31 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
33 Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
34 Patch from Mauricio and Mariano Suárez-Alvarez
36 * src/vte.c (vte_terminal_scroll_lines),
37 (vte_terminal_scroll_pages), (vte_terminal_key_press):
38 Implement single-line scroll.
40 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
42 Bug 353610 – Don't convert tab characters upon copying
45 * src/vteseq.c (vte_sequence_handler_ta):
46 Smart tab handling to try to preserve tab character upong copying.
47 Also makes such smart tabs all-or-none selectable.
49 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
51 Bug 499892 – strikethrough line is too high
54 * src/vte.c (vte_terminal_apply_metrics), (vte_terminal_init),
55 (vte_terminal_draw_cells): Adjust underline/strikethrough thickness
56 and position based on pangofc's heuristics.
58 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
60 * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
61 available backends to stderr.
63 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
65 Bug 499891 – vte with opacity set, shows invisible chars
67 * src/vte.c (vte_terminal_draw_rows): Don't draw invisible chars.
69 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
71 Bug 499896 – Alternate charset isn't an attribute, though we treat it
75 * src/vte.c (_vte_terminal_set_default_attributes),
76 (_vte_terminal_insert_char), (vte_terminal_reset):
77 * src/vteseq.c (vte_sequence_handler_ae),
78 (vte_sequence_handler_as):
79 Move cell.attr.alternate to screen->alternate_charset.
81 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
83 Bug 499893 – cell.attr.protect is unused
86 * src/vte.c (_vte_terminal_set_default_attributes):
87 * src/vteseq.c (vte_sequence_handler_mp):
88 Comment out cell.attr.protect which is unused.
90 2007-11-27 Behdad Esfahbod <behdad@gnome.org>
92 * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once):
93 Minor optimization, if one can call it that.
95 2007-11-26 Behdad Esfahbod <behdad@gnome.org>
97 * src/vte.c: Fix doc syntax.
99 2007-11-26 Behdad Esfahbod <behdad@gnome.org>
101 Revert previous change. For reason, see bug.
102 Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
105 * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
106 Don't trim space characters, just the empty space after lines,
109 2007-11-26 Behdad Esfahbod <behdad@gnome.org>
111 Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
114 * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
115 Trim trailing space characters if asked to.
117 2007-11-23 Behdad Esfahbod <behdad@gnome.org>
119 * doc/reference/Makefile.am:
120 * doc/reference/check.docs:
121 Add script to check doc coverage is 100% on "make check".
123 2007-11-23 Behdad Esfahbod <behdad@gnome.org>
125 Bug 499287 – Fix doc coverage regression
127 * doc/reference/tmpl/vte.sgml:
128 * doc/reference/vte-sections.txt:
129 Document undocumented symbols.
131 2007-11-16 Chris Wilson <chris@chris-wilson.co.uk>
133 * src/vte.c (vte_terminal_io_read), (vte_terminal_init),
134 (process_timeout), (update_repeat_timeout), (update_timeout):
135 Tweak to read across chunk boundaries whilst still maintaining
136 fairness between multiple terminals and refresh rate targets.
138 2007-11-16 Chris Wilson <chris@chris-wilson.co.uk>
140 * src/ring.c (_vte_ring_insert_preserve):
141 Use stack allocation to hold small numbers of temporary
144 2007-11-16 Chris Wilson <chris@chris-wilson.co.uk>
147 * src/vte.c (_vte_free_row_data), (vte_terminal_reset_rowdata),
148 (vte_terminal_finalize), (vte_terminal_reset):
149 Export _vte_row_data_free.
151 * src/vteseq.c (vte_remove_line_internal):
152 Cache the removed VteRowData - fixes the continual reallocation
153 of row data during the vim scrolling benchmark.
155 2007-11-16 Chris Wilson <chris@chris-wilson.co.uk>
157 * src/vte.c (release_chunk), (prune_chunks),
158 (remove_from_active_list), (process_timeout),
159 (update_repeat_timeout):
160 Delay pruning the chunks freelist until we finished processing
161 all the incoming data. We were discarding the freelist far too
162 early and reduced the efficacy of the cache.
164 2007-11-16 Chris Wilson <chris@chris-wilson.co.uk>
167 * src/vterdb.c (_vte_rdb_get), (_vte_rdb_search), (_vte_rdb_quark),
168 (_vte_rdb_get_rgba), (_vte_rdb_get_hintstyle), (_vte_rdb_release):
169 Remove redundant queries and cache the XRequest on the root
170 window (saves a few round-trips during terminal construction).
171 Add a new function to free the cache.
173 * src/vtefc.c (_vte_fc_defaults_from_rdb):
174 Release the cache after retrieving settings.
176 2007-11-15 Chris Wilson <chris@chris-wilson.co.uk>
178 * src/vte.c (vte_terminal_focus_out):
179 Similar for the leave notify, disable the match updating after
180 hiding the cursor after the loss of focus.
181 However, do we really want to disable the hilighting whilst the
182 pointer may still be within the terminal?
184 2007-11-15 Chris Wilson <chris@chris-wilson.co.uk>
186 * src/vte.c (vte_terminal_enter):
187 Don't automatically reshow the hilight on receiving an enter
188 event, but wait for the motion notify to update the cursor
189 co-ordinates, otherwise we may hilight something quite distant
192 2007-11-15 Chris Wilson <chris@chris-wilson.co.uk>
194 * src/vte.c (vte_terminal_leave):
195 Mark the cursor as invisible on leaving the terminal as this
196 stops the hilight matcher running whilst the cursor is absent.
198 2007-11-06 Behdad Esfahbod <behdad@gnome.org>
200 * src/vte.c (vte_terminal_set_font_from_string_full): Allow NULL
201 font argument. Can be used to set antialias without setting font.
203 * src/vteapp.c (main): Fix antialias handling which was borked when
206 2007-11-06 Behdad Esfahbod <behdad@gnome.org>
208 Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk
209 to get antialias and hinting value
211 * src/vtefc.c (_vte_fc_defaults_from_gtk),
212 (_vte_fc_defaults_from_rdb): Replace _vte_fc_defaults_from_gtk() with
213 gtk_default_substitute() from Gtk+-2.6. It's essentially the same
214 thing, but not overriding elements of the pattern already present.
215 Also remove a couple redundant calls.
217 2007-10-11 Chris Wilson <chris@chris-wilson.co.uk>
219 Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale environment
221 * src/vte.c (vte_terminal_set_encoding):
222 Fallback to using UTF-8 as the locale encoding. This prevents
223 subsequent crashes but may display gibberish in the output.
225 2007-10-05 Chris Wilson <chris@chris-wilson.co.uk>
227 Bug 483642 – vte_terminal_feed crash when 8190 characters passed
229 * src/vte.c (vte_terminal_feed):
230 Break the feed data into chunks.
232 2007-09-30 Chris Wilson <chris@chris-wilson.co.uk>
234 * src/vtexft.c (_vte_xft_set_background_image):
235 Skip retrieving the VteBg if the source is VTE_BG_SOURCE_NONE
236 as we neither need it to listen for changes to the background
237 nor require it to load the pixmap (which is a no-op).
239 2007-09-30 Chris Wilson <chris@chris-wilson.co.uk>
241 * src/vtexft.c (_vte_xft_destroy):
242 Ensure the GdkPixmap is destroyed along with the VteXft
245 2007-09-26 Chris Wilson <chris@chris-wilson.co.uk>
247 Bug 480735 – Underlining whitespace not reliable
249 Original patch by Steven Skovran.
251 I really must remember to run vttest more often. (And to work within
254 * src/vte.c (vte_terminal_draw_rows):
257 2007-09-26 Chris Wilson <chris@chris-wilson.co.uk>
259 Bug 480735 – Underlining whitespace not reliable
261 Original one-liner by Steven Skovran.
263 * src/vte.c (vte_terminal_draw_rows):
264 Do not try to over zealously skip whitespace. The goal is
265 to maintain the current run whilst avoiding adding spaces to
266 the glyph sequence - so check the cell fully for attribute
267 breaks and simply do not add it to the glyphs if it contains a
270 2007-09-17 Behdad Esfahbod <behdad@gnome.org>
276 * configure.in: Bumped version to 0.16.9.
277 Bumped libtool version to 11:13:2.
279 2007-09-05 Behdad Esfahbod <behdad@gnome.org>
281 * perf/vim.sh: Wait for keypress when done, so one can do
282 "vte -c ./vim.sh" and not lose the final numbers.
284 * src/vtepango.c (_vte_pango_destroy), (_vte_pango_start),
285 (_vte_pango_end), (_vte_pango_set_background_color),
286 (_vte_pango_set_background_image), (_vte_pango_clear),
287 (_vte_pango_set_text_font), (_vte_pango_get_using_fontconfig),
288 (_vte_pango_draw_text), (_vte_pango_draw_has_char),
289 (_vte_pango_draw_rectangle), (_vte_pango_fill_rectangle),
290 (_vte_pango_set_scroll): General cleanup. Also implement
291 _vte_pango_draw_has_char() using
292 pango_layout_get_unknown_glyphs_count() when available.
294 2007-09-02 Behdad Esfahbod <behdad@gnome.org>
296 Bug 469862 – Handling of wrapped links in gnome-terminal is broken
298 * src/vteseq.c (vte_sequence_handler_ce): Reset soft_wrapped.
300 2007-09-01 Chris Wilson <chris@chris-wilson.co.uk>
302 cf Bug 469862 – Handling of wrapped links in gnome-terminal is broken
304 * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
305 Revert the last character is in last column check as that
306 behaviour is required to handle terminal resizing where the
307 screen contents are not reconstructed (e.g. bash).
309 2007-08-30 Chris Wilson <chris@chris-wilson.co.uk>
311 Bug 471901 – troubles with pad
314 * src/vte.c (_vte_invalidate_cells), (vte_terminal_draw_rows),
315 (vte_terminal_paint): Don't abuse VTE_PAD_WIDTH.
317 2007-08-30 Chris Wilson <chris@chris-wilson.co.uk>
319 Bug 469862 – Handling of wrapped links in gnome-terminal is broken
321 * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
322 Check that the last character is in the last column before
323 adding a newline for autowrapped lines.
325 2007-08-30 Chris Wilson <chris@chris-wilson.co.uk>
327 * MAINTAINERS: Add myself to the list, as Behdad had suggested some
330 2007-08-30 Chris Wilson <chris@chris-wilson.co.uk>
332 Bug 153265 – Handle Sun Cut, Copy, Paste keys
333 Patch by Brian Cameron.
335 * doc/reference/tmpl/vte.sgml:
336 * src/vte.c (vte_terminal_class_init),
337 (vte_terminal_real_copy_clipboard), (vte_terminal_copy_clipboard),
338 (vte_terminal_real_paste_clipboard),
339 (vte_terminal_paste_clipboard):
341 Add key bindings for the special function keys.
343 2007-08-30 Chris Wilson <chris@chris-wilson.co.uk>
345 * src/vte.c (vte_terminal_draw_rows): Bad manipulation of patches
346 whilst attempting to apply the fix for Bug 434230 - net result was
347 that the correct code was being circumvented.
349 2007-08-29 Chris Wilson <chris@chris-wilson.co.uk>
351 Bug 471484 – vteapp resize weirdness
353 * src/vteapp.c (main): Distinguish between setting the geometry and
354 disabling the use of geometry hints. A regression when converting to
355 GOption based arguments.
357 2007-08-27 Behdad Esfahbod <behdad@gnome.org>
359 Bug 470690 – Typo at src/vtexft.c "appropiate" should be "appropriate"
361 * src/vtexft.c (_vte_xft_open_font_for_char): Fix typo.
363 2007-08-07 Behdad Esfahbod <behdad@gnome.org>
365 * MAINTAINERS: Add Userid field, remove Guilherme.
367 2007-08-03 Chris Wilson <chris@chris-wilson.co.uk>
369 Bug 434230 – Spaces are not underlined
370 Original patch by Santtu Lakkala.
372 * src/vte.c (vte_terminal_draw_rows): Only skip cells if we do not
375 2007-08-03 Chris Wilson <chris@chris-wilson.co.uk>
377 Bug 450069 – vte crash on removing a terminal tab
379 * src/vte.c (vte_terminal_emit_eof), (vte_terminal_queue_eof),
380 (vte_terminal_eof): Move the EOF emission to an idle handler so that
381 the source is inactive whilst the VteTerminal is finalized.
383 2007-07-30 Behdad Esfahbod <behdad@gnome.org>
387 Quick followup release with no code changes, to fix missing
388 documentation index in the tarball.
392 * configure.in: Bumped version to 0.16.8.
393 Bumped libtool version to 11:12:2.
395 2007-07-27 Behdad Esfahbod <behdad@gnome.org>
401 * configure.in: Bumped version to 0.16.7.
402 Bumped libtool version to 11:11:2.
404 2007-07-27 Behdad Esfahbod <behdad@gnome.org>
406 Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
409 * src/keymap.c (_vte_keymap_map), (is_cursor_key),
410 (_vte_keymap_key_add_key_modifiers):
412 * src/vte.c (vte_terminal_key_press):
413 Only switch to CSI for some cursor keys when in cursor app mode.
415 2007-06-25 Chris Wilson <chris@chris-wilson.co.uk>
417 Bug 448259 – Mapping for Ctrl-_
418 Patch by Andrey Melnikov.
420 * src/keymap.c: Add mapping for Ctrl-Minus.
422 2007-06-25 Chris Wilson <chris@chris-wilson.co.uk>
424 Bug 449809 – use python-config to get python includes
425 Patch by Sebastien Bacher.
427 * acinclude.m4: prefer python-config where available.
429 2007-06-25 Chris Wilson <chris@chris-wilson.co.uk>
431 Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted
432 Patch by Dale Sedivec.
434 * src/vteseq.c (vte_sequence_handler_window_manipulation): Restore
437 2007-06-21 Christian Persch <chpe@gnome.org>
440 * src/Makefile.am: Move libtool versioning to configure so you just
441 have to update one file for releasing. See bug #396265 comment 17.
443 2007-06-18 Behdad Esfahbod <behdad@gnome.org>
449 * configure.in: Bumped version to 0.16.6.
451 * src/Makefile.am: Bumped libtool version to 11:10:2.
453 2007-06-12 Chris Wilson <chris@chris-wilson.co.uk>
455 * src/vte.c (vte_terminal_set_size): Call gtk_widget_queue_resize()
456 after updating row/column count.
458 2007-06-11 Behdad Esfahbod <behdad@gnome.org>
460 Bug 372743 – vte_terminal_set_colors doesn't work as advertised
462 * src/vte.c (vte_terminal_set_colors): Allow 24-color palettes.
464 2007-06-09 Behdad Esfahbod <behdad@gnome.org>
466 Bug 445620 – Some characters shows different in different locales.
469 * src/iso2022.c (_vte_iso2022_state_set_codeset): Update ambiguous
472 2007-06-04 Behdad Esfahbod <behdad@gnome.org>
478 * configure.in: Bumped version to 0.16.5.
480 * src/Makefile.am: Bumped libtool version to 11:9:2.
482 2007-05-30 Chris Wilson <chris@chris-wilson.co.uk>
484 fcrozat pointed out 'some strange "underline" line where cursor is
485 located and blinking'.
487 Also reported in bug 442688.
489 * src/vte.c (vte_terminal_draw_rows):
490 Continuation of the previous commit: catch a couple more locations
491 where we need to skip past the end of the line. The problem in
492 this case was we tried to use some uninitialised variables whilst
493 trying to draw the cell attributes.
495 2007-05-28 Behdad Esfahbod <behdad@gnome.org>
501 * configure.in: Bumped version to 0.16.4.
503 * src/Makefile.am: Bumped libtool version to 11:8:2.
505 2007-05-28 Chris Wilson <chris@chris-wilson.co.uk>
507 uws noted on IRC that 'vte trunk does strange thingies with colors'
509 * src/vte.c (vte_terminal_draw_rows):
510 When reaching the end-of-row be careful not to reset the
511 current text attributes (color, underlining, etc).
513 2007-05-25 Chris Wilson <chris@chris-wilson.co.uk>
515 * src/vte.c (vte_terminal_expand_region),
516 (vte_terminal_paint_area):
517 Only add the borders to the clear area.
519 2007-05-23 Chris Wilson <chris@chris-wilson.co.uk>
521 Bug 429278 – Cursor drawn strangely in joe
523 * src/vte.c (vte_terminal_expand_region),
524 (vte_terminal_paint_area):
525 Ensure the expanded regions are cell aligned.
527 2007-05-23 Chris Wilson <chris@chris-wilson.co.uk>
529 cf Bug 439247 – scrolling vim in full screen is painfully slow and takes up 100% of the cpu
531 * src/vte.c (vte_terminal_draw_rows):
532 Fix up the unwanted break of Glyph runs at the end-of-lines.
534 2007-05-23 Chris Wilson <chris@chris-wilson.co.uk>
536 Bug 440475 – Display glitch with transparent backgroud
538 * src/vte.c (vte_terminal_paint_area):
539 Apply the band-aid fix to clear the area that's about to be
540 repainted. The full solution will to be ensure that the regions
541 after expansion are cell-aligned.
543 2007-05-22 Chris Wilson <chris@chris-wilson.co.uk>
545 Bug 375112 – ctrl-key combinations yielding just key
546 Original patch by <samo@altern.org> and refactored by Loïc Minier.
548 * src/vte.c (vte_translate_national_ctrlkeys),
549 (vte_terminal_key_press):
550 When cooking a string to pass through to the client obtain the
553 2007-05-22 Chris Wilson <chris@chris-wilson.co.uk>
555 Bug 440377 – gnome-terminal cannot refresh terminal when accessibility enabled
556 Original patch by Li Yuan.
558 * src/vteaccess.c (vte_terminal_accessible_focus_in),
559 (vte_terminal_accessible_focus_out),
560 (vte_terminal_accessible_visibility_notify):
561 Return FALSE rather than void...
563 2007-05-17 Chris Wilson <chris@chris-wilson.co.uk>
567 Measure full screen scrolling performance.
569 2007-05-15 Chris Wilson <chris@chris-wilson.co.uk>
571 kmaraas reported an issue on IRC where the scrollback was not being
572 updated correctly in the first tab when the terminal was resized via
575 * src/vte.c (vte_terminal_size_allocate): Check whether we need to
576 recompute the visible lines due to a change in layout geometry.
578 2007-04-27 Chris Wilson <chris@chris-wilson.co.uk>
580 Bug 433776 – gnome-terminal crashes when open preedit area
583 * src/vte.c (vte_terminal_paint): The preedit_cursor is returned by
584 the input modules in characters not in bytes as assumed by the
587 2007-04-27 Chris Wilson <chris@chris-wilson.co.uk>
589 Bug 433776 – gnome-terminal crashes when open preedit area
591 * src/vte.c (vte_terminal_paint): Use the validated cursor index.
593 2007-04-27 Behdad Esfahbod <behdad@gnome.org>
599 * configure.in: Bumped version to 0.16.3.
601 * src/Makefile.am: Bumped libtool version to 11:7:2.
603 2007-04-24 Chris Wilson <chris@chris-wilson.co.uk>
605 Bug 429189 – Vte-WARNING's
607 * src/vtexft.c (_vte_xft_open_font_for_char):
608 Convert the warning into a DEBUG.
610 2007-04-24 Chris Wilson <chris@chris-wilson.co.uk>
612 Bug 415044 – Use --enable-debug rather than --enable-debugging
614 As noted on Bug 414716, the convention is to use --enable-debug
615 to enable extra debugging code.
620 2007-04-24 Chris Wilson <chris@chris-wilson.co.uk>
622 Bug 414716 – Refresh issue after changing workspaces
624 * src/vte.c (vte_terminal_hierarchy_changed):
625 Do not respond to toplevel mapping events.
627 2007-04-23 Behdad Esfahbod <behdad@gnome.org>
633 * configure.in: Bumped version to 0.16.2.
635 * src/Makefile.am: Bumped libtool version to 11:6:2.
637 2007-04-23 Chris Wilson <chris@chris-wilson.co.uk>
639 Bug 431799 – Regex highlighting is broken
641 * src/vte.c (vte_terminal_emit_contents_changed),
642 (vte_terminal_match_hilite_update), (process_timeout),
643 (update_repeat_timeout), (update_timeout):
644 Always emit any pending updates before redrawing. This
645 ensures for example that the match contents are updated
646 after a simple scroll event.
648 2007-04-20 Chris Wilson <chris@chris-wilson.co.uk>
650 * src/vtexft.c (_vte_xft_start), (_vte_xft_clip):
651 Optimise away the use of a clip mask for the common case
652 of redrawing the whole terminal.
654 2007-04-17 Behdad Esfahbod <behdad@gnome.org>
656 * src/iso2022.c (_vte_iso2022_ambiguous_width): Consider
657 ambiguous-width chars if VTE_CJK_WIDTH env var is set and we are
660 2007-03-12 Behdad Esfahbod <behdad@gnome.org>
666 * configure.in: Bumped version to 0.16.1.
668 * src/Makefile.am: Bumped libtool version to 11:5:2.
670 2007-04-06 Chris Wilson <chris@chris-wilson.co.uk>
672 Bug 426870 – vte often passes NUL to functions requiring valid unichar
674 * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
675 (vte_terminal_paint):
676 Consistently guard against cell->c == '\0' before calling
677 _vte_draw_get_char_width.
679 2007-04-06 Chris Wilson <chris@chris-wilson.co.uk>
681 Bug 419644 – Links do not get highlighted anymore
682 Also see Bug 404757 – URL matching doesn't work with PCRE
685 Kill --with-pcre as it changes the semantics of the API
686 and only causes confusion.
688 2007-04-05 Chris Wilson <chris@chris-wilson.co.uk>
690 Bug 426541 – crash on IRM escape code
692 * src/vte.c (vte_terminal_ensure_cursor),
693 (_vte_terminal_insert_char):
694 Mishandled insertion - we always extended the row for
695 inserts even though the row would automagically extend
696 for the inserted cells. This lead to referencing
697 uninitialised cells at the end of the row during painting.
698 * src/vte.c (vte_terminal_draw_rows):
699 Retrieve the cell before inspecting it.
701 2007-04-04 Chris Wilson <chris@chris-wilson.co.uk>
703 Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
705 Original patch by Shaun McCance and refined by Baris Cicek.
707 * src/vte.c (vte_terminal_scroll):
708 Send cursor keypress instead of trying to scroll the
709 alternate screen in vain.
711 2007-04-03 Chris Wilson <chris@chris-wilson.co.uk>
713 Bug 425767 – vte_terminal_set_color_highlight should test for
714 NULL before _vte_debug_print
716 * src/vte.c (vte_terminal_set_color_cursor),
717 (vte_terminal_set_color_highlight):
718 Differentiate between set/unset paths.
720 2007-03-25 Chris Wilson <chris@chris-wilson.co.uk>
722 Bug 422385 – vte appears at the top of the root window even when
723 packed at the bottom of it
725 Patch by Dodji Seketeli.
727 * src/vte.c (vte_terminal_size_allocate), (vte_terminal_realize):
728 Honour the allocated position when realizing the widget.
730 2007-03-22 Chris Wilson <chris@chris-wilson.co.uk>
732 * src/vtexft.c (_vte_xft_draw_text):
733 Insert spaces into the Xft glyph stream to avoid the
734 overhead of restarting a glyph sequence for every word.
736 2007-03-21 Chris Wilson <chris@chris-wilson.co.uk>
738 Bug 420935 – glyph can be cropped with not fitting in a cell
740 * src/vte.c (vte_terminal_paint):
741 Don't redraw the invisible cursor
742 - avoids nasty artifacts like clipping extra wide glyphs.
744 2007-03-19 Chris Wilson <chris@chris-wilson.co.uk>
746 * src/vte.c (vte_terminal_scroll_pages):
747 Leave 'contents-change' to the scroll handler.
749 2007-03-19 Chris Wilson <chris@chris-wilson.co.uk>
751 * src/vte.c (vte_terminal_extend_selection),
752 (vte_terminal_draw_rows):
753 Accidentally inverted an is-empty? check during the
754 elimination of the empty bitfield.
756 2007-03-19 Chris Wilson <chris@chris-wilson.co.uk>
758 Bug 420067 – Does not handle expose events whilst processing
761 * src/vte.c (vte_terminal_expose):
762 Handle the expose immediately if we are only processing
763 incoming data (ie no redraws pending).
765 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
767 * src/vteseq.c (vte_sequence_handler_cursor_character_absolute):
768 Remove a chunk of code that was tried as a mutt band-aid
769 long ago and was completely wrong.
771 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
773 Bug 415381 – Improve performance of vte_terminal_insert_char()
775 The bulk of the work to remove redundant reads and conditionals
776 from the code. In particular, gcc was emitting bit-by-bit copies
777 for transferring the bitfield since we modified a member immediately
778 afterwards - overcome this by using an explicit memcpy of the
782 * src/vte.c (vte_g_array_fill), (vte_terminal_ensure_cursor),
783 (_vte_terminal_insert_char), (vte_terminal_process_incoming),
785 * src/vteseq.c (vte_sequence_handler_ic):
787 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
789 cf Bug 415381 – Improve performance of vte_terminal_insert_char()
791 * src/vte-private.h: Use a simple boolean rather than counter for
792 text changed style flags.
793 * src/vte.c: And update users.
796 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
798 cf Bug 415381 – Improve performance of vte_terminal_insert_char()
800 * src/vte-private.h: Embed bitfield into struct
801 * src/vte.c: And update users.
804 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
806 Need to trigger update timeout rather than process timeout
807 otherwise the background is not updated.
809 * src/vte.c (vte_terminal_queue_adjustment_changed),
810 (vte_terminal_queue_adjustment_value_changed):
812 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
814 * src/vtexft.c (_vte_xft_create), (_vte_xft_destroy),
815 (_vte_xft_start), (_vte_xft_end), (_vte_xft_clip),
816 (_vte_xft_clear): Avoid some allocations.
818 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
820 Bug 418073 – Opacity ignored for vtexft
823 * src/vtedraw.c (_vte_draw_requires_clear):
825 * src/vteft2.c (_vte_ft2_set_background_image):
826 * src/vtegl.c (_vte_gl_create), (_vte_gl_set_background_image):
827 * src/vtepango.c (_vte_pango_set_background_image):
828 * src/vtepangox.c (_vte_pango_x_set_background_image):
829 * src/vtexft.c (_vte_xft_set_background_color),
830 (_vte_xft_set_background_image):
831 Flood fill the backing pixmap if we need to change it's
834 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
836 Bug 418910 – Asymmetric scrolling with mouse wheel
839 * src/vte.c: Round-up the delta before applying to ensure consistency
842 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
844 * src/vte.c (vte_terminal_catch_child_exited), (vte_terminal_eof),
845 (vte_terminal_process_incoming): Refactor some common code.
847 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
849 Bug 416634 – Rendering glitch as autowrapped chars are outside invalidated bbox
851 * src/vte.c (_vte_terminal_insert_char),
852 (vte_terminal_process_incoming): Correctly update bbox after
855 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
857 Bug 416635 – Rendering glitch: double draw of line below exposed region
859 * src/vte.c (vte_terminal_expand_region),
860 (vte_terminal_paint_area): Kill a couple of off-by-ones.
862 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
864 Bug 418588 – Invalid read when drawing preedit cursor
866 * src/vte.c (vte_terminal_paint):
867 No need to read what is drawn and furthermore isn't allocated.
869 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
871 Bug 417652 – Scrolling bug exposed by nvi
873 * src/vte.c (vte_terminal_insert_rows), (_vte_terminal_ensure_row),
874 (vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta):
875 Ensure the rows before updating the insert delta and refactor
878 2007-03-16 Chris Wilson <chris@chris-wilson.co.uk>
880 Bug 417301 – Terminal widgets don't respond to DPI changes
882 * src/vte.c (vte_terminal_fc_settings_changed): Force a font reload
883 after XFT settings have changed.
885 2007-03-12 Behdad Esfahbod <behdad@gnome.org>
891 * configure.in: Bumped version to 0.16.0.
893 * src/Makefile.am: Bumped libtool version to 11:4:2.
895 2007-03-06 Chris Wilson <chris@chris-wilson.co.uk>
897 * src/vteseq.c (vte_sequence_handler_cm), (vte_sequence_handler_sf):
898 More work to match mutt's behaviour under xterm.
900 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
902 * src/vte.c (vte_terminal_io_read):
903 Use the process estimate to load balance between multiple
906 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
908 * src/vteseq.c (vte_sequence_handler_cm),
909 (vte_sequence_handler_dc), (vte_sequence_handler_sf),
910 (vte_sequence_handler_cursor_character_absolute):
911 Tweak the fill of painted cells to match mutt's behaviour
914 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
916 Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
918 * src/vte.c (vte_terminal_map_toplevel),
919 (vte_terminal_hierarchy_changed):
920 Force the visibility state to unobscured after the toplevel is
923 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
925 * src/vte.c (vte_terminal_size_allocate):
926 Note to self: Never try to optimize away the redraw.
928 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
930 * src/vte.c (_vte_terminal_insert_char):
931 * src/vtedraw.c (_vte_draw_text), (_vte_draw_char),
932 (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle):
933 Touch up whitespace in debug output.
935 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
937 * src/vte.c (_vte_invalidate_cells), (vte_terminal_set_visibility),
938 (vte_terminal_paint_area), (vte_terminal_expose):
939 Make sure the invalidated_all flag is cleared in the expose
940 event if we handle it immediately.
942 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
944 * src/vteseq.c (vte_sequence_handler_ce),
945 (vte_sequence_handler_clear_current_line):
946 Fixup invalidation to end-of-line.
948 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
950 cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
952 * src/vte.c (vte_terminal_draw_rows), (vte_terminal_expand_region):
953 Include the window padding when painting the cell backgrounds.
955 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
957 Bug 414586 – Terminal screen blinks when menu is opened for the first time
959 Avoid resetting the window background colour when the style is reset.
960 Avoid clearing the window if we are using a simple color and double
961 bufferring (i.e when we know we are using a pre-cleared pixmap).
964 * src/vte.c (vte_terminal_init), (vte_terminal_size_allocate),
965 (vte_terminal_unrealize), (vte_terminal_realize),
966 (vte_terminal_paint_area), (vte_terminal_expose),
967 (vte_terminal_class_init), (vte_terminal_background_update):
968 * src/vtedraw.c (_vte_draw_has_background_image):
970 * src/vteft2.c (_vte_ft2_set_background_image):
971 * src/vtegl.c (_vte_gl_set_background_image):
972 * src/vtepango.c (_vte_pango_set_background_image):
973 * src/vtepangox.c (_vte_pango_x_set_background_image):
974 * src/vtexft.c (_vte_xft_set_background_image):
976 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
978 Bug 414586 – Terminal screen blinks when menu is opened for the first time
980 * src/vte.c (_vte_invalidate_cells), (_vte_invalidate_all),
981 (vte_terminal_expose), (add_update_timeout):
982 Juggle the handling of external exposes/invalidates to avoid
983 delays in refreshing the display when we are idle.
985 2007-03-05 Chris Wilson <chris@chris-wilson.co.uk>
987 cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
989 * src/vte.c (_vte_invalidate_cells), (vte_terminal_init),
990 (vte_terminal_expand_region), (vte_terminal_paint_area):
991 After enlarging the expand region make sure the dirty area
992 includes the border for edge cells.
994 2007-03-04 Chris Wilson <chris@chris-wilson.co.uk>
996 cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
998 Distinguish between internal update requests and external. If we
999 need to update due to a user action (such as adjusting the background
1000 or color palette) do not impose a futher delay.
1002 Tidy the color palette modification code to not trigger invalidates if
1003 we do not actually modify the palette.
1005 * src/vte-private.h:
1006 * src/vte.c (vte_terminal_set_color_internal),
1007 (vte_terminal_set_color_bold), (vte_terminal_set_color_dim),
1008 (vte_terminal_set_color_foreground),
1009 (vte_terminal_set_color_background),
1010 (vte_terminal_set_color_cursor),
1011 (vte_terminal_set_color_highlight), (vte_terminal_set_colors),
1012 (root_pixmap_changed_cb), (vte_terminal_set_background_saturation),
1013 (vte_terminal_set_background_tint_color), (add_update_timeout):
1014 * src/vteseq.c (vte_sequence_handler_ce),
1015 (vte_sequence_handler_clear_current_line),
1016 (vte_sequence_handler_clear_above_current):
1018 2007-03-02 Chris Wilson <chris@chris-wilson.co.uk>
1020 Bug 413068 – new line added to tab when opened
1022 * src/vte.c (vte_terminal_size_allocate):
1023 Replace the ill-conceived attempt (delta could not be
1024 negative, so insert_delta or scroll_delta would not become
1025 negative either) by only considering changes wrt to the number
1028 2007-03-02 Chris Wilson <chris@chris-wilson.co.uk>
1030 Bug 413068 – new line added to tab when opened
1032 * src/vte.c (_vte_terminal_insert_char):
1033 Improve debug output.
1034 * src/vte.c (vte_terminal_size_allocate):
1035 Be careful that we don't force insert_delta or scroll_delta
1038 2007-03-01 Behdad Esfahbod <behdad@gnome.org>
1040 Released vte-0.15.6.
1044 * configure.in: Bumped version to 0.15.6.
1046 * src/Makefile.am: Bumped libtool version to 11:3:2.
1048 2007-03-01 Chris Wilson <chris@chris-wilson.co.uk>
1050 * src/vte.c (vte_terminal_draw_cells), (vte_terminal_draw_rows),
1051 (vte_terminal_paint):
1052 Tweak the clear widths to include the pixel widening due to
1055 2007-03-01 Chris Wilson <chris@chris-wilson.co.uk>
1057 * src/vte-private.h:
1058 * src/vte.c (_vte_terminal_ensure_row),
1059 (vte_terminal_ensure_cursor), (_vte_terminal_insert_char):
1060 * src/vteseq.c (vte_sequence_handler_ta):
1061 Be more careful when filling in gaps.
1063 2007-03-01 Chris Wilson <chris@chris-wilson.co.uk>
1065 Fix X11 headers / libraries detection on bi-arch systems.
1066 Patch by Frederic Crozat.
1069 Check for x_includes before ac_x_includes, and similary for
1072 2007-03-01 Chris Wilson <chris@chris-wilson.co.uk>
1074 Bug 410534 – Slow content scrolling, takes 100% of CPU.
1077 Further reduce the cap to 80 after more testing on the
1078 broken fglrx driver.
1080 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1082 Bug 413068 – new line added to tab when opened
1084 * src/vte.c (vte_terminal_ensure_font), (vte_terminal_realize):
1085 Beware when no font is set before the first request...
1086 Make sure that at least the default font is set.
1088 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1090 Bug 413262 – Incorrectly coloured tabs
1092 * src/vte-private.h:
1093 * src/vte.c (vte_terminal_ensure_cursor),
1094 (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
1095 (_vte_terminal_feed_chunks), (vte_terminal_set_scrollback_lines):
1096 * src/vteseq.c (vte_sequence_handler_ta),
1097 (vte_sequence_handler_request_terminal_parameters),
1098 (vte_sequence_handler_return_terminal_status),
1099 (vte_sequence_handler_send_primary_device_attributes):
1100 Fill the tab in the current color, else it will be filled at
1101 the time of writing the next character.
1103 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1105 Bug 413102 – Incorrect highlighting in vim
1107 * src/vte-private.h:
1108 * src/vte.c (_vte_terminal_ensure_row),
1109 (_vte_terminal_insert_char):
1110 * src/vteseq.c(vte_sequence_handler_cb),
1111 (vte_sequence_handler_ce), (vte_sequence_handler_cr),
1112 (vte_sequence_handler_ec), (vte_sequence_handler_sf):
1113 Paint the row background when scrolling, this more closely
1114 matches xterm's behaviour.
1116 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1118 Bug 413158 – Cursor trails
1120 * src/vte.c (_vte_invalidate_cell):
1121 _vte_invalidate_cell() can be called to invalidate any visible
1122 cell so issue the invalidate even for blank cells.
1124 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1126 * src/vte.c (_vte_terminal_insert_char):
1127 Correct the OBO in the number of columns ensured.
1129 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1131 Bug 413078 – Crash during opening a new tab whilst scrolling
1133 During input processing it was possible to both remove the timeout and
1134 then add a new one. The currently running timeout would believe that
1135 it was to continue since the terminal was still active, and so *two*
1136 timeouts would be scheduled. Occasionally the second timeout would be
1137 called after the first had finished all the work, resulting in the
1138 second timeout trying to access a NULL active_terminal list.
1140 * src/vte.c (add_update_timeout), (remove_from_active_list),
1141 (vte_terminal_add_process_timeout), (need_processing),
1142 (process_timeout), (update_repeat_timeout), (update_timeout):
1143 Watch for recursive g_source_remove() from within timeouts.
1145 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1147 Bug 410534 – Slow content scrolling, takes 100% of CPU.
1149 Submitting long glyph runs was causing a dramatic (10x) slow down
1150 in the fglrx xserver.
1153 * src/vtexft.c(_vte_xft_draw_text):
1154 Cap the max glyph run length to 300.
1156 2007-02-28 Chris Wilson <chris@chris-wilson.co.uk>
1158 Bug 412717 – Crash when opening a new tab with window maximized
1160 * src/vte.c (vte_terminal_size_allocate):
1161 We didn't carefully check the values we were clamping the
1162 cursor to and ended up setting it to -1... Don't do that!
1164 2007-02-27 Chris Wilson <chris@chris-wilson.co.uk>
1166 * src/vteaccess.c (vte_terminal_accessible_text_scrolled):
1167 Consistently guard against the snapshot being NULL.
1169 2007-02-27 Behdad Esfahbod <behdad@gnome.org>
1171 Released vte-0.15.5.
1175 * configure.in: Bumped version to 0.15.5.
1177 * src/Makefile.am: Bumped libtool version to 11:2:2.
1179 2007-02-27 Chris Wilson <chris@chris-wilson.co.uk>
1181 Bug 412562 – Crash in vte_terminal_match_hilite_update
1183 * src/vte.c (vte_terminal_match_check_internal),
1184 (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
1185 (vte_terminal_paste_cb), (vte_terminal_match_hilite_update),
1186 (vte_terminal_copy_cb):
1187 Fixup a few 64bit-isms, notably format strings and an
1188 undesired unsigned integer promotion causing this crash.
1190 2007-02-27 Chris Wilson <chris@chris-wilson.co.uk>
1192 Bug 410986 – Fails to build with -z defs
1194 If you link the vtemodule.so to libpython, then programs importing
1195 vte will have the symbols twice in memory: one set from python and
1196 the other from libpython.
1199 * python/Makefile.am:
1200 Remove PYTHON_LIBS from linking vtemodule.so.
1201 Convert unresolved symbol errors into warnings so that
1202 building with -Wl,-z,defs continues to work. This is a
1203 *hack* as it hides real errors if you are updating
1206 2007-02-27 Chris Wilson <chris@chris-wilson.co.uk>
1208 * src/vtexft.c (_vte_xft_open_font_for_char),
1209 (_vte_xft_font_for_char), (_vte_xft_compute_char_width),
1210 (_vte_xft_char_width), (_vte_xft_start), (_vte_xft_get_char_width),
1211 (_vte_xft_draw_text):
1212 Avoid some computations whilst drawing text.
1214 2007-02-26 Behdad Esfahbod <behdad@gnome.org>
1216 Released vte-0.15.4.
1220 * configure.in: Bumped version to 0.15.4.
1222 * src/Makefile.am: Bumped libtool version to 11:1:2.
1224 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1226 Bug 410986 – Fails to build with -z defs
1228 The forgotten half - the python module also fails to link.
1231 * python/Makefile.am:
1232 Add PYTHON_LIBS pointing to the customary location and
1233 remember to include them when compiling vtemodule.so.
1235 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1237 Bug 412361 – Yet another mouse selection regression...
1240 * src/vte.c: (vte_terminal_queue_adjustment_value_changed),
1241 (_vte_terminal_adjust_adjustments_full),
1242 (vte_terminal_scroll_pages), (vte_terminal_autoscroll),
1243 (vte_terminal_size_allocate), (vte_terminal_scroll):
1244 We implicitly used a bit of sanity checking when setting the
1245 adjustment value. Ensure the value really is within the
1246 adjustment range before updating scroll_delta.
1248 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1250 Bug 412361 – Yet another mouse selection regression...
1253 * src/vte.c: (vte_terminal_draw_rows):
1254 Restore drawing of the selection below the text.
1256 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1258 * src/vte.c: (vte_terminal_class_init), (time_process_incoming),
1259 (process_timeout), (update_repeat_timeout), (update_timeout):
1260 Update max number of processable bytes each time we call
1261 vte_terminal_process_incoming().
1263 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1265 * src/vte.c: (vte_terminal_emit_adjustment_changed),
1266 (_vte_terminal_adjust_adjustments_full):
1267 Refactor the common code.
1269 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1271 Push a couple of NULL checks to the callers so to be able to move them
1272 outside of the inner-most loops.
1274 * src/vte.c: (_vte_row_data_find_charcell), (_vte_invalidate_cell),
1275 (_vte_terminal_adjust_adjustments),
1276 (vte_terminal_get_text_range_maybe_wrapped), (find_start_column),
1277 (find_end_column), (vte_terminal_draw_rows):
1279 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1281 Some applications, such as cat, dump as much data to the terminal as
1282 possible. In these scenarios it is likely that we will read data from
1283 the child much faster than we can process it and the refresh will
1286 The ideal solution would be to speed up the data processing so that
1287 this overrun was impossible. However, the approach taken here is to
1288 estimate how much data we can actually process in our time slice and
1289 to stop reading once we have sufficient data.
1291 * src/vte-private.h:
1292 * src/vte.c: (_vte_invalidate_all),
1293 (vte_terminal_emit_contents_changed),
1294 (vte_terminal_match_contents_clear),
1295 (vte_terminal_match_contents_refresh),
1296 (vte_terminal_emit_adjustment_changed),
1297 (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
1298 (vte_terminal_catch_child_exited), (vte_terminal_eof),
1299 (vte_terminal_process_incoming), (vte_terminal_io_read),
1300 (vte_terminal_handle_scroll), (vte_terminal_init),
1301 (vte_terminal_size_allocate), (need_processing), (process_timeout),
1302 (update_repeat_timeout), (update_timeout):
1303 * src/vteseq.c: (vte_sequence_handler_decset_internal):
1305 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1307 Bug 411000 – Orca repeats old text in gnome-terminal
1309 The deferred handling of the window scrolling had the unfortunate
1310 side-effect of postponing the accessibility 'text-scrolled' signal
1311 until after the 'text-inserted' signal. This caused vteaccess to
1312 determine that the whole window had been modified and cause orca to
1313 reread the entire screen.
1315 * src/vte-private.h:
1316 * src/vte.c: (vte_terminal_emit_contents_changed),
1317 (_vte_terminal_queue_contents_changed),
1318 (vte_terminal_emit_cursor_moved),
1319 (vte_terminal_queue_cursor_moved), (vte_terminal_scroll_pages),
1320 (vte_terminal_eof), (vte_terminal_emit_pending_text_signals),
1321 (vte_terminal_process_incoming), (vte_terminal_handle_scroll),
1322 (vte_terminal_size_allocate), (vte_terminal_unrealize),
1323 (vte_terminal_emit_pending_signals):
1324 * src/vteaccess.c: (emit_text_caret_moved),
1325 (emit_text_changed_insert), (emit_text_changed_delete):
1326 * src/vteseq.c: (vte_sequence_handler_decset_internal):
1327 Restore the order of the ally signals. However, Bug 372777
1330 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1332 * src/vte.c: (vte_terminal_io_read):
1333 Eeek, correctly compute the buffer length when we no longer
1336 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1338 Use a separate debug flag for the ally interface.
1340 * src/debug.c: (_vte_debug_parse_string):
1343 (vte_terminal_accessible_update_private_data_if_needed),
1344 (vte_terminal_accessible_invalidate_cursor),
1345 (vte_terminal_accessible_finalize),
1346 (vte_terminal_accessible_get_text),
1347 (vte_terminal_accessible_get_text_somewhere),
1348 (vte_terminal_accessible_text_init),
1349 (vte_terminal_accessible_component_init),
1350 (vte_terminal_accessible_action_init),
1351 (vte_terminal_accessible_factory_new):
1353 2007-02-26 Chris Wilson <chris@chris-wilson.co.uk>
1355 * src/vte-private.h:
1356 * src/vte.c: (vte_terminal_io_read):
1357 And finally clamp the maximum number of bytes transferred in
1360 2007-02-24 Chris Wilson <chris@chris-wilson.co.uk>
1363 Hint that the compiler should inline
1364 vte_terminal_determine_colors().
1366 2007-02-24 Chris Wilson <chris@chris-wilson.co.uk>
1368 cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
1369 cf Bug 410463 – Poor interactive performance with multiple terminals
1371 * src/vte.c: (vte_terminal_io_read):
1372 Do not loop whilst reading in a backlog of child data - should
1373 help prevent monopolisation of vte by a single child and make
1374 vte more responsive to user input on slower computers.
1376 2007-02-24 Chris Wilson <chris@chris-wilson.co.uk>
1378 Bug 159078 – slow highlight
1380 Do not update the match hilite during a selection-drag.
1381 Record unsuccesful regex matches, so we can quickly determine whether
1382 the cursor is still inside the blank region.
1384 * src/vte-private.h:
1385 * src/vte.c: (vte_terminal_match_check_internal),
1386 (rowcol_inside_match), (vte_terminal_match_check),
1387 (_vte_terminal_set_pointer_visible),
1388 (vte_terminal_match_hilite_clear),
1389 (vte_terminal_match_hilite_show), (vte_terminal_match_hilite_hide),
1390 (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
1391 (vte_terminal_motion_notify), (vte_terminal_button_press),
1392 (vte_terminal_focus_in), (vte_terminal_focus_out),
1393 (vte_terminal_enter), (vte_terminal_leave), (vte_terminal_init),
1394 (vte_terminal_unrealize), (vte_terminal_draw_rows),
1395 (vte_terminal_paint):
1397 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1399 A couple of compiler warnings and avoid unnecessary arithmetic.
1401 * src/vte.c: (_vte_terminal_set_default_attributes),
1402 (find_start_column), (find_end_column),
1403 (vte_terminal_start_selection), (vte_terminal_extend_selection),
1404 (vte_terminal_draw_rows), (vte_terminal_paint):
1405 * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_for_char),
1406 (_vte_xft_char_width), (_vte_xft_unlock_fonts), (_vte_xft_start),
1407 (_vte_xft_clip), (_vte_xft_set_text_font), (_vte_xft_draw_text):
1409 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1411 Bug 411276 – SVN trunk compilation error
1415 Check that the header file defines FcStrFree before checking
1416 for the availability of the function. Complete hack, but
1419 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1421 Bug 411276 – SVN trunk compilation error
1424 Ubuntu Edgy appears to have a broken fontconfig-dev package
1425 where the function is exported from the library but is missing
1426 the corresponding prototypes.
1427 So we reorder the determination of the compilation flags
1428 before checking for available functions in the hope that the
1429 tests will then match the results at compile time.
1431 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1433 * src/vte.c: (vte_terminal_io_read):
1434 Prevent a deadlock on recursively grabbing the gdk_mutex.
1436 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1438 Heuristic to avoid a read when it's likely to just return EAGAIN.
1440 * src/vte-private.h:
1441 * src/vte.c: (vte_terminal_io_read), (process_timeout),
1442 (update_repeat_timeout), (update_timeout):
1444 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1446 Add a new debug flag to monitor draw operations.
1447 Don't issue individual glyphs for is_local_graphic() in the middle of
1450 * src/debug.c: (_vte_debug_parse_string):
1452 * src/vte.c: (vte_terminal_unichar_is_local_graphic),
1453 (vte_terminal_draw_rows), (vte_terminal_paint):
1454 * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
1455 (_vte_draw_new), (_vte_draw_free), (_vte_draw_get_visual),
1456 (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
1457 (_vte_draw_set_background_color), (_vte_draw_set_background_image),
1458 (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
1459 (_vte_draw_set_text_font), (_vte_draw_get_text_width),
1460 (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
1461 (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
1462 (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
1463 (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
1464 (_vte_draw_set_scroll):
1466 * src/vteft2.c: (_vte_ft2_draw_has_char):
1467 * src/vtegl.c: (_vte_gl_draw_has_char):
1468 * src/vtepango.c: (_vte_pango_draw_has_char):
1469 * src/vtepangox.c: (_vte_pango_x_draw_has_char):
1470 * src/vteskel.c: (_vte_skel_draw_has_char):
1471 * src/vtexft.c: (_vte_xft_draw_has_char):
1473 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1475 * src/vte.c: (vte_terminal_draw_rows):
1476 Don't break a glyph run for a graphic, issue the draw
1479 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1481 Cache the font metrics on the vte_xft_font, avoids having to remeasure
1482 when opening a new terminal.
1484 * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_set_text_font):
1486 2007-02-23 Chris Wilson <chris@chris-wilson.co.uk>
1488 Share XftFonts between terminal backends and preserve faces from the
1489 previous draw - helps prevents font cache thrashing inside libXft.
1491 * src/vtexft.c: (_vte_xft_font_hash), (_vte_xft_font_equal),
1492 (_vte_xft_font_open), (_vte_xft_font_close),
1493 (_vte_xft_font_for_char), (_vte_xft_unlock_fonts),
1494 (_vte_xft_destroy), (_vte_xft_start), (_vte_xft_end),
1495 (ptr_array_zeroed_new), (_vte_xft_set_text_font),
1496 (_vte_xft_get_char_width), (_vte_xft_draw_text),
1497 (_vte_xft_draw_char):
1499 2007-02-22 Chris Wilson <chris@chris-wilson.co.uk>
1501 Bug 410986 – Fails to build with -z defs
1502 Patch by Loïc Minier.
1505 Add FreeType to the libs.
1507 2007-02-22 Chris Wilson <chris@chris-wilson.co.uk>
1509 * src/vte.c: (vte_terminal_send):
1510 Return in the face of error as we appear to hit this in the
1513 2007-02-22 Chris Wilson <chris@chris-wilson.co.uk>
1515 Bug 410819 – slider not correctly positioned after calling less
1517 * src/vte.c: (_vte_terminal_adjust_adjustments),
1518 (_vte_terminal_adjust_adjustments_full),
1519 (vte_terminal_maybe_scroll_to_top), (vte_terminal_size_allocate),
1520 (vte_terminal_set_scrollback_lines):
1521 * src/vteseq.c: (vte_sequence_handler_decset_internal):
1522 Fixup a lot of issues with changing the number of scrollback
1523 lines, such as missing value_changed signals for the
1524 scrollbar and a couple of missing CLAMPs.
1526 2007-02-22 Chris Wilson <chris@chris-wilson.co.uk>
1528 After adjusting the current profile, the last line gets chomped.
1530 * src/vte.c: (vte_terminal_set_scrollback_lines):
1532 2007-02-21 Chris Wilson <chris@chris-wilson.co.uk>
1534 cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
1536 * src/vte.c: (vte_terminal_scroll),
1537 (vte_terminal_set_scrollback_lines):
1538 Operate on scroll delta directly as adjustment->value updates
1539 are not instantaneous and we may have several scroll events
1540 before the next update.
1542 2007-02-21 Chris Wilson <chris@chris-wilson.co.uk>
1544 Bug 410463 – Poor interactive performance with multiple terminals
1546 * src/vte.c: (vte_terminal_io_read), (process_timeout),
1547 (update_repeat_timeout):
1548 When multiple terminals are active, poll the IO sources
1549 from within the process/display timeout (akin to
1550 interrupt mitigation).
1551 Return to normal interrupts when we only have a single active
1552 terminal - so we don't sacrifice high performance.
1554 2007-02-21 Chris Wilson <chris@chris-wilson.co.uk>
1556 A small bit of callgrinding, avoid the modulus inside
1557 vte_terminal_ensure_cursor() by caching the last row_data.
1559 * src/iso2022.c: (process_cdata):
1560 * src/ring.c: (_vte_ring_new), (_vte_ring_insert),
1561 (_vte_ring_insert_preserve), (_vte_ring_remove):
1563 * src/table.c: (_vte_table_match):
1564 * src/vte.c: (_vte_terminal_ensure_cursor),
1565 (_vte_terminal_insert_char), (vte_terminal_process_incoming):
1567 2007-02-21 Chris Wilson <chris@chris-wilson.co.uk>
1569 Callgrind strikes again...
1570 Inserting a char is a rare operation (especially in the scrolling
1571 benchmark!) so only read the old cell during an insert. This wins
1572 about 5% during a hexdump.
1574 * src/iso2022.c: (_vte_iso2022_find_nextctl),
1575 (_vte_iso2022_fragment_input), (process_cdata):
1576 * src/vte.c: (_vte_terminal_insert_char):
1577 * src/vteseq.c: (vte_sequence_handler_sf):
1579 2007-02-21 Chris Wilson <chris@chris-wilson.co.uk>
1581 RedHat Bug 113195: First line displayed incorrectly if prompt changes background color
1583 e.g. PS1='\e[46m[\u@\h:\w]\e[m \e[45m'
1584 The issue is when we insert a char on a new row and the background is
1585 not the default, we fill the entire row with the *current* colour.
1586 This behaviour is incorrect, and the fix is to fill to the end of the
1587 line on a carriage return.
1589 * src/vte-private.h:
1590 * src/vte.c: (_vte_terminal_ensure_cursor),
1591 (_vte_terminal_insert_char), (vte_terminal_process_incoming),
1592 (vte_terminal_send):
1593 * src/vteseq.c: (vte_sequence_handler_ce),
1594 (vte_sequence_handler_cr), (vte_sequence_handler_cs),
1595 (vte_sequence_handler_cS),
1596 (vte_sequence_handler_cursor_lower_left),
1597 (vte_sequence_handler_dc), (vte_sequence_handler_ic),
1598 (vte_sequence_handler_sf):
1600 2007-02-20 Chris Wilson <chris@chris-wilson.co.uk>
1602 RedHat Bug 123845: gnome-terminal not parsing cursor position escape sequence properly
1605 * src/vteseq.c: (vte_sequence_handler_cm):
1606 Add 'ESC [ Pn H' to cursor-position and provide default
1609 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1611 Bug 409055 – Terminal stays blank
1613 Due to GTK+ coallescing of XExposeEvents it was possible for our
1614 GdkExposeEvent to arrive before the GdkVisibilityEvent associated with
1615 the mapping of our toplevel and so we discarded the event as we
1616 believed we were still unviewable.
1618 * src/vte.c: (_vte_invalidate_cells), (vte_terminal_expose),
1619 (reset_update_regions):
1620 Assume that all GdkExposeEvents have been checked for
1621 suitability before delivery. We know this true for locally
1622 generated expose events which are extensively checked during
1623 invalidation, and we presume that X will not generate expose
1624 events on unmapped or otherwise unviewable windows.
1626 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1628 * src/vte.c: (_vte_terminal_adjust_adjustments),
1629 (_vte_terminal_adjust_adjustments_full):
1630 Dead code elimination.
1632 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1635 A simple script to dump a fixed amount of random data to the
1638 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1640 A few more trivial incremental improvements.
1643 * src/iso2022.c: (_vte_iso2022_map_get):
1644 Switch to a VteTree.
1645 * src/vte.c: (_vte_terminal_update_insert_delta),
1646 (_vte_terminal_insert_char):
1647 No need to ensure the cursor when scrolling, only before
1649 * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
1650 (_vte_xft_font_for_char), (_vte_xft_end):
1651 Lock the face over the entire expose.
1653 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1655 Improve handling of parallel 'cat /dev/urandom' - notably a crasher
1656 in the table matcher, repeated g_getenv processing and wasted time
1659 * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
1660 (_vte_iso2022_map_init), (_vte_iso2022_map_get),
1661 (process_8_bit_sequence), (process_cdata),
1662 (_vte_iso2022_process_single), (_vte_iso2022_process):
1663 * src/table.c: (_vte_table_match):
1664 * src/vte-private.h:
1666 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1668 * src/vte.c: (update_timeout):
1669 In conjunction with the previous fix, since the terminal
1670 can be removed from the active list by
1671 vte_terminal_process_incoming() we need to be careful whilst
1672 iterating along the active list.
1674 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1676 <fcrozat> ickle: hi.. our kernel hacker just found a nice reproducible
1679 <fcrozat> very easy to reproduce
1682 then press Ctrl-Shift-T to open a new tab
1685 * src/vte.c: (process_timeout), (update_repeat_timeout):
1686 vte_terminal_process_incoming() can trigger a terminal reset
1687 which will remove the terminal from the active list, and then
1688 we attempt to remove it again after handling the incoming
1689 data. The fix is simple - don't delete the link if the the
1690 terminal is no longer active.
1692 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1694 As noticed on bug 409055, we do not receive a visibility-notify
1695 event when we switch workspaces (or even when the window is iconified).
1696 The workaround for this is to watch for our toplevel being unmapped
1697 and set the fully-obscured flag.
1699 * src/vte.c: (vte_terminal_configure_toplevel),
1700 (vte_terminal_unmap_toplevel), (vte_terminal_hierarchy_changed),
1701 (vte_terminal_set_visibility), (vte_terminal_visibility_notify):
1703 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1705 * src/vte.c: (visibility_state_str),
1706 (vte_terminal_visibility_notify), (vte_terminal_init),
1707 (vte_terminal_realize):
1708 Add the visibility state to the debug output.
1710 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1713 Add the configuration details to config.log as well.
1715 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1717 Bug 409241 – gnome-terminal crashed with SIGSEGV in vte_terminal_draw_graphic()
1719 * src/vte.c: (vte_terminal_paint):
1720 Lookup fore/back colours before attempting to draw the graphic
1721 character behind the unfocused cursor.
1723 2007-02-19 Chris Wilson <chris@chris-wilson.co.uk>
1725 * src/vte.c: (vte_terminal_visibility_notify):
1726 Add VTE_DEBUG_EVENT info.
1728 2007-02-16 Chris Wilson <chris@chris-wilson.co.uk>
1730 Bug 407945 – "GNOME" Terminal" regression after "vte" update when using "csh"
1732 When passing multiple versions of the same environment
1733 variable to execve (i.e g_spawn) the result is undefined.
1734 So we solve the ambiguity by using the application passed env to
1735 override values from the current environment.
1737 * src/pty.c: (collect_variables), (merge_environ),
1738 (_vte_pty_run_on_pty):
1740 2007-02-16 Chris Wilson <chris@chris-wilson.co.uk>
1742 Bug 408536 – trouble compiling vte 0.15.3
1745 * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
1746 Check for availability of FcStrFree() - only used for
1747 debugging purposes so we can live without it.
1749 2007-02-15 Chris Wilson <chris@chris-wilson.co.uk>
1751 Guard against a missing default number of rows or columns
1754 * src/vte-private.h:
1755 * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
1757 2007-02-15 Chris Wilson <chris@chris-wilson.co.uk>
1759 Bug 408040 – vte automagic hyperlinks
1760 Patch by Gilles Dartiguelongue.
1763 Correct the typo in the nntp protocol matcher.
1765 2007-02-14 Chris Wilson <chris@chris-wilson.co.uk>
1767 Bug 407839 – Use of environ breaks build on Solaris
1768 Original patch by Damien Carbery.
1771 extern char **environ - glibc was 'conveniently' declaring
1774 2007-02-13 Chris Wilson <chris@chris-wilson.co.uk>
1776 uws reported that scrolling inside screen with a status line was
1777 broken. Indeed any scrolling inside an alternative screen was broken,
1778 e.g. plain vim would not always update the topmost line. The issue was
1779 the interaction with the deferred value-changed signal emission and
1780 failing to correctly maintain the current scroll_delta. The fix is
1781 that we always now apply changes to the scroll_delta and swap
1782 scroll_delta with adjustment->value before the deferred signal
1783 emission to correctly trigger the handle_scroll().
1785 * src/vte-private.h:
1786 * src/vte.c: (_vte_invalidate_cells),
1787 (vte_terminal_emit_adjustment_changed),
1788 (vte_terminal_queue_adjustment_value_changed),
1789 (_vte_terminal_adjust_adjustments),
1790 (_vte_terminal_adjust_adjustments_full),
1791 (vte_terminal_maybe_scroll_to_bottom),
1792 (vte_terminal_process_incoming), (vte_terminal_extend_selection),
1793 (vte_terminal_handle_scroll), (vte_terminal_set_scrollback_lines):
1794 * src/vteseq.c: (vte_sequence_handler_sf):
1796 2007-02-13 Chris Wilson <chris@chris-wilson.co.uk>
1798 Bug 407358 – regression in mouse selection
1800 * src/vte.c: (vte_terminal_motion_notify):
1801 When outside the terminal we used an uninitialised variable to
1802 determine the mouse tracking mode.
1804 2007-02-12 Behdad Esfahbod <behdad@gnome.org>
1806 Released vte-0.15.3.
1810 * configure.in: Bumped version to 0.15.3.
1812 * src/Makefile.am: Bumped libtool version to 11:0:2.
1814 2007-02-12 Chris Wilson <chris@chris-wilson.co.uk>
1816 * src/vte.c: (vte_terminal_extend_selection),
1817 (vte_terminal_motion_notify):
1818 Restore autoscroll behaviour.
1820 2007-02-12 Chris Wilson <chris@chris-wilson.co.uk>
1822 * src/vte.c: (vte_terminal_start_selection):
1823 Invalidate the selected region when starting in
1824 select-word or select-line mode.
1826 2007-02-12 Chris Wilson <chris@chris-wilson.co.uk>
1828 Restore double-click to select word behaviour, broken by r1671 as
1829 the second click occurs in the same place as the first (obviously!).
1831 * src/vte.c: (vte_terminal_extend_selection),
1832 (vte_terminal_autoscroll), (vte_terminal_motion_notify),
1833 (vte_terminal_button_press):
1835 2007-02-12 Chris Wilson <chris@chris-wilson.co.uk>
1837 Bug 407091 – vte_terminal_fork_command() env argument changed semantic in 0.15.2
1838 Original patch by Michael Vogt.
1840 * src/pty.c: (_vte_pty_run_on_pty):
1841 Copy the current environment into the child's.
1843 2007-02-11 Chris Wilson <chris@chris-wilson.co.uk>
1845 Bug 323393 – Hyper-sensitive selection
1847 * src/vte.c: (vte_terminal_extend_selection):
1848 Don't start (or update) the selection until you
1849 move off the current cell (character).
1851 2007-02-11 Chris Wilson <chris@chris-wilson.co.uk>
1853 Bug 406763 – Selecting double-wide characters
1855 * src/vte.c: (start_column), (end_column),
1856 (vte_terminal_start_selection), (vte_terminal_extend_selection),
1857 (vte_terminal_draw_rows):
1858 Extend selection to include fragment cells i.e. double-wide
1861 2007-02-10 Chris Wilson <chris@chris-wilson.co.uk>
1863 Have a separate adjust_adjustments for when we know that the page
1864 size and step lengths may have changed.
1866 * src/vte.c: (_vte_terminal_adjust_adjustments),
1867 (_vte_terminal_adjust_adjustments_full),
1868 (vte_terminal_set_scrollback_lines), (vte_terminal_reset):
1870 2007-02-10 Chris Wilson <chris@chris-wilson.co.uk>
1872 * src/vte.c: (_vte_terminal_adjust_adjustments),
1873 (vte_terminal_size_allocate), (vte_terminal_set_scrollback_lines):
1874 Prevent the display of garbage after resizing and switching
1875 between alternate screens.
1876 However, instead of displaying garbage after the cursor, we
1877 lose some data above the current scroll delta, should we have
1878 a full history. Bizarre.
1880 2007-02-09 Chris Wilson <chris@chris-wilson.co.uk>
1882 * src/vte.c: (_vte_terminal_adjust_adjustments):
1883 Do not allow to scroll past the last line after reducing
1885 * src/vtexft.c: (_vte_xft_set_text_font):
1886 Ensure a fallback height is set.
1888 2007-02-09 Chris Wilson <chris@chris-wilson.co.uk>
1890 * src/vte.c: (vte_terminal_get_text_range_maybe_wrapped):
1891 Reuse VteRowData whilst in the row.
1893 2007-02-09 Chris Wilson <chris@chris-wilson.co.uk>
1895 Rework to reduce number of times mutex is taken and shorten the hold.
1897 * src/vte.c: (vte_terminal_queue_adjustment_changed),
1898 (vte_terminal_queue_adjustment_value_changed),
1899 (vte_terminal_io_read), (vte_terminal_paint),
1900 (vte_terminal_add_process_timeout), (vte_terminal_is_processing),
1901 (vte_terminal_start_processing):
1903 2007-02-09 Chris Wilson <chris@chris-wilson.co.uk>
1905 A number of small bug fixes...
1906 - do not override the user setting of scrollback lines with the
1908 - only set the current screen rather than both and so reset the
1909 scrollback lines when we switch between normal and alternate.
1910 - do not invalidate inside set_scrollback lines as setting does not
1911 actually modify the on-screen contents.
1912 - push the scroll-adjustment to the post-processing emission.
1913 - queue timeouts on value change (should be a no-op)
1914 - reorder emission so that scrolling occurs before invalidating the
1915 window (ie so that the scroll happens this cycle, not next).
1917 Still unsolved: the clamping of the cursor when switching between
1920 * src/vte-private.h:
1921 * src/vte.c: (vte_terminal_emit_adjustment_changed),
1922 (vte_terminal_queue_adjustment_changed),
1923 (vte_terminal_queue_adjustment_value_changed),
1924 (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
1925 (vte_terminal_maybe_scroll_to_top),
1926 (vte_terminal_maybe_scroll_to_bottom),
1927 (_vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta),
1928 (vte_terminal_process_incoming), (vte_terminal_extend_selection),
1929 (vte_terminal_autoscroll), (vte_terminal_handle_scroll),
1930 (vte_terminal_size_allocate), (vte_terminal_scroll),
1931 (vte_terminal_background_update),
1932 (vte_terminal_queue_background_update),
1933 (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
1934 (add_process_timeout), (vte_terminal_add_process_timeout),
1935 (vte_terminal_start_processing), (update_repeat_timeout),
1937 * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
1938 (vte_sequence_handler_decset_internal), (vte_sequence_handler_al),
1939 (vte_sequence_handler_dl), (vte_sequence_handler_sf),
1940 (vte_sequence_handler_sr), (vte_sequence_handler_clear_screen),
1941 (vte_sequence_handler_cursor_character_absolute),
1942 (vte_sequence_handler_insert_lines),
1943 (vte_sequence_handler_delete_lines),
1944 (vte_sequence_handler_screen_alignment_test):
1946 2007-02-08 Chris Wilson <chris@chris-wilson.co.uk>
1948 * src/vteapp.c: (main): whitespace
1950 2007-02-08 Chris Wilson <chris@chris-wilson.co.uk>
1952 Bug 363597 – Scrollback in profile dialog doesn't work
1954 * src/vte-private.h:
1955 * src/vte.c: (vte_terminal_init),
1956 Only use SCROLLBACK_MIN during initialisation, so rename it
1958 (vte_terminal_set_scrollback_lines):
1959 Remove MAX(lines, SCROLLBACK_MIN) and update code comments
1960 to reduce confusion.
1962 2007-02-08 Mariano Suárez-Alvarez <mariano@gnome.org>
1964 * src/vteapp.c(main): do something useful with --geometry.
1966 2007-02-08 Chris Wilson <chris@chris-wilson.co.uk>
1968 Use gtk_widget_get_(screen|display) which will itself return a default
1969 if not currently attached.
1971 * src/vtedraw.c: (_vte_draw_get_colormap):
1972 * src/vtefc.c: (_vte_fc_defaults_from_gtk):
1973 * src/vtegl.c: (_vte_gl_check), (_vte_gl_create),
1974 (_vte_gl_destroy), (_vte_gl_start), (_vte_gl_end), (_vte_gl_clear),
1975 (_vte_gl_draw_text), (_vte_gl_rectangle):
1976 * src/vterdb.c: (_vte_rdb_get):
1977 * src/vteseq.c: (vte_sequence_handler_window_manipulation):
1979 2007-02-08 Chris Wilson <chris@chris-wilson.co.uk>
1981 Some more callgrinding - kill a little bit of overhead.
1983 * src/iso2022.c: (_vte_iso2022_sequence_length),
1984 (_vte_iso2022_fragment_input), (process_control):
1985 * src/matcher.c: (_vte_matcher_free_params_array):
1986 * src/vteconv.c: (_vte_conv):
1988 2007-02-07 Chris Wilson <chris@chris-wilson.co.uk>
1990 Actually return whether or not we found the char in
1991 _vte_xft_font_for_char - saves having to double check afterwards!
1993 * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_set_text_font),
1994 (_vte_xft_draw_text):
1996 2007-02-07 Chris Wilson <chris@chris-wilson.co.uk>
1998 As spotted perusing roxterm, we fail to redraw after changing the text
2001 * src/vte.c: (vte_terminal_set_color_internal):
2002 Remember to invalidate all!
2004 2007-02-07 Chris Wilson <chris@chris-wilson.co.uk>
2006 * src/vte.c: (vte_terminal_match_check_internal):
2007 Scan for newlines before and after the current row
2008 to find the entire line in case of soft-wrapping.
2010 2007-02-07 Chris Wilson <chris@chris-wilson.co.uk>
2012 Bug 345344 – Pattern matching is inefficient
2013 Bug 324246 – Performance degredation with large numbers of highlighted addresses/URLs
2015 * src/vte.c: (vte_terminal_match_check_internal):
2016 Trim the searched string down to the row containing the
2017 pointer. During a mutt session this drops the time consumed by
2018 regexec from ~30% to ~2%.
2019 Note: multi-line regexes are now unsupported!
2021 2007-02-07 Chris Wilson <chris@chris-wilson.co.uk>
2023 * src/vteseq.c: (_vte_sequence_get_handler):
2024 Avoid the strlen when possible.
2026 2007-02-07 Chris Wilson <chris@chris-wilson.co.uk>
2028 Some cleanups and a bug...
2030 vte_terminal_match_hilite() compared the current cell to the last
2031 mouse position without a floor().
2033 * src/vte.c: (vte_terminal_process_incoming),
2034 (vte_terminal_match_hilite), (vte_terminal_select_all),
2035 (vte_terminal_select_none), (vte_terminal_motion_notify),
2036 (vte_terminal_button_press):
2038 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2040 Bug 86119 – "select all" feature
2041 Original patch by Simone Gotti.
2043 * src/vte.c: (vte_terminal_select_all), (vte_terminal_select_none):
2045 Add 2 new API entry points to select the entire contents
2046 and clear the current selection.
2048 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2050 Bug 342059 – ASCII escape sequences don't work as expected
2051 Correction by Mariano Suárez-Alvarez.
2053 * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
2054 OBO on the parameter.
2056 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2058 Bug 342059 – ASCII escape sequences don't work as expected
2059 Patch by Mariano Suárez-Alvarez.
2061 * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
2062 Provide a default value.
2064 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2066 And finally as noted on bug 324246#c8 hide the hilite when the mouse
2067 leaves the terminal (show again when it enters and let motion-notify
2070 * src/vte.c: (vte_terminal_enter), (vte_terminal_leave),
2071 (vte_terminal_realize), (vte_terminal_class_init):
2073 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2075 As noted on bug 324246#c8, hide the hilite when the focus disappears.
2076 On focus restore the match for the last mouse coordinates and let
2077 motion-notify take care of the rest.
2079 * src/vte.c: (vte_terminal_match_hilite_update),
2080 (vte_terminal_match_hilite), (vte_terminal_focus_in):
2082 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2084 Convert the exposed rectangles to cells and remerge them.
2086 * src/vte.c: (vte_terminal_expand_region),
2087 (vte_terminal_paint_area), (vte_terminal_paint):
2089 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2091 As noted on Bug 401052#c13, vte fails to completely clear the cell's
2094 * src/vte.c: (_vte_invalidate_cells):
2095 Grow the invalidate region by a single pixel to accomodate
2096 antialiased pseudo-bold characters.
2098 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2100 Move status_line_changed to post-processing emission.
2102 * src/vte-private.h:
2103 * src/vte.c: (_vte_terminal_insert_char), (vte_terminal_reset),
2104 (vte_terminal_emit_pending_signals):
2105 * src/vteseq.c: (vte_sequence_handler_ts):
2107 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2109 Clamp down on needless invalidates during selection.
2111 As commented on in Bug 401052#c10
2113 * src/vte.c: (_vte_invalidate_region), (vte_terminal_deselect_all),
2114 (vte_terminal_match_hilite_clear), (vte_terminal_start_selection),
2115 (vte_terminal_extend_selection):
2117 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2119 * src/vte.c: (vte_terminal_draw_rows):
2120 Don't needlessly break the text run on a space if we are
2121 not drawing cell attributes.
2123 2007-02-06 Chris Wilson <chris@chris-wilson.co.uk>
2125 * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht):
2127 * src/vte.c: (vte_terminal_match_hilite),
2128 (vte_terminal_motion_notify):
2129 Avoid expensive hiliting if the pointer is not in the window.
2130 * src/vteregex.c: (_vte_regex_exec):
2131 Prefer g_new(x,n) over g_malloc(sizeof(x)*n)
2133 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2135 Bug 404757 – URL matching doesn't work with PCRE
2138 mention the inconsistency in the help string and default to no.
2140 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2142 * src/vte.c: (vte_terminal_draw_rows):
2143 Don't draw cell attributes across spaces.
2145 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2147 * src/vte.c: (_vte_terminal_insert_char):
2148 A couple more G_LIKELYs.
2150 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2152 Bug 403028 – decset mode 12 = blinking cursor
2154 * src/vteseq.c: (vte_sequence_handler_decset_internal):
2155 Following convention, disallow the application's control
2156 over the blinking cursor in favour of the user's setting.
2158 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2160 Some more small callgrind tweaks - well into the law of diminishing
2163 * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht),
2164 (_vte_iso2022_is_ambiguous), (process_8_bit_sequence),
2165 (process_cdata), (_vte_iso2022_unichar_width):
2166 * src/matcher.c: (_vte_matcher_free_params_array):
2167 * src/vte.c: (vte_terminal_process_incoming):
2169 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2171 Beware the trivial change. Handle reuse of GValueArray correctly.
2173 * src/matcher.c: (_vte_matcher_match):
2174 * src/table.c: (_vte_table_match):
2175 * src/trie.c: (_vte_trie_match):
2176 * src/vte.c: (vte_terminal_process_incoming):
2178 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2180 * src/table.c: (_vte_table_match):
2181 And kill the leak as vte_table_match erroneously cleared
2182 its output arguments.
2184 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2186 The continual reallocation of GValueArray is the last trivially
2187 avoidable g_realloc.
2189 * src/interpret.c: (main):
2190 * src/matcher.c: (_vte_matcher_create), (_vte_matcher_destroy),
2191 (_vte_matcher_match), (_vte_matcher_free_params_array):
2193 * src/table.c: (_vte_table_extract_string):
2194 * src/trie.c: (_vte_trie_matchx), (_vte_trie_match), (main):
2195 * src/vte.c: (vte_terminal_process_incoming):
2197 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2199 * src/ring.c: (_vte_ring_insert):
2200 Missed an important compiler warning.
2202 2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
2204 cf Bug 342338 – suffers from memory fragmentation
2206 Reuse the last VteRowData instead of immediately freeing it. Avoids
2207 recreating and *regrowing* a new GArray on the heap.
2209 In the simple scrolling benchmarks this can boost performance by as
2212 * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
2213 (_vte_ring_remove), (_vte_ring_append):
2215 * src/vte-private.h:
2216 * src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor),
2217 (_vte_terminal_insert_char), (vte_terminal_reset_rowdata):
2218 * src/vteseq.c: (vte_insert_line_internal),
2219 (vte_sequence_handler_scroll_up_or_down),
2220 (vte_sequence_handler_cd), (vte_sequence_handler_sf),
2221 (vte_sequence_handler_clear_screen),
2222 (vte_sequence_handler_screen_alignment_test):
2224 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2226 A few more compiler warnings.
2228 * src/buffer.c: (_vte_buffer_peek_gstring):
2229 * src/iso2022.c: (process_control):
2230 * src/vteft2.c: (_vte_ft2_set_text_font):
2231 * src/vteseq.c: (vte_sequence_handler_set_title_internal):
2232 * src/vtetc.c: (_vte_termcap_parse_file):
2234 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2236 Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
2239 * src/vteglyph.c: (_vte_glyph_cache_set_font_description):
2240 * src/vtepango.c: (_vte_pango_set_text_font):
2241 * src/vtepangox.c: (_vte_pango_x_set_text_font):
2242 * src/vtexft.c: (_vte_xft_set_text_font):
2243 Detect a change in font between wide-chars and recheck for a
2244 fixed-width estimate.
2246 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2250 * src/table.c: (_vte_table_match):
2251 No need set to NULL.
2252 * src/vte.c: (_vte_terminal_ensure_cursor):
2253 If we have added some rows, the last is the current.
2255 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2257 Move window/icon title changed to the post-processing emission - helps
2258 with the artificial benchmark of replaying a recorded jhbuild script.
2260 * src/vte-private.h:
2261 * src/vte.c: (vte_terminal_finalize),
2262 (vte_terminal_emit_icon_title_changed),
2263 (vte_terminal_emit_window_title_changed),
2264 (vte_terminal_emit_pending_signals):
2265 * src/vteseq.c: (vte_sequence_handler_set_title_internal):
2267 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2269 Broke clear-to-end-of-line by lowering the number of cells appended,
2270 instead of the number of cells invalidated.
2272 * src/vte.c: (vte_terminal_draw_rows):
2273 * src/vteseq.c: (vte_sequence_handler_ce):
2275 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2277 cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on unaccelerated X server
2279 Another chunk of performance improvements - the majority focusing on
2280 reducing the amount of work down per interrupt (input data from
2283 To handle reads without addition copies VTE_INPUT_CHUNK_SIZE chunks
2284 are allocated on demand and filled from read with no further copy -
2285 previously the read was into a local buffer and then immediately
2286 copied into a _vte_buffer.
2287 _vte_iso2022_process() is then adjusted to use a ptr+length, rather
2288 than a _vte_buffer and is called for every input chunk (taking special
2289 care over the boundary cases).
2291 * src/interpret.c: (main):
2292 * src/iso2022.c: (_vte_iso2022_fragment_input),
2293 (process_8_bit_sequence), (process_cdata), (_vte_iso2022_process):
2295 * src/vte-private.h:
2296 * src/vte.c: (get_chunk), (release_chunk), (prune_chunks),
2297 (_vte_incoming_chunks_release), (_vte_incoming_chunks_length),
2298 (_vte_incoming_chunks_count), (_vte_incoming_chunks_reverse),
2299 (vte_terminal_match_check_internal), (_vte_terminal_ensure_cursor),
2300 (vte_terminal_set_colors), (_vte_terminal_insert_char),
2301 (vte_terminal_catch_child_exited), (vte_terminal_eof),
2302 (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
2303 (vte_terminal_io_read), (vte_terminal_feed), (vte_terminal_send),
2304 (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
2305 (remove_from_active_list), (need_processing), (update_regions),
2306 (update_repeat_timeout):
2308 * src/vteseq.c: (vte_sequence_handler_cb),
2309 (vte_sequence_handler_ce), (vte_sequence_handler_ec):
2311 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2313 Store whether the codeset is ambiguous in a state variable,
2314 rather than recomputing the ambiguous width every processing loop.
2316 * src/iso2022.c: (_vte_iso2022_is_ambiguous),
2317 (_vte_iso2022_state_new), (_vte_iso2022_find_nextctl):
2319 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2321 * src/vtexft.c: (_vte_xft_create), (_vte_xft_destroy):
2322 Remove zero-initialisers after g_slice_new0().
2323 * src/vtexft.c :(_vte_xft_set_text_font):
2324 Print out the width range.
2326 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2329 Missing space between -Wflags.
2331 2007-02-04 Chris Wilson <chris@chris-wilson.co.uk>
2333 Eliminate the temporary g_sliced parameter list,
2334 in favour of an on-stack list.
2336 * src/table.c: (_vte_table_arginfo_head_init),
2337 (_vte_table_arginfo_alloc), (_vte_table_arginfo_head_revert),
2338 (_vte_table_arginfo_head_reverse),
2339 (_vte_table_arginfo_head_finalize), (_vte_table_addi),
2340 (_vte_table_matchi), (_vte_table_extract_string),
2343 2007-02-02 Chris Wilson <chris@chris-wilson.co.uk>
2345 * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
2346 Dump the chosen fonts to VTE_DEBUG_MISC.
2347 * src/vteft2.c: (_vte_ft2_set_text_font):
2348 Print out the font metrics ala vtexft.c
2350 2007-02-02 Chris Wilson <chris@chris-wilson.co.uk>
2352 Bug 322241 – Please switch to pkg-config to check for freetype
2355 Prefer to use the freetype2.pc if available.
2357 2007-02-02 Chris Wilson <chris@chris-wilson.co.uk>
2359 Bug 322240 – Usage of pkg-config privates header
2362 Move @FT2_LIBS@ to Libs.private.
2364 2007-02-01 Chris Wilson <chris@chris-wilson.co.uk>
2366 cf Bug 403275 – crash in Terminal: I was typing reset on th...
2368 Not the crash, just a freeze found whilst trying to reproduce the
2371 * src/vte.c: (remove_from_active_list):
2372 Don't remove the terminal from the active list if it still
2373 has pending redraws.
2375 * src/vte.c: (process_timeout), (update_timeout):
2376 Reorder the loop to remove the terminal from the active list
2377 if it no longer needs processing.
2379 2007-02-01 Chris Wilson <chris@chris-wilson.co.uk>
2382 Extract the bits the test needs out of debian.vim.
2384 2007-02-01 Chris Wilson <chris@chris-wilson.co.uk>
2386 As spotted on bug 399617c8, we convert an array of unichars to a
2387 string and then iterate over the string interpreting bytes as
2390 * src/table.c: (_vte_table_extract_numbers):
2391 Dispense with the temporary string and process the unichar
2394 2007-02-01 Chris Wilson <chris@chris-wilson.co.uk>
2396 Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
2398 * src/vtexft.c: (_vte_xft_clip):
2399 Precompute clip offsets.
2401 2007-02-01 Chris Wilson <chris@chris-wilson.co.uk>
2403 Bug 382245 – __PyGtk_API multiply defined in python module
2406 Add -fno-common to MAYBE_WARN in order to catch future
2407 errors of this type.
2408 * python/vte.override:
2409 Define PYGTK_NO_IMPORT.
2411 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2413 Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
2415 Patch originally by Michele Baldessari.
2417 * src/vteseq.c: (vte_sequence_handler_cs):
2418 Move the cursor to (0,0) rather than clamping the cursor to
2419 be inside the scroll region.
2421 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2423 In a few places the contents of a GValue were being used without
2424 checking that they were of the expected type.
2426 cf Bug 117945 which mentions stack corruption inside
2427 vte_sequence_handler_delete_lines() - one of the corrected instances.
2429 * src/vteseq.c: (vte_sequence_handler_al),
2430 (vte_sequence_handler_cs), (vte_sequence_handler_cS),
2431 (vte_sequence_handler_dl),
2432 (vte_sequence_handler_character_attributes),
2433 (vte_sequence_handler_insert_lines),
2434 (vte_sequence_handler_delete_lines),
2435 (vte_sequence_handler_device_status_report),
2436 (vte_sequence_handler_dec_device_status_report):
2437 Check that the GValue holds a long before dereference.
2439 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2441 Back to the old-style io loop as _vte_buffer_append() is too slow - on
2442 a slow system the read can fill before the data is copied (even more
2443 apparent under valgrind).
2445 * src/vte-private.h:
2446 * src/vte.c: (vte_terminal_io_read):
2448 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2450 Use the display stashed inside the font and not the default display!
2452 * src/vtexft.c: (_vte_xft_char_exists), (_vte_xft_text_extents),
2453 (_vte_xft_font_open), (_vte_xft_font_close),
2454 (_vte_xft_font_for_char), (_vte_xft_draw_text):
2456 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2458 A mixed bag of cleanups.
2461 * src/pty.c: (_vte_pty_set_utf8):
2462 Test for existence of tc[sg]etattr.
2463 * src/vte-private.h:
2464 * src/vte.c: (vte_terminal_emit_adjustment_changed),
2465 (vte_terminal_queue_adjustment_changed),
2466 (vte_terminal_set_color_internal), (vte_terminal_handle_sequence),
2467 (_vte_terminal_enable_input_source), (vte_terminal_io_read),
2468 (vte_terminal_init), (vte_terminal_unrealize),
2469 (vte_terminal_finalize), (vte_terminal_background_update),
2470 (vte_terminal_queue_background_update),
2471 (vte_terminal_emit_pending_signals), (process_timeout),
2472 (update_repeat_timeout), (update_timeout):
2473 Move idle signal emission to display handlers.
2475 Add '&' to the single width characters.
2476 * src/vteseq.c: (_vte_sequence_get_handler):
2478 Drop the extraneous GQuark parameter.
2479 * src/vtexft.c: (_vte_xft_set_text_font):
2480 Avoid use of strlen for a compile-time fixed length string.
2482 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2484 Bug 147784 – cursor unvisible under mouse highlight
2486 Original patch by Chris Health
2488 * src/vte.c: (vte_terminal_paint):
2489 Reverse cursor color if it is in the selected region and draw
2492 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2494 Bug 368894 – crash in Terminal: I started gnome-terminal...
2496 * src/vtebg.c: (vte_bg_cache_search), (vte_bg_get_pixmap),
2497 (vte_bg_get_pixbuf):
2498 When retrieving a cached pixmap check that the visual
2499 matches the current request.
2501 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2503 Use gdk_error_trap_{push,pop} around raw Xft calls - about a
2504 path outside of vte_draw_{begin,end}.
2506 * src/vtexft.c: (_vte_xft_set_text_font):
2508 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2510 Use gdk_error_trap_{push,pop} around raw X11 and Xft calls.
2513 * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_start),
2516 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2518 Use gperf to calculate a more optimal vte_sequence_get_handler().
2519 This reduces vte_sequence_get_handler() from ~13% of the runtime
2520 during 'seq 1 1e6' to ~.5% (cumulative).
2523 * src/vteseq-2.c: (vteseq_2_hash), (vteseq_2_lookup):
2524 * src/vteseq-2.gperf:
2525 * src/vteseq-n.c: (vteseq_n_hash), (vteseq_n_lookup):
2526 * src/vteseq-n.gperf:
2527 * src/vteseq.c: (_vte_sequence_get_handler):
2529 2007-01-31 Chris Wilson <chris@chris-wilson.co.uk>
2531 Rudimentary vim scrolling benchmark.
2534 * perf/UTF-8-demo.txt:
2538 2007-01-30 Chris Wilson <chris@chris-wilson.co.uk>
2540 Bug 402329 – Rendering problem with underlines and cursor
2542 * src/vte.c: (vte_terminal_paint):
2543 Check hilite state when redrawing character under cursor.
2545 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2547 * src/vte-private.h:
2548 * src/vte.c: (vte_terminal_io_read):
2549 Clean up the read IO loop.
2551 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2553 NULL return from pcre_study() does not necessarily mean an error
2556 * src/vteregex.c: (_vte_regex_compile), (_vte_regex_exec):
2558 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2560 * src/vte.c: (_vte_terminal_set_pointer_visible),
2561 (_vte_terminal_fudge_pango_colors):
2562 Kill a couple more compiler warnings.
2564 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2566 Bug 336105 – gnome-terminal crashes when termcap not found
2568 * src/matcher.c: (_vte_matcher_init):
2569 * src/vte-private.h:
2570 * src/vte.c: (vte_terminal_set_default_tabstops),
2571 (vte_terminal_key_press), (vte_terminal_set_emulation),
2572 (_vte_terminal_inline_error_message), (vte_terminal_set_termcap),
2573 (vte_terminal_init), (vte_terminal_finalize),
2574 (vte_terminal_draw_cells):
2575 Detect and issue an inline warning when we fail
2578 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2580 Tighten the invalidated cells.
2582 * src/vte.c: (_vte_terminal_select_text):
2583 * src/vteseq.c: (vte_sequence_handler_cb):
2585 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2587 More compiler warnings.
2589 * src/vtepangox.c: (_vte_pango_x_set_text_font),
2590 (_vte_pango_x_draw_text):
2591 * src/vteregex.c: (_vte_regex_exec):
2593 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2595 Detect availability of PCRE.
2600 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2602 Improve handling of multi-row clears.
2604 * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows),
2605 (vte_terminal_paint):
2607 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2609 Add debugging flags for printing out cells contents and attributes as
2612 * src/debug.c: (_vte_debug_parse_string):
2614 * src/vte.c: (vte_terminal_draw_cells):
2616 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2618 * src/vte.c: (vte_terminal_draw_rows):
2619 Don't issue glyph items for blank cells.
2621 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2624 Add -Wshadow to MAYBE_WARN
2625 * src/ring.c: (_vte_ring_remove):
2626 * src/table.c: (_vte_table_matchi):
2627 * src/vtedraw.c: (_vte_draw_clip):
2629 Clean up some compiler warnings.
2631 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2634 Add the NULL clip func to the skeleton function table.
2636 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2638 Update match hilite before showing the pointer as the choice of
2639 cursor depends on whether the pointer is above a matched region.
2641 * src/vte.c: (vte_terminal_motion_notify),
2642 (vte_terminal_button_press), (vte_terminal_button_release):
2644 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2646 Only update the matched region if we move the pointer outside of the
2647 currently matched region.
2648 And only invalidate the cells underneath the matched region.
2650 * src/vte.c: (_vte_invalidate_region),
2651 (vte_terminal_match_hilite_clear), (cursor_inside_match),
2652 (vte_terminal_match_hilite), (vte_terminal_draw_rows):
2654 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2656 * src/table.c: (_vte_table_free):
2659 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2661 ==26147== 2,895 (352 direct, 2,543 indirect) bytes in 22 blocks are definitely lost in loss record 107 of 170
2662 ==26147== at 0x4021380: malloc (vg_replace_malloc.c:149)
2663 ==26147== by 0x4E85965: g_malloc (gmem.c:131)
2664 ==26147== by 0x4E95537: g_slice_alloc (gslice.c:777)
2665 ==26147== by 0x4E7C255: g_list_prepend (glist.c:95)
2666 ==26147== by 0x428B887: vte_terminal_feed (vte.c:10991)
2667 ==26147== by 0x429DD20: vte_terminal_io_read (vte.c:3214)
2668 ==26147== by 0x4EA7A8C: g_io_unix_dispatch (giounix.c:162)
2669 ==26147== by 0x4E7E481: g_main_context_dispatch (gmain.c:2045)
2670 ==26147== by 0x4E8145E: g_main_context_iterate (gmain.c:2677)
2671 ==26147== by 0x4E81808: g_main_loop_run (gmain.c:2881)
2672 ==26147== by 0x45BA503: gtk_main (gtkmain.c:1148)
2673 ==26147== by 0x805F7A3: main (terminal.c:1773)
2675 * src/vte.c: (remove_from_active_list), (process_timeout),
2676 (update_repeat_timeout):
2677 g_list_delete_link() is the one that actually frees the link.
2678 s/g_list_remove_link/g_list_delete_link/.
2680 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2682 ==26147== Conditional jump or move depends on uninitialised value(s)
2683 ==26147== at 0x42AB9F7: _vte_rdb_search (vterdb.c:95)
2684 ==26147== by 0x42ABB40: _vte_rdb_quark (vterdb.c:201)
2685 ==26147== by 0x42ABB9F: _vte_rdb_get_hintstyle (vterdb.c:241)
2686 ==26147== by 0x42A7952: _vte_fc_patterns_from_pango_font_desc (vtefc.c:302)
2687 ==26147== by 0x42B4E9B: _vte_xft_set_text_font (vtexft.c:103)
2688 ==26147== by 0x42A6BE5: _vte_draw_set_text_font (vtedraw.c:258)
2689 ==26147== by 0x428C62B: vte_terminal_ensure_font (vte.c:5963)
2690 ==26147== by 0x4290295: vte_terminal_size_request (vte.c:6613)
2691 ==26147== by 0x4E25228: g_cclosure_marshal_VOID__BOXED (gmarshal.c:566)
2692 ==26147== by 0x4E17038: g_type_class_meta_marshal (gclosure.c:567)
2693 ==26147== by 0x4E188FC: g_closure_invoke (gclosure.c:490)
2694 ==26147== by 0x4E29779: signal_emit_unlocked_R (gsignal.c:2370)
2697 * src/vterdb.c: (_vte_rdb_get):
2698 Check the result of the get_property_string before using the
2701 2007-01-29 Chris Wilson <chris@chris-wilson.co.uk>
2703 * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows):
2704 Merge draw_cells() with the background clear, as generating
2705 items for many rows and then splitting again in draw cells is
2708 2007-01-28 Chris Wilson <chris@chris-wilson.co.uk>
2710 Bug 401215 – Multi-pass renderering
2712 * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_clear_cells),
2713 (vte_terminal_draw_cells_with_attributes),
2714 (vte_terminal_draw_rows), (vte_terminal_paint):
2715 Break the draw_rows() loop into two passes - first clear the
2716 background and second render the text.
2717 Add another function based on draw_cells() that just clears the
2718 background and make clearing the background optional in
2719 draw_cells() - updating callers accordingly.
2720 Adventurous souls are required to clean up draw_rows().
2722 2007-01-27 Chris Wilson <chris@chris-wilson.co.uk>
2724 Fix compilation *with* debugging enabled.
2727 * src/keymap.c: (_vte_keysym_print):
2729 2007-01-27 Chris Wilson <chris@chris-wilson.co.uk>
2731 Fix compilation without debugging enabled.
2733 * src/keymap.c: (_vte_keysym_print), (_vte_keymap_map):
2734 * src/vte.c: (display_control_sequence):
2735 * src/vteapp.c: (main):
2737 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2740 Provide a safe fallback for non-C99 compilers (well actually
2741 anything that isn't a recent gcc at the moment).
2743 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2745 Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input style
2747 Patch by ynakai@redhat.com.
2749 * src/vte.c: (_vte_terminal_fudge_pango_colors):
2750 Check the attributes for each cell rather than assuming the
2751 pango attributes (and cell attributes) are the same for the
2754 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2756 * src/vteseq.c: (vte_sequence_handler_vb):
2757 Iterating over all queued exposures and drawing on top of the
2758 flash does not sense. Simply flush the draw.
2760 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2762 s/_VTE_DEBUG_ON/_VTE_DEBUG_IF/ and don't include
2763 the code block inside the macro.
2766 * src/iso2022.c: (process_control), (_vte_iso2022_process):
2767 * src/keymap.c: (_vte_keymap_map):
2768 * src/matcher.c: (_vte_matcher_init):
2769 * src/pty.c: (_vte_pty_run_on_pty):
2770 * src/table.c: (_vte_table_addi), (_vte_table_matchi),
2771 (_vte_table_extract_numbers), (_vte_table_match):
2772 * src/trie.c: (_vte_trie_addx):
2773 * src/vte.c: (vte_terminal_match_check_internal),
2774 (vte_terminal_match_check), (vte_terminal_handle_sequence),
2775 (vte_terminal_catch_child_exited), (vte_terminal_process_incoming),
2776 (vte_terminal_io_write), (vte_terminal_send),
2777 (vte_terminal_key_press), (vte_terminal_copy_cb),
2778 (vte_terminal_set_font_full), (vte_terminal_realize),
2779 (vte_terminal_paint), (vte_terminal_scroll):
2780 * src/vteapp.c: (main):
2781 * src/vtebg.c: (vte_bg_root_pixmap):
2783 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2785 Bug 400834 – Use a global display/process timeout
2787 Currently each terminal uses it own display timeout. Given that
2788 typical usage is several active terminals, there is an immediate
2789 advantage (context switches, fairness, smoothness) to using a single
2792 * src/debug.c: (_vte_debug_parse_string):
2794 Add VTE_DEBUG_TIMEOUT
2795 * src/vte-private.h:
2796 * src/vte.c: (update_regions), (_vte_invalidate_cells),
2797 (_vte_invalidate_all), (vte_terminal_init),
2798 (vte_terminal_class_init), (add_update_timeout),
2799 (remove_from_active_list), (remove_update_timeout),
2800 (add_process_timeout), (vte_terminal_stop_processing),
2801 (vte_terminal_is_processing), (process_timeout),
2802 (update_repeat_timeout), (update_timeout):
2803 Modify to use a global timeout rather than individual
2806 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2808 Unable to set background scrolling mode from cmdline due to variable
2811 * src/vteapp.c: (main):
2812 --scroll should set scroll=TRUE rather than cursor=TRUE!
2814 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2816 Bug 401082 – double-draw issue
2818 The main cause of this bug was not expanding the cleared area to cover
2819 all the cells affected by the draw and forgetting to offset the clear
2822 To counter the performance hit due to the expanded repaint area, each
2823 backend is presented with the opportunity to apply a clip to the
2824 exposed region before painting.
2826 This also fixes bug 333157,
2828 * src/vte.c: (_vte_invalidate_cells), (vte_terminal_paint_area),
2829 (vte_terminal_paint):
2830 * src/vtedraw.c: (_vte_draw_clip):
2832 * src/vteft2.c: (_vte_ft2_end), (_vte_ft2_clip):
2834 * src/vtepango.c: (_vte_pango_clip):
2835 * src/vtepangox.c: (_vte_pango_x_clip):
2836 * src/vtexft.c: (_vte_xft_clip), (_vte_xft_draw_text):
2838 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2840 * src/vte.c: (vte_terminal_match_hilite):
2841 * src/vteseq.c: (vte_sequence_handler_ce),
2842 (vte_sequence_handler_dc), (vte_sequence_handler_ec):
2843 Tighten the _vte_invalidate_cells() to only those that
2844 we potentially modify.
2846 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2848 * src/vtexft.c: (_vte_xft_set_text_font):
2849 Remove the additional pixel inter-character spacing.
2850 Compactness over clarity ;)
2852 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2854 Apply a one pixel fudge to the Xft character position and width.
2855 This greatly improves text appearance and hides the misrendering of
2856 pseudo-bold characters.
2857 cf bugs 317691, 333157.
2859 * src/vte.c: (vte_terminal_paint):
2860 Increase the cursor size to fit around the cell.
2861 * src/vtexft.c: (_vte_xft_set_text_font), (_vte_xft_draw_text):
2862 Fudge the Xft font positioning.
2864 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2866 Bug 318307 – Cursor colour changes to foreground when unfocused
2868 Whilst setting the colour, tweak the position of the rectangle, and
2869 extended the invalidate region to account for the OBO nature of bold
2872 * src/vte.c: (_vte_invalidate_cells):
2873 Include the padding to accomodate cell effects.
2874 * src/vte.c: (vte_terminal_paint):
2875 Use the cursor color for the rectangle when unfocused.
2877 2007-01-26 Behdad Esfahbod <behdad@gnome.org>
2879 * src/vte.c (vte_terminal_visibility_notify): Correctly handle
2880 visibility events: set invalidated_all to FALSE, and invalidate_all
2881 if fully unobscured.
2883 2007-01-26 Behdad Esfahbod <behdad@gnome.org>
2885 * src/vte.c (vte_terminal_visibility_notify): Make sure we redraw
2886 after becoming unobscured. There still is a bug that I've not found,
2887 but after obscuring the widget and coming back, a first redraw
2888 happens, but no update after that.
2890 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2892 * src/vte.c: (vte_terminal_draw_area):
2893 Occasionally we generate an exposed area which is computed
2894 as 0x0 cells. Discard early, before we spend an infinity
2897 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
2899 Janitorial work - near elimination of #ifdef VTE_DEBUG from within
2900 functions, trimming a thousand lines of code.
2902 We introduce a _vte_debug_print macro to cover the more common
2903 occurrence of printing a message at a certain debug level.
2904 And a _VTE_DEBUG_ON for a conditional code block.
2907 src/iso2022.c | 201 ++-------
2909 src/matcher.c | 24 -
2910 src/pty.c | 134 +-----
2915 src/vte.c | 1187 ++++++++++---------------------------------------
2916 src/vteaccess.c | 198 +++------
2919 src/vteconv.c | 60 +-
2924 src/vteglyph.c | 27 -
2928 src/vteseq.c | 385 +++++-------------
2930 24 files changed, 789 insertions(+), 1745 deletions(-)
2933 * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
2934 (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
2935 (process_8_bit_sequence), (process_cdata), (process_control),
2936 (_vte_iso2022_process):
2937 * src/keymap.c: (_vte_keymap_map):
2938 * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
2939 (_vte_matcher_destroy):
2940 * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
2941 (_vte_pty_set_size), (_vte_pty_get_size), (_vte_pty_ptsname),
2942 (_vte_pty_open_unix98), (_vte_pty_open_with_helper),
2944 * src/reaper.c: (vte_reaper_emit_signal),
2945 (vte_reaper_child_watch_cb), (vte_reaper_init),
2946 (vte_reaper_finalize):
2947 * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
2949 * src/table.c: (_vte_table_addi):
2950 * src/trie.c: (char_class_string_extract), (_vte_trie_addx),
2952 * src/vte.c: (update_regions), (_vte_invalidate_cells),
2953 (_vte_invalidate_all), (_vte_invalidate_cell),
2954 (_vte_invalidate_cursor_once),
2955 (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
2956 (vte_terminal_emit_emulation_changed),
2957 (vte_terminal_emit_encoding_changed),
2958 (vte_terminal_emit_child_exited),
2959 (_vte_terminal_emit_contents_changed),
2960 (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
2961 (vte_terminal_emit_char_size_changed),
2962 (_vte_terminal_emit_status_line_changed),
2963 (vte_terminal_emit_increase_font_size),
2964 (vte_terminal_emit_decrease_font_size),
2965 (_vte_terminal_emit_text_inserted),
2966 (_vte_terminal_emit_text_deleted),
2967 (vte_terminal_emit_text_modified),
2968 (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
2969 (vte_terminal_match_check_internal), (vte_terminal_match_check),
2970 (vte_terminal_emit_adjustment_changed),
2971 (vte_terminal_queue_adjustment_changed),
2972 (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
2973 (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
2974 (_vte_terminal_set_pointer_visible), (vte_terminal_new),
2975 (vte_terminal_generate_bold), (_vte_terminal_insert_char),
2976 (vte_terminal_handle_sequence), (vte_terminal_catch_child_exited),
2977 (vte_terminal_fork_command),
2978 (vte_terminal_emit_pending_text_signals),
2979 (vte_terminal_process_incoming), (vte_terminal_io_read),
2980 (vte_terminal_io_write), (vte_terminal_send),
2981 (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
2982 (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
2983 (vte_terminal_configure_toplevel),
2984 (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
2985 (vte_terminal_key_press), (vte_terminal_paste_cb),
2986 (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
2987 (vte_terminal_clear_cb), (vte_terminal_copy_cb),
2988 (vte_terminal_copy), (vte_terminal_paste),
2989 (vte_terminal_start_selection), (vte_terminal_extend_selection),
2990 (vte_terminal_autoscroll), (vte_terminal_motion_notify),
2991 (vte_terminal_button_press), (vte_terminal_button_release),
2992 (vte_terminal_focus_in), (vte_terminal_focus_out),
2993 (vte_terminal_set_font_full), (vte_terminal_set_size),
2994 (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
2995 (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
2996 (vte_terminal_fc_settings_changed), (vte_terminal_init),
2997 (vte_terminal_size_request), (vte_terminal_size_allocate),
2998 (vte_terminal_unrealize), (vte_terminal_finalize),
2999 (vte_terminal_realize), (vte_terminal_draw_cells),
3000 (_vte_terminal_map_pango_color), (vte_terminal_draw_area),
3001 (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
3002 (vte_terminal_class_init), (vte_terminal_copy_clipboard),
3003 (vte_terminal_paste_clipboard), (vte_terminal_copy_primary),
3004 (vte_terminal_paste_primary), (vte_terminal_background_update),
3005 (vte_terminal_queue_background_update),
3006 (vte_terminal_set_background_saturation),
3007 (vte_terminal_set_background_tint_color),
3008 (vte_terminal_set_background_transparent),
3009 (vte_terminal_set_background_image),
3010 (vte_terminal_set_background_image_file),
3011 (vte_terminal_set_word_chars), (process_timeout),
3012 (update_repeat_timeout), (update_timeout):
3013 * src/vteaccess.c: (xy_from_offset), (emit_text_caret_moved),
3014 (emit_text_changed_insert), (emit_text_changed_delete),
3015 (vte_terminal_accessible_update_private_data_if_needed),
3016 (vte_terminal_accessible_text_modified),
3017 (vte_terminal_accessible_text_scrolled),
3018 (vte_terminal_accessible_invalidate_cursor),
3019 (vte_terminal_accessible_finalize),
3020 (vte_terminal_accessible_get_text),
3021 (vte_terminal_accessible_get_text_somewhere),
3022 (vte_terminal_accessible_get_run_attributes),
3023 (vte_terminal_accessible_text_init),
3024 (vte_terminal_accessible_component_init),
3025 (vte_terminal_accessible_action_init),
3026 (vte_terminal_accessible_factory_new):
3027 * src/vteapp.c: (destroy_and_quit_eof), (destroy_and_quit_exited),
3028 (take_xconsole_ownership), (main):
3029 * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_set_root_pixmap),
3030 (_vte_bg_resize_pixbuf):
3031 * src/vteconv.c: (_vte_conv_utf8_utf8), (_vte_conv_open),
3032 (_vte_conv), (_vte_conv_cu), (_vte_conv_uu), (_vte_conv_uc):
3034 * src/vtedraw.c: (_vte_draw_new):
3035 * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
3036 * src/vteft2.c: (_vte_ft2_draw_text):
3037 * src/vteglyph.c: (_vte_glyph_cache_free),
3038 (_vte_glyph_cache_set_font_description):
3039 * src/vtepango.c: (_vte_pango_set_text_font),
3040 (_vte_pango_draw_text):
3041 * src/vtepangox.c: (_vte_pango_x_set_text_font):
3042 * src/vteregex.c: (_vte_regex_exec):
3043 * src/vteseq.c: (vte_terminal_emit_deiconify_window),
3044 (vte_terminal_emit_iconify_window),
3045 (vte_terminal_emit_icon_title_changed),
3046 (vte_terminal_emit_window_title_changed),
3047 (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
3048 (vte_terminal_emit_maximize_window),
3049 (vte_terminal_emit_refresh_window),
3050 (vte_terminal_emit_restore_window),
3051 (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
3052 (vte_sequence_handler_set_title_internal),
3053 (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
3054 (vte_sequence_handler_application_keypad),
3055 (vte_sequence_handler_normal_keypad),
3056 (vte_sequence_handler_reset_mode), (vte_sequence_handler_decset),
3057 (vte_sequence_handler_decreset),
3058 (vte_sequence_handler_erase_in_display),
3059 (vte_sequence_handler_erase_in_line),
3060 (vte_sequence_handler_restore_mode),
3061 (vte_sequence_handler_save_mode),
3062 (vte_sequence_handler_window_manipulation):
3063 * src/vtexft.c: (_vte_xft_set_text_font):
3065 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
3067 Bug 317449 – The cursor disappears when clicking on windows above gnome-terminal
3069 Enter a command that causes partial obscuration of the terminal,
3070 though it must cover the cursor. Close the new window, observe the
3073 The issue is that we hide the pointer whilst typing and show it after
3074 receiving a mouse movement. However in this case we steal the pointer
3075 away from the terminal without any mouse events and the cursor remains
3078 * src/vte.c: (vte_terminal_focus_in):
3079 Ensure the mouse pointer is visible on focus-in.
3081 2007-01-26 Chris Wilson <chris@chris-wilson.co.uk>
3083 Spend half an hour a day killing warnings...
3086 Remove -Wswitch-enum from MAYBE_WARN. I am that lazy.
3088 * src/iso2022.c: (_vte_iso2022_is_ambiguous),
3089 (_vte_iso2022_ambiguous_width), (_vte_iso2022_map_get),
3090 (_vte_iso2022_find_nextctl), (_vte_iso2022_sequence_length),
3091 (_vte_iso2022_fragment_input), (process_8_bit_sequence),
3092 (process_cdata), (_vte_iso2022_process_single), (process_control),
3093 (_vte_iso2022_process):
3094 * src/keymap.c: (_vte_keymap_map):
3096 * src/trie.c: (char_class_none_extract),
3097 (char_class_digit_extract), (char_class_multi_extract),
3098 (char_class_any_extract), (unichar_snlen), (unichar_sncmp),
3099 (char_class_string_extract), (_vte_trie_addx), (_vte_trie_add),
3100 (_vte_trie_matchx), (_vte_trie_match), (_vte_trie_printx),
3101 (_vte_trie_print), (convert_mbstowcs), (main):
3102 * src/vte-private.h:
3103 * src/vte.c: (vte_terminal_find_charcell),
3104 (_vte_row_data_find_charcell), (vte_terminal_emit_commit),
3105 (vte_terminal_match_clear_all), (vte_terminal_match_remove),
3106 (vte_terminal_match_add), (vte_terminal_match_set_cursor),
3107 (vte_terminal_match_check_internal), (vte_terminal_set_colors),
3108 (vte_terminal_emit_pending_text_signals),
3109 (vte_terminal_is_word_char), (vte_terminal_finalize),
3110 (vte_terminal_realize), (_vte_terminal_map_pango_color),
3111 (_vte_terminal_apply_pango_attr),
3112 (_vte_terminal_translate_pango_cells),
3113 (vte_terminal_set_scrollback_lines):
3114 * src/vteseq.c: (vte_sequence_handler_decset_internal):
3115 Fixup compiler warnings, mostly of the type mixing signed and
3116 unsigned compares and pointers.
3118 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3120 * src/vte.c: (mark_input_source_invalid),
3121 (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
3122 (_vte_terminal_connect_pty_write):
3123 Use the GDestroyNotify to mark the source as invalid.
3124 * src/vte.c: (vte_terminal_ensure_font):
3125 Protect ensure fonts against the VteDraw being destroyed.
3126 * src/vte.c: (vte_terminal_realize):
3127 Reorder code to setup the style before the fonts.
3128 * src/vte.c: (vte_terminal_class_init):
3129 The ->show() handler was redundant.
3131 2007-01-25 Behdad Esfahbod <behdad@gnome.org>
3133 * src/vte.c (_vte_terminal_set_default_attributes),
3134 (_vte_invalidate_cells), (_vte_invalidate_all),
3135 (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
3136 (vte_terminal_visibility_notify), (vte_terminal_handle_scroll):
3137 Replace most of checks for terminal->pvt->visibility_state ==
3138 GDK_VISIBILITY_FULLY_OBSCURED by terminal->pvt->invalidated_all, and
3141 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3143 Bug 400759 – update problem with vte trunk
3145 Otherwise known as the I can't count bug.
3147 The number of rows and columns to paint were not properly taking
3148 account of the discrete nature of the cells ie although the floor(x)
3149 moved the start to the left by one, the extra cell was not being added
3152 Also since the howmany() macro is pulled from <sys/param.h>, it can
3153 not be guarranteed to exist on all platforms. So in that case, provide
3156 * src/vte.c: (vte_terminal_draw_area):
3157 Calculate the width as the distance between the explicity
3158 calculated start and end cells.
3160 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3162 Bug 400671 – crash in Terminal: detaching of tabs
3164 The fontdirty flag needed to be set on unrealize to ensure the fonts
3165 get set on the VteDraw should the terminal be realized again (e.g
3168 * src/vte.c: (vte_terminal_unrealize):
3169 Set the fontdirty flag to TRUE.
3170 * src/vtexft.c: (_vte_xft_set_text_font),
3171 (_vte_xft_get_char_width), (_vte_xft_draw_text),
3172 (_vte_xft_draw_char):
3173 Add safe guards to avoid dereferencing a NULL font as it
3174 is possible for _vte_xft_font_open() to fail.
3176 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3178 Bug 399137 – UTF-8 problem in VteAccess
3180 Improve the UTF-8 string handling within vteaccess.c
3181 A long and fraught history to this apparently simple change.
3182 Many thanks to Joanmarie Diggs and Rich Burridge for testing the
3183 patches and ensuring they caused no regressions in the ally interface.
3185 * src/vteaccess.c: (emit_text_changed_insert),
3186 (emit_text_changed_delete):
3187 Use g_utf8_pointer_to_offset() rather than open coding.
3188 * src/vteaccess.c: (vte_terminal_accessible_text_modified):
3189 Convert the caret into a byte offset before performing the
3190 ASCII character lookup.
3191 Iterate backwards over the string using a g_utf8_prev_char,
3192 and g_utf8_get_char.
3194 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3196 Bug 400493 – Mouse selection seriously broken
3198 The rendering of non-text attributes, e.g highlight, backgrounds,
3199 underlines, was broken by the change to multi-row run of glyphs. This
3200 was most apparent when selecting regions with a mouse.
3202 * src/vte.c: (_vte_invalidate_cursor_once),
3203 (vte_terminal_extend_selection),
3204 (vte_terminal_draw_rows), (vte_terminal_draw_area),
3205 (vte_terminal_paint):
3206 Some janitorial work (a memleak, whitespace, improving debug
3207 messages, comments).
3208 * src/vte.c: (vte_terminal_draw_cells):
3209 Loop over cells and draw attributes for groups of cells on
3212 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3214 Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
3216 * src/vte.c: (vte_terminal_visibility_notify):
3217 Only force an _vte_invalidate_all if we can trivially detect
3218 that we have switch from fully obscured to fully unobscured.
3219 Otherwise, we will just handle the GDK expose in the normal
3221 * src/vte.c: (vte_terminal_expose):
3222 Check the event area to see if we can use _vte_invalidate_all,
3223 has a slight benefit of discarding further exposed area
3227 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3229 GDK tries to coalesce multiple expose events into a single event.
3230 This is passed to the application as a large region containing
3231 multiple rectangles. The unfortunate effect of this is having
3232 broken the invalidated region into 2 small components for vim,
3233 the expose event was still operating on a single region covering
3234 both. The reason the effect was invisible to the eye is due to the
3235 double buffer - GDK generated a backing pixmap for the exposed event
3236 and only copied from the pixmap to the window exactly the pixels
3237 exposed. So we regenerated draw commands for the entire area, and
3238 only saved on the later blit.
3240 The improvement to this is only issue draw commands for the individual
3241 rectangles rather than the region as a whole.
3243 * src/vte.c: (vte_terminal_draw_area), (vte_terminal_paint),
3244 (vte_terminal_expose):
3245 Paint the exposed rectangles not the event clipbox!
3247 2007-01-25 Chris Wilson <chris@chris-wilson.co.uk>
3249 Print out the painted area for VTE_DEBUG_UPDATES.
3251 * src/vte.c: (vte_terminal_paint):
3253 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3255 cf Bug 400072 – Handling of ; in control sequences
3257 Moral of the story: wait until the morning.
3258 Revert r1512, the mistaken attempt at parsing '\e[;30m'.
3260 * src/table.c: (_vte_table_addi), (_vte_table_matchi),
3263 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3265 cf Bug 399617 – Avoid memory allocations during an expose event.
3267 Currently we cannot generate long glyph runs due to the text
3268 painting being broken up into single rows and setting a low
3269 max run cap. The benefit of longer runs is the backends can
3270 do more caching within a run and potentially generate fewer
3271 render calls and/or less network traffic.
3273 In the simple test case, this increased the performance of a
3274 remote hexdump by 10%.
3276 * src/vte.c: (vte_terminal_draw_rows), (vte_terminal_paint):
3277 Scan entired exposed area for glyph runs.
3279 Increase VTE_DRAW_MAX_LENGTH
3280 * src/vtexft.c: (_vte_xft_draw_text):
3281 Create GlyphSpecs rather than CharFontSpecs, saves a
3282 conversion and potential malloc inside libXft, and our
3285 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3287 Bug 147495 – screen flicker when opening new terminal windows
3289 Last in a series of work to reduce extraneous redraws. I no longer
3290 see the flicker when opening a white terminal.
3292 * src/vte.c: (_vte_terminal_scroll_region):
3293 Detect when we can just invalidate all.
3294 * src/vte.c: (_vte_terminal_fork_basic):
3295 Don't force an unnecessary redraw.
3297 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3299 * src/vte.c: (vte_terminal_set_emulation):
3300 Add a missing '\n' to the debug printerr.
3301 * src/vte.c: (vte_terminal_init):
3302 Initialize the row count to VTE_MIN_SCROLLBACK (was to 0
3303 first and then later within the same function to
3304 VTE_MIN_SCROLLBACK).
3306 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3308 Bug 334755 – Incomplete information from vte_terminal_get_font
3310 In many situations the font_desc stored in the terminal is incomplete.
3311 _vte_fc_transcribe_from_pango_font_description() automagically fills
3312 in default values for the backends but this is hidden from the
3313 application. By filling in default values up front from the widget
3314 font description control is returned to the application and theme
3317 Patch by Pedro de Medeiros.
3320 * src/vte.c: (vte_terminal_set_font_full):
3321 Pull default font description from widget.
3322 * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
3323 Remove default values.
3325 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3327 Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
3328 actually revealed a faux-pas in the conversion of the public
3329 interfaces to GPid - that it broke the ABI.
3331 However, the intention is to remove the exposed pid_t, cf bug 400333.
3334 * python/vte.override:
3335 * src/pty.c: (_vte_pty_open):
3337 * src/vte.c: (_vte_terminal_fork_basic), (vte_terminal_forkpty):
3339 Revert the exposed GPids back to pid_t.
3341 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3343 ==25123== Invalid read of size 1
3344 ==25123== at 0x4055992: vte_terminal_accessible_text_modified (vteaccess.c:497)
3345 ==25123== by 0x46A1248: g_cclosure_marshal_VOID__VOID (gmarshal.c:77)
3346 ==25123== by 0x4693EAA: g_closure_invoke (gclosure.c:490)
3347 ==25123== by 0x46A4972: signal_emit_unlocked_R (gsignal.c:2440)
3348 ==25123== by 0x46A5E96: g_signal_emit_valist (gsignal.c:2199)
3349 ==25123== by 0x46A85ED: g_signal_emit_by_name (gsignal.c:2267)
3350 ==25123== by 0x403E9E2: _vte_terminal_emit_text_inserted (vte.c:863)
3351 ==25123== by 0x40517EF: vte_terminal_process_incoming (vte.c:3032)
3352 ==25123== by 0x40522B5: update_repeat_timeout (vte.c:11332)
3354 * src/vteaccess.c: (vte_terminal_accessible_text_modified):
3355 Check that the caret is inside the old string before
3358 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3360 Revert changes in conjunction with bug 399137 back to r1487,
3361 which contains Rich Burridge's fix for bug 397724.
3363 * src/vteaccess.c: (emit_text_changed_insert),
3364 (emit_text_changed_delete),
3365 (vte_terminal_accessible_text_modified):
3367 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3369 * src/vteaccess.c: (vte_terminal_accessible_text_modified):
3370 Valgrind pointed out a couple of places where we tried to
3371 access before the start of the string.
3373 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3375 Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
3377 Patch by Damien Carbery.
3380 Update prototype to match new definition.
3382 2007-01-24 Chris Wilson <chris@chris-wilson.co.uk>
3384 <mariano> hm, vte is not matching «ESC [ ; 7 m» :/
3386 * src/table.c: (_vte_table_addi), (_vte_table_matchi),
3389 g_slist_append -> g_slist_reverse(g_slist_prepend)
3390 And finally add the subtable to handle the leading ';'
3391 in the variable length parameters.
3393 2007-01-23 Chris Wilson <chris@chris-wilson.co.uk>
3395 A couple of minor buggets.
3397 * src/iso2022.c: (_vte_iso2022_state_set_codeset):
3398 Use g_intern_string() instead of from_quark(to_quark(str))
3399 * src/vtepango.c: (_vte_pango_create), (_vte_pango_destroy),
3400 (_vte_pango_start), (_vte_pango_end), (_vte_pango_set_text_font):
3401 Use the widget pango context (we're guarranteed to have a
3402 screen by this point) and don't unref it!
3403 Inspired by Pedro de Medeiros in Bug 335269.
3405 2007-01-23 Chris Wilson <chris@chris-wilson.co.uk>
3407 Regression on Bug 123591:
3408 mkdir /tmp/aa; cd /tmp/aa; bash; cd ..; rmdir aa
3409 Open a new tab in g-t -> Failure.
3411 * src/pty.c: (_vte_pty_run_on_pty):
3412 Check the error return from g_spawn and try again with the
3413 pwd if it reports that the child could not change directory.
3415 2007-01-23 Chris Wilson <chris@chris-wilson.co.uk>
3417 * src/pty.c: (_vte_pty_run_on_pty):
3418 Add all g_spawn parameters to VTE_DEBUG_MISC output.
3420 2007-01-22 Behdad Esfahbod <behdad@gnome.org>
3422 Released vte-0.15.2.
3426 * configure.in: Bumped version to 0.15.2.
3428 * src/Makefile.am: Bumped libtool version to 10:9:1.
3430 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3432 Bug 399137 - continuation.
3434 * src/vteaccess.c: (vte_terminal_accessible_text_modified):
3437 rather than the more correct
3440 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3442 * src/vteapp.c: (char_size_changed), (char_size_realized), (main):
3443 Don't try to perform gdk operations on unrealized windows.
3445 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3447 * src/pty.c: (_vte_pty_run_on_pty):
3448 Print out the argument vector for VTE_DEBUG_MISC.
3450 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3452 * src/pty.c: (_vte_pty_run_on_pty):
3453 Protect against g_strv_length(NULL)
3455 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3457 Bug 399137 - continuation.
3459 * src/vteaccess.c: (vte_terminal_accessible_text_modified):
3460 After walking back along the UTF-8 string, remember to update
3461 the string lengths that are used to detect insertions and
3464 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3466 If the caret is at the end of the buffer, then it set past the
3467 end of the offset array - do not use this as a lookup!
3469 * src/vteaccess.c: (vte_terminal_accessible_text_modified):
3470 If the caret points to past the last character, set the
3471 offset to the string's NUL terminator.
3473 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3476 Earlier configure.in update introduced a trailing ']', pair
3480 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3482 Bug 132316 – terminal widget's context menu posting isn't exposed as an AtkAction
3484 Original patch by <padraig.obriain@sun.com>
3486 * src/vteaccess.c: (vte_terminal_accessible_free_private_data),
3487 (vte_terminal_accessible_component_init),
3488 (vte_terminal_accessible_do_action),
3489 (vte_terminal_accessible_get_n_actions),
3490 (vte_terminal_accessible_action_get_description),
3491 (vte_terminal_accessible_action_get_name),
3492 (vte_terminal_accessible_action_get_keybinding),
3493 (vte_terminal_accessible_action_set_description),
3494 (vte_terminal_accessible_action_init),
3495 (vte_terminal_accessible_get_type):
3496 Remove grab_focus and defer to the parent's implementation.
3497 Add an AtkAction iface.
3499 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3501 Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in gnome-terminal
3503 The code for ATK_TEXT_BOUNDARY_WORD_START and
3504 ATK_TEXT_BOUNDARY_WORD_END is the same.
3506 Patch by <padraig.obriain@sun.com>
3508 * src/vteaccess.c: (vte_terminal_accessible_get_text_somewhere):
3509 Actually provide an implementation for
3510 ATK_TEXT_BOUNDARY_WORD_END.
3512 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3514 Bug 399137 – UTF-8 problem in VteAccess
3516 * src/vteaccess.c: (emit_text_changed_insert),
3517 (emit_text_changed_delete):
3518 use g_utf8_pointer_to_offset() instead of open coding
3519 (vte_terminal_accessible_update_private_data_if_needed):
3520 add the number of UTF-8 characters to the debug output.
3521 (vte_terminal_accessible_text_modified):
3522 iterate backwards over the UTF-8 string using
3523 g_utf8_prev_char() and convert the caret into a byte offset
3526 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3528 Bug 123591 – vte_terminal_fork_command succeeds even when it does not
3531 * python/vte.override:
3532 * src/reaper.c: (vte_reaper_child_watch_cb):
3533 * src/vte-private.h:
3534 * src/vte.c: (vte_terminal_catch_child_exited),
3535 (_vte_terminal_fork_basic), (vte_terminal_forkpty):
3538 s/pid_t/GPid/ portable variant, no API/ABI implications
3539 * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
3540 (_vte_pty_fork_on_pty_name), (_vte_pty_fork_on_pty_fd),
3541 (_vte_pty_open_unix98), (_vte_pty_pipe_open), (n_read), (n_write),
3542 (_vte_pty_start_helper), (_vte_pty_open_with_helper),
3543 (_vte_pty_open), (main):
3544 Replace custom fork() and pipe based syncrohonisation scheme
3545 with g_spawn_async_with_pipes() as it actually handles all
3546 failure modes correctly, and gives us overtures of portability.
3549 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3551 Hack'n'slash my way through doing a bit of weeding.
3554 - Bug 345514 – -no-undefined doesn't work with latest libtool
3555 - Bug 162003 – vte configure.in X checking can fail
3556 – though this may cause other regressions!
3557 - Bug 314669 – Please specialize AC_PATH_XTRA
3560 Export LIBTOOL_EXPORT_OPTIONS for -no-undefined on windos.
3561 Add to rather than override X_CFLAGS, X_LIBS
3562 AC_PATH_XTRA - Find X11 using XFlush() rather than XtMalloc().
3563 Print configuration details.
3565 Conditional compilation of backends.
3567 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3569 Bug 389538 – crash in Terminal: nothing
3571 * src/vteaccess.c: (vte_terminal_accessible_get_text):
3572 Guard against negative length strings.
3574 2007-01-22 Chris Wilson <chris@chris-wilson.co.uk>
3576 Bug 161479 – Scroll wheel generates Release events
3578 vte sends release events on scroll but xterm doesn't which breaks
3581 Patch by Benedikt Meurer.
3583 * src/vte.c: (vte_terminal_scroll):
3584 Remove the offending release event.
3586 2007-01-20 Chris Wilson <chris@chris-wilson.co.uk>
3588 <kmaraas> ickle: sparse complains about dubious 1 bit bitfields
3589 if you use gboolean instead of guint
3590 <kmaraas> so s/gboolean/guint at line 166 and 174
3591 <mariano> unless that changes the API, of course...
3592 <kmaraas> it doesn't
3593 <mariano> gboolean a:1 is not very correct anyways
3594 <kmaraas> ickle: we've done the same change in other modules
3595 <ickle> if I do it quick, behdad might not even notice ;)
3598 Convert signed single bit field to unsigned. The code
3599 was setting it to 1 anyhow (and not -1 as the type indicated).
3601 2007-01-20 Chris Wilson <chris@chris-wilson.co.uk>
3603 Bug 398602 – Build Failure
3605 * src/vte.c: (vte_terminal_expose):
3606 Fixup typo. [Grrr. Must get git-svn back into sync]
3608 2006-11-19 Rich Burridge <rich.burridge@sun.com>
3611 Fixed bug #397724 - Orca incorrect echo's certain input in
3612 gnome-terminal when key echo is set to off (on Ubuntu Feisty).
3614 2007-01-20 Chris Wilson <chris@chris-wilson.co.uk>
3616 * src/vte.c: (vte_terminal_expose):
3617 Also if the entire terminal is invalidated,
3618 do not add more GTK+ exposes to it.
3620 2007-01-20 Chris Wilson <chris@chris-wilson.co.uk>
3622 Track when we have invalidated the entire terminal and skip adding
3623 new regions when possible.
3625 * src/vte-private.h:
3626 * src/vte.c: (update_regions), (_vte_invalidate_cells),
3627 (_vte_invalidate_all), (vte_terminal_size_allocate),
3628 (reset_update_regions):
3630 2007-01-20 Chris Wilson <chris@chris-wilson.co.uk>
3632 Bug 398244 – Gnome-terminal opens a huge sized window
3634 * src/vte.c: (vte_terminal_ensure_font),
3635 (vte_terminal_set_font_full), (vte_terminal_size_request),
3636 (vte_terminal_realize), (vte_terminal_get_char_width),
3637 (vte_terminal_get_char_height), (vte_terminal_get_char_descent),
3638 (vte_terminal_get_char_ascent):
3639 Ensure the font metrics are calculated before use.
3641 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3643 * src/vte.c: (vte_terminal_process_incoming):
3644 Do not invalidate the old cursor position if it was not
3647 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3649 * src/vte.c: (process_timeout):
3650 Make sure ->process_timeout is set to VTE_INVALID_SOURCE on
3651 all paths that remove the timeout.
3653 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3655 Add <> to mark boundaries of process_timeout().
3657 * src/vte.c: (vte_terminal_class_init), (process_timeout):
3659 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3661 Add {},[] to mark boundaries of update_timeout() and notice that
3662 the display limited update_timeout was not dying.
3664 * src/vte.c: (vte_terminal_class_init), (update_repeat_timeout),
3667 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3669 * src/vte.c: (vte_terminal_realize), (remove_process_timeout):
3671 - protect remove_process_timeout against an invalid source.
3672 - move static prototypes into common block.
3673 - gdk_window_show() is done in map not realize.
3675 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3677 * src/vte-private.h:
3678 * src/vte.c: (vte_terminal_process_incoming):
3679 Introduce a bit of slack in the bbox check to allow
3680 for a small of amount of cursor motion e.g. due to line
3681 scrolling. This turns the long sequence of
3682 '(?!?!??? ... ????!)'
3683 during a hexdump into the better behaved
3684 '.(?!?!?!??!)-+=.(?!?!??!)-+=........'. Although it is
3685 puzzling why we now how have a block of IO and then two quick
3688 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3690 * src/vte.c: (process_timeout), (update_repeat_timeout),
3692 Repeat _vte_terminal_process_incoming until we have drained
3693 the incoming buffers or we can handle no more. Fixes a
3694 problem where the display wouldn't update if we hadn't
3695 processed enough data (e.g. on startup, displaying the first
3696 prompt). This bug corresponds with the sequence
3697 '*-+=..()?!(?!?!?!)-+=' below, which now reads
3698 '*-+=..()(?!?!?!)-+='
3700 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3702 * src/vte.c: (_vte_invalidate_cursor_once):
3703 "%ld" for cursor indices.
3705 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3707 * src/vte.c: (_vte_invalidate_cells),
3708 (_vte_invalidate_cursor_once):
3709 Cursor indices are long.
3711 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3713 * src/vte-private.h:
3714 * src/vte.c: (_vte_invalidate_cell):
3715 Cursor indices are long.
3716 * src/vte.c: (_vte_terminal_expose):
3717 Prepend the GTK+ generated expose if we already have an
3718 display update pending.
3720 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3722 Add a new debug flag to visualize the work flow.
3723 VTE_DEBUG_FLAGS=work generates output like:
3724 Debugging work flow (top input to bottom output):
3725 . _vte_terminal_process_incoming
3726 ( start _vte_terminal_process_incoming
3727 ? _vte_invalidate_cells (call)
3728 ! _vte_invalidate_cells (dirty)
3729 * _vte_invalidate_all
3730 ) end _vte_terminal_process_incoming
3731 - gdk_window_process_all_updates
3732 + vte_terminal_expose
3733 = vte_terminal_paint
3734 *?!**+=*-+=..()?!(?!?!?!)-+=?!-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.().(?!?!?!)-+=.().(?!?!?!)-+=.().().(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!)-+=.............................................................................................................................................................................................................................................................................(?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????!??!)-+=.......................................................................
3736 Which tells me I have two bugs to track:
3737 1. the initial '..()' is a missing invalidate.
3738 2. '(?!?!????????????????????!??!)' is not very efficient.
3740 * src/debug.c: (_vte_debug_parse_string):
3742 * src/vte.c: (update_regions), (_vte_invalidate_cells),
3743 (_vte_invalidate_all), (vte_terminal_process_incoming),
3744 (vte_terminal_io_read), (vte_terminal_paint),
3745 (vte_terminal_expose), (vte_terminal_class_init):
3748 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3750 Bug 398150 – cursor leaves trail behind in vim
3752 * src/vte-private.h:
3753 * src/vte.c: (_vte_invalidate_cell),
3754 (vte_terminal_process_incoming):
3755 * src/vteseq.c: (vte_sequence_handler_decset_internal):
3756 Invalidate the old cursor position if we detect the cursor
3757 moved during the sequence or if the cursor changed state.
3759 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3764 2007-01-19 Chris Wilson <chris@chris-wilson.co.uk>
3768 * src/vtebg.c: (vte_bg_cache_prune_int):
3769 Use the return from g_list_delete_link to maintain the list
3772 2007-01-18 Chris Wilson <chris@chris-wilson.co.uk>