Skip to content

Fix tsm_screen_resize()#12

Merged
kdj0c merged 1 commit into
kmscon:mainfrom
kdj0c:fix_resize
Jan 14, 2026
Merged

Fix tsm_screen_resize()#12
kdj0c merged 1 commit into
kmscon:mainfrom
kdj0c:fix_resize

Conversation

@kdj0c

@kdj0c kdj0c commented Jan 14, 2026

Copy link
Copy Markdown
Contributor

There was some problems with resizing:
When resizing to a smaller number of rows, even if the current number of rows would fit, the first were removed.
When resizing to a bigger number of rows, it's better to get more lines from the scrollback buffer, to be more consistent.

Fix #10

There was some problems with resizing:
When resizing to a smaller number of rows, even if the current
number of rows would fit, the first were removed.
When resizing to a bigger number of rows, it's better to get
more lines from the scrollback buffer, to be more consistent.

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
@kdj0c kdj0c merged commit 438441f into kmscon:main Jan 14, 2026
2 checks passed
kdj0c pushed a commit to kdj0c/libtsm that referenced this pull request Mar 31, 2026
This is a tentative to fix the following crash:

 #0  0x00007f0a572da874 in calc_line_len (line=0x231) at ../libtsm/src/tsm/tsm-selection.c:188
 kmscon#1  copy_line (line=0x231, buf=buf@entry=0x5614ec13aa7b "", start=0, len=256) at ../libtsm/src/tsm/tsm-selection.c:207
 kmscon#2  0x00007f0a572dad65 in copy_lines (con=0x5614eb42c730, start=<optimized out>, end=<optimized out>, buf=0x5614ec139160 "iled on output DP-2\n00:13:24.870 [wlr] [backend/drm/atomic.c:83] connector DP-2: Atomic commit failed: Device or resource busy\n00:13:24.870 [sway/desktop/output.c:307] Page-flip failed on output DP-2\n"..., pos=6427) at ../libtsm/src/tsm/tsm-selection.c:459
 kmscon#3  tsm_screen_selection_copy (con=0x5614eb42c730, out=out@entry=0x5614eb3f2618) at ../libtsm/src/tsm/tsm-selection.c:520
 kmscon#4  0x00005614bb685484 in copy_selection (term=<optimized out>) at ../kmscon/src/kmscon_terminal.c:608
 kmscon#5  handle_pointer_button (term=0x5614eb3f24f0, ev=0x7ffc8c54e730) at ../kmscon/src/kmscon_terminal.c:666
 kmscon#6  pointer_event (input=<optimized out>, ev=0x7ffc8c54e730, data=0x5614eb3f24f0) at ../kmscon/src/kmscon_terminal.c:711
 kmscon#7  0x00005614bb688ce6 in shl_hook_call (hook=0x5614eb3f0290, parent=0x5614eb3f0220, arg=0x7ffc8c54e730) at ../kmscon/src/shl_hook.h:216
 kmscon#8  shl_hook_call (hook=0x5614eb3f0290, parent=0x5614eb3f0220, arg=0x7ffc8c54e730) at ../kmscon/src/shl_hook.h:200
 kmscon#9  pointer_dev_send_button (button=button@entry=0 '\000', pressed=<optimized out>, dbl_click=<optimized out>, dev=0x5614eb7d9270) at ../kmscon/src/uterm_input_pointer.c:60
 kmscon#10 0x00005614bb68fa67 in pointer_dev_button (dev=<optimized out>, code=272, value=0) at ../kmscon/src/uterm_input_pointer.c:188
 kmscon#11 notify_event (dev=<optimized out>, type=<optimized out>, code=272, value=0) at ../kmscon/src/uterm_input.c:61
 kmscon#12 input_data_dev (data=<optimized out>, mask=<optimized out>, fd=<optimized out>) at ../kmscon/src/uterm_input.c:104
 kmscon#13 0x00005614bb68be80 in ev_eloop_dispatch (loop=loop@entry=0x5614eb3ed830, timeout=timeout@entry=-1) at ../kmscon/src/eloop.c:830
 kmscon#14 0x00005614bb68c53b in ev_eloop_run (loop=0x5614eb3ed830, timeout=-1) at ../kmscon/src/eloop.c:884
 kmscon#15 0x00005614bb67b8d6 in main (argc=<optimized out>, argv=<optimized out>) at ../kmscon/src/kmscon_main.c:616

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
kdj0c pushed a commit to kdj0c/libtsm that referenced this pull request Mar 31, 2026
This is a tentative to fix the following crash:

 #0  0x00007f0a572da874 in calc_line_len (line=0x231) at ../libtsm/src/tsm/tsm-selection.c:188
 kmscon#1  copy_line (line=0x231, buf=buf@entry=0x5614ec13aa7b "", start=0, len=256) at ../libtsm/src/tsm/tsm-selection.c:207
 kmscon#2  0x00007f0a572dad65 in copy_lines (con=0x5614eb42c730, start=<optimized out>, end=<optimized out>, buf=0x5614ec139160 "iled on output DP-2\n00:13:24.870 [wlr] [backend/drm/atomic.c:83] connector DP-2: Atomic commit failed: Device or resource busy\n00:13:24.870 [sway/desktop/output.c:307] Page-flip failed on output DP-2\n"..., pos=6427) at ../libtsm/src/tsm/tsm-selection.c:459
 kmscon#3  tsm_screen_selection_copy (con=0x5614eb42c730, out=out@entry=0x5614eb3f2618) at ../libtsm/src/tsm/tsm-selection.c:520
 kmscon#4  0x00005614bb685484 in copy_selection (term=<optimized out>) at ../kmscon/src/kmscon_terminal.c:608
 kmscon#5  handle_pointer_button (term=0x5614eb3f24f0, ev=0x7ffc8c54e730) at ../kmscon/src/kmscon_terminal.c:666
 kmscon#6  pointer_event (input=<optimized out>, ev=0x7ffc8c54e730, data=0x5614eb3f24f0) at ../kmscon/src/kmscon_terminal.c:711
 kmscon#7  0x00005614bb688ce6 in shl_hook_call (hook=0x5614eb3f0290, parent=0x5614eb3f0220, arg=0x7ffc8c54e730) at ../kmscon/src/shl_hook.h:216
 kmscon#8  shl_hook_call (hook=0x5614eb3f0290, parent=0x5614eb3f0220, arg=0x7ffc8c54e730) at ../kmscon/src/shl_hook.h:200
 kmscon#9  pointer_dev_send_button (button=button@entry=0 '\000', pressed=<optimized out>, dbl_click=<optimized out>, dev=0x5614eb7d9270) at ../kmscon/src/uterm_input_pointer.c:60
 kmscon#10 0x00005614bb68fa67 in pointer_dev_button (dev=<optimized out>, code=272, value=0) at ../kmscon/src/uterm_input_pointer.c:188
 kmscon#11 notify_event (dev=<optimized out>, type=<optimized out>, code=272, value=0) at ../kmscon/src/uterm_input.c:61
 kmscon#12 input_data_dev (data=<optimized out>, mask=<optimized out>, fd=<optimized out>) at ../kmscon/src/uterm_input.c:104
 kmscon#13 0x00005614bb68be80 in ev_eloop_dispatch (loop=loop@entry=0x5614eb3ed830, timeout=timeout@entry=-1) at ../kmscon/src/eloop.c:830
 kmscon#14 0x00005614bb68c53b in ev_eloop_run (loop=0x5614eb3ed830, timeout=-1) at ../kmscon/src/eloop.c:884
 kmscon#15 0x00005614bb67b8d6 in main (argc=<optimized out>, argv=<optimized out>) at ../kmscon/src/kmscon_main.c:616

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tsm_screen_resize() scroll up unconditionally

1 participant