#6713·textual

WebDriver 忽略了 App.run(mouse=False) 并无论如何启用鼠标报告

作者: willmcginnis创建于 2026年9月7日更新于 2026年9月15日

你检查过关闭的问题吗? ** 是。 ** # 4376在由 # 4379 固定的`LinuxDriver ' (见下文)。 #3898(请求运行时间切换,关闭非计划)和#5660(如何禁用鼠标支持)大约是"想要*鼠标关闭". 没有报告有文件证明的开关对 " WebDriver " 没有影响。

您是否检查了最新版本的文本 ? ** 是,8.2.8**,目前为PyPI,下面的代码与“main”的字节相同。

□ 这只虫

将“App.run(mouse=False)”记录为控制鼠标支持(app.py'、run()'、*'mouse:启用鼠标支持')。 三个终端司机都尊重它。 WebDriver ' 没有,因此在`text-serve'/Textual Web中,该参数被默默地忽略了。

WebDriver. init 接受mouse'并将其转发给Driver. init ',该“Driver. init ”将其储存为自己. mouse'。 web driver.py'中没有任何内容读取过(`linux driver.py'在三个地方检查过)。 两地出逃:

  1. web driver.py:111'-enable mouse support()':没有self. mouse'检查,与linux driver.py:130',linux inline driver.py:81'和windows driver.py:58'不同,两者都用if notself. mouse: return'来守卫。
  2. web driver.py:160':self.write (")\033[?1003h")',直接写作于cart application mode ()'起于enable mouse support ()'后三行:`:157'. 所以,独自守护这个方法 仍然会泄露这一个。

(web driver.py:127'-disable mouse-support ()'同样没有防守,但目前无法达到:没有任何东西称它,包括stop application mode ()'。 值得注意的是一致性;它不是观察到的失败的一部分。 )

  • 相关变动

#4343在3个终端司机中引入了"mouse"并守卫了鼠标支持. 在 " WebDriver " 中,它添加了构造参数,并将其转发给 " Driver " ,但没有添加警卫。

#4379从“LinuxDriver.start application mode()”中删除了直接的?1003h'字。 等同的文字保留在web driver.py:160'中。

• 复制人

只使用公共 API, 不需要 tty, 应该运行在任何平台( 它不导入 POSIX 唯一的驱动模块 ) :

zz
""再现者:WebDriver忽略了App.run(mouse=False).

运行方式: Python 重放
只需安装 " 文字 " (测试在8.2.8上)。 无需终端/tty。
"" "" ""

导入 Os
导入子进程
导入 sys
导入临时文件

APP="" (中文(简体) ).
从正文. app导入 App

类 MyApp( App) :
def 在 mount(自)- > 无:
自定义( A)

MyApp (. run (mouse={mouse)) (英语).
"" "" ""

错误: [
("\x1b[?1000h],"SET VT200 MOUSE"),.
("\x1b[?1003h],"SET ANY EVENT MOUSE"),.
("\x1b[?1015h]","SET VT200 HighLightT MUSE"),","......
("\x1b[?1006h],"SET SGR EXT MODE MOUSE"),".
[ . ]

汉莎克=b" 甘格利安"


def 解码( raw: 字节) - > str:
"""Un wrap WebDriver's ‘D<4-byte len-><-pailload }' 正在装入终端流".
如果原始。 启动( HANDSHAKE) :
生 = 生 [len( HANDSHAKE ):]
输出, I = [ ], 0
i + 5 + len( raw) 时:
类型 = 生 [i:i + 1]
大小 =
. . . . . . .

内容来源: Textualize/textual