In select mode and when printing the OSD, use \q2 to let libass clip lines longer than the OSD. This works around having to leave a large horizontal space unused due to libass subtracting the left margin from the max text width even though the ASS event is anchored to the bottom left. It also fixes truncating wide Unicode characters.
Unified · Split
| @@ -437,7 +437,8 @@ local function populate_log_with_matches(max_width) · 436 unmodified lines | |||
| 437 | 437 | ||
| 438 | for i = first_match_to_print, last_match_to_print do | 438 | for i = first_match_to_print, last_match_to_print do |
| 439 | log[#log + 1] = { | 439 | log[#log + 1] = { |
| 440 | text = truncate_utf8(matches[i].text, max_width) .. '\n', | 440 | text = (max_width and truncate_utf8(matches[i].text, max_width) |
| 441 | or matches[i].text) .. '\n', | ||
| 441 | style = i == selected_match and styles.selected_suggestion or '', | 442 | style = i == selected_match and styles.selected_suggestion or '', |
| 442 | terminal_style = i == selected_match and terminal_styles.selected_suggestion or '', | 443 | terminal_style = i == selected_match and terminal_styles.selected_suggestion or '', |
| 443 | } | 444 | } |
| @@ -525,7 +526,8 @@ local function update() · 81 unmodified lines | |||
| 525 | '\\1a&H00&\\3a&H00&\\1c&Heeeeee&\\3c&H111111&' .. | 526 | '\\1a&H00&\\3a&H00&\\1c&Heeeeee&\\3c&H111111&' .. |
| 526 | (has_shadow and '\\4a&H99&\\4c&H000000&' or '') .. | 527 | (has_shadow and '\\4a&H99&\\4c&H000000&' or '') .. |
| 527 | '\\fn' .. opts.font .. '\\fs' .. opts.font_size .. | 528 | '\\fn' .. opts.font .. '\\fs' .. opts.font_size .. |
| 528 | '\\bord' .. opts.border_size .. '\\xshad0\\yshad1\\fsp0\\q1' .. | 529 | '\\bord' .. opts.border_size .. '\\xshad0\\yshad1\\fsp0' .. |
| 530 | (selectable_items and '\\q2' or '\\q1') .. | ||
| 529 | '\\clip(' .. clipping_coordinates .. ')}' | 531 | '\\clip(' .. clipping_coordinates .. ')}' |
| 530 | -- Create the cursor glyph as an ASS drawing. ASS will draw the cursor | 532 | -- Create the cursor glyph as an ASS drawing. ASS will draw the cursor |
| 531 | -- inline with the surrounding text, but it sets the advance to the width | 533 | -- inline with the surrounding text, but it sets the advance to the width |
| @@ -555,7 +557,7 @@ local function update() · 23 unmodified lines | |||
| 555 | local suggestions, rows = format_table(suggestion_buffer, width_max, lines_max) | 557 | local suggestions, rows = format_table(suggestion_buffer, width_max, lines_max) |
| 556 | local suggestion_ass = style .. styles.suggestion .. suggestions | 558 | local suggestion_ass = style .. styles.suggestion .. suggestions |
| 557 | 559 | ||
| 558 | populate_log_with_matches(width_max) | 560 | populate_log_with_matches() |
| 559 | 561 | ||
| 560 | local log_ass = '' | 562 | local log_ass = '' |
| 561 | local log_buffer = log_buffers[id] | 563 | local log_buffer = log_buffers[id] |