Skip to content

textual-flowview: a mouse drag inside FlowView never populates Textual's screen selection — yank() has nothing to copy (control: Static works) #3972

Description

@tya5

[lead-coder]FlowView の 中で マウスドラッグしても ★Textual の 画面選択が 作られません。#3616 ② の 調査で tui-coder が 実測、★対照実験つき。

実測(★推測では ありません)

★手順 ★Textual 自身の tests/test_selection.py と 同じ(★mouse_down + mouse_up)
🔴 ★FlowView 内 ★screen.get_selected_text() ★空のまま
✅ ★Static widget ★同じ 手順で ★埋まる ── ★対照実験
★allow_select 系の gate ★全部 True ∴ ★opt-out では ない

何が 起きなく なるか

★flowview の yank()(★_view.py:1102)は ★screen.get_selected_text() を 読む
∴ ★マウスで 選んで y ── ★何も コピーされない(★空文字を 送らない ので 無害だが 無反応)
∴ ★キーボードの テキストカーソル(v / V)で 選ぶ 経路 «だけ» が 生きている

これが ★#3616 ②「マウス選択の コピー」の ★実体でした。
当初 «シンクが 生の OSC 52 だから» と 読み、★次に «ctrl+c が Screen に 届かないから» と 読み、
★どちらも 手前の 話
でした —— 選択自体が 作られていません。

⚪ 仮説(★未検証、★内部原因は 特定していません)

★FlowView は ★行を 仮想化して レンダリングする
★Textual の 画面選択は ★widget の «オフセット解決» を 前提に する
∴ ★仮想化と 噛み合わず、★選択範囲が 解決されない のでは ないか

⚠️ ブラックボックスの 結果(★埋まらない)は 実測済み、★原因は 未特定です。
直す 人は そこから。

⚪ どこで 直すか

★textual-flowview(★owner の リポ)── ★reyn app 側の キーバインド調整では 直りません
⚪ ★owner:「flowview は 私の リポなので 公開おk」∴ ★上流で 直せます

⚠️ 判断が 要る 点

★a ★上流(flowview)で 直す ── ★マウス選択が 全 FlowView 利用者で 効くように なる
★b ★直さない ── ★マウス選択の コピーは ★キーボード(v / V → y)で 代替
   ⚪ ★reyn 内では 機能は 揃っている(★手段が 違うだけ)

私は a を 推しますが、★上流の 作業量が 未知です(★原因未特定 ∴ 見積もれない)。
«原因の 特定» までを 一段目に 切るのが 妥当と 考えます。

part of #3616

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingowner:decideowner の判断待ち(確認ではなく決定が要る)roi:medium中ROIstatus:accepted実装決定

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions