i'DLisT
i'DLisT
Mithril does work with Vite (and esbuild) if you are writing `.js` or `.ts`, but for `.jsx` or `.tsx`, custom JSX transform needs to be set (see https://github.com/MithrilJS/mithril.js/issues/2675, and I...
试着用 `screen_retreiver` 在 Dart 端手动修复了这个问题,修起来似乎很简单,只要 `setPosition` 的时候把缩放倍率比例乘回去就行了。但我没有更多屏幕的环境,所以并不清楚对不对。
试着查了一下问题出在哪里: https://github.com/leanflutter/window_manager/blob/ef786b1574455ca141cea899ca2db788731163d4/windows/window_manager.cpp#L722-L725 这里乘了个 `devicePixelRatio`,而 https://github.com/leanflutter/window_manager/blob/ef786b1574455ca141cea899ca2db788731163d4/windows/window_manager.cpp#L708-L709 可能这里的 `devicePixelRatio` 拿的是主屏幕的缩放倍率而不是窗口位置所在屏幕的倍率,不过没仔细往下看,不一定对。 似乎只要这个倍率调一下就行了。[这里](https://github.com/idlist/topmost_battery_display/blob/23c588ac0c675fdc8ad41dc4ea13629fc7010a6f/lib/adjust_position.dart#L6-L29 ) 是我自用的小工具的处理方法。 --- 我自己后来又测了一下,发现其实这个问题还和窗口大小有关…… 当窗口在两个屏幕的交界处的时候,Windows 会根据窗口主要在哪边来决定显示倍率(确切地说是以窗口大小的一半为分界线),而这会导致在 `setPosition` 的时候如果窗口在缩放倍率不一致的非主屏幕上,但是位置在 `(窗口大小的一半 * 缩放倍率比)` (比如窗口大小为 200px,缩放倍率比为 2.5,那么这个范围就是 250px)的范围内时,窗口仍然被算作在主屏幕内,那么这个时候再把缩放倍率比乘回去反而会出问题…… 试着自己调整了一下,但是感觉除非能够指定 `setPosition` 时设置在哪个显示器上,目前没有完美的方法。
> Try the latest preview release first: https://github.com/valinet/ExplorerPatcher/releases/tag/22621.2506.60.1_a7a3d27 I tried the pre-release version of EP, but this behavior still exists.
The bug still exists for Mithril 2.0.4 and Mithril.d.ts 2.0.7, forcing me using Vnode instead of CVnode for Class components.
> 我感觉直接提供一个配置项表示禁止按字母顺序排就行,手动的话反正用户也会按照期望的顺序注册的吧? 其实不一定,我有时候会把子指令写在不同的文件里,就有时候不是那么可控 不过这种情况少
> order 的话也不会变可控,本质上还是不同开发者需要挤兑数值。你设置了 100 和 200,别人就只能 150,再来一个就只能 125 175…… > > 不过 console 那边我确实用的 order,算是没办法的办法吧( 其实我是觉得“开发者在插件的顶级指令上不应该设置权重”这种可以算进规范里,类似的可能还有“插件的顶级指令应当直接设置在根指令下”之类的 :thinking: > 另一个需要考虑的问题是这个功能要如何与 plugin-commands 联动。因为在网页中拖动指令排序是简单的事情,但如果用了 order 就不那么好定义拖动交换顺序对应的行为了…… 这个确实会比较恼火…… 🤔 第一反应是以网页控制台的顺序优先