miniblink滚轮太慢bug修复

本文介绍了解决网页滚动延迟的问题,作者通过调试发现未设置webWheelEvent.hasPreciseScrollingDeltas为true导致滚动延迟,最终通过调整该参数解决了问题。

原因是没设置webWheelEvent.hasPreciseScrollingDeltas = true;。

说起来简单,实际上找到这个原因花了一晚上。通过各种log打印,发现从发送m_webViewImpl->handleInputEvent(webWheelEvent);

到真正让layer开始滚动的WebLayerImpl::setScrollPositionDouble之间,隔了很久。于是调试handleInputEvent里面为啥没走到setScrollPositionDouble,

最后发现是ScrollAnimatorNone::PerAxisData::animateScroll里跳走了。这几个函数有点复杂,没怎么看明白。不过看了下webWheelEvent里相关的成员变量有没啥可以影响这里面的流程,最后锁定hasPreciseScrollingDeltas ,试了下,居然可以。就此搞定。

前言 本程序基于精易Web浏览器支持库(miniblink内核) 请在打开本代码前保证安装了“精易Web浏览器支持库”,否则会导致无法打开等极度严重的Bug 【一些问题】摘自帖子精易Web浏览器支持库(miniblink内核) Q. 为什么提示找不到dll命令? A. 请将"node.dll" 这个文件放到易语言 根目录,易语言/lib 目录下,调试时会从这两个文件夹里寻找"node.dll"文件,"这两个目录必须要要node.dll"如果是编译的版本,请将"node.dll" 存放到你编译好的程序的目录下 这里是程序中使用的Dll或Exe的查毒:截图.exe exdui.dll 程序特点(下面是部分介绍和截图): 1.首先程序使用了多标签(多Tabs)构架,对于很多人来说,这个构架并不是很新颖。但是,本浏览器(下称“MiniBlink浏览器”)使用的是多进程操纵,即一个浏览器便是一个进程,这样有什么好处呢? 1.由于Miniblink的特性,在统一进程下,如果创建多个浏览框窗口,如果修改单个的Cookie目录或者缓存目录,则本进程下的全部浏览框的Cookie目录或者缓存目录都会被修改,那么,如果采用多进程构架的话,就不存在这个问题,所以“MiniBlink浏览器”经过您简单的修改,每个浏览框都可以独立Cookie缓存,何乐而不为呢? 2.众所周知,Miniblink浏览框采用单线程渲染界面,那么假如你在窗口中创建过多的浏览框且都处于访问状态的话,实际访问速度就会大大的下降,而“MiniBlink浏览器”使用多进程,平均访问速度更加快。 原理介绍:多进程之间怎么进行很好的控制呢?其实就是一件简单的进程通信在主进程中,程序保留了对于子进程的信息记录,标识保留在“高级选择夹_Ex”中的“子夹图标”这一函数中!!(这里要提出一个警告,“高级选择夹_Ex”中的“子夹图标”保留的为当前浏览框的标识,而不是真正是图标句柄,因为开始没有考虑图标的问题,后来也懒得改了,“SetImg”才是真正设置图标的命令!!) 2.主程序全局使用“Ex_DirectUI” 包含的Ex组件 介绍 构造 小按钮_Ex 创建一个图片小按钮 其实是一个简单的图像绘制的按钮 高级选择夹_Ex 本组件是一个模拟高级选择夹的组件 State拼凑组合而成 书签夹_Ex 创建一个书签 State拼凑组合而成 3.0模块中包含的部分组件 图片框,编辑框什么的 无 - 在代码中,其实“Ex_DirectUI”部分的代码是非常简洁易懂的,您可以直接看代码,上方的表格仅供参考 3.书签夹 书签夹相当于是很多图像的集合,而文件夹和书签夹的完美结合又和收藏夹有关系了,“MiniBlink浏览器”中很多代码是互相使用,互相联系的(其实是一个Ex_DirectUI菜单处理) 4.收藏夹 收藏夹对应的目录是“Database”,程序读取收藏夹中URL的方法是递归,注:“集_书签_保留菜单”是处理“书签夹”中的文件夹菜单。菜单一览: 收藏夹管理部分(这部分我觉得我还是做得很上心的): 5.高级选择夹 这么重要的东西我差点忘了说了:这里的图标和按钮位置是经过我严(粗)格(心)的计算得出来的: 同时为了达到和主流浏览器一样的选择夹效果,我还专(才)门(怪)计算了选择夹应该有的宽度和位置。 6.百度搜索框 好像比较鸡肋: 7.下载 现在还是在使用“_ download tool.exe” 8.更多功能更多功能可以自行探索哦!!!毕竟这里面还有不少功能呢!“MiniBlink浏览器”已经完善了大部分人定制浏览器的大部分功能 PS 使用前请将“浏览器 - 附加.e”编译为“NewProcess.exe”(子浏览框),将“文件_下载.e”编译为“_ download tool.exe”!!
### 解决PowerDesigner中鼠标滚轮操作过慢的方法 对于PowerDesigner中鼠标滚轮操作显得过慢的情况,虽然特定针对此问题的官方指导较少见,但从软件优化和系统设置的角度出发可以尝试一些通用性的解决方案。 调整操作系统中的鼠标滚动行为可能间接影响到应用程序内的表现。进入Windows系统的控制面板,在硬件和声音分类下找到鼠标选项[^1]。这里能够修改垂直和平面滚动的数量,增加每次滚动的距离可能会让PowerDesigner里的视图切换更加迅速。 另外一种方式涉及到了解并配置PowerDesigner自身的偏好设定或注册表项(如果存在)。部分高级用户反馈通过编辑与程序响应相关的参数可改善交互体验。不过这种方法风险较高,建议备份好数据再做尝试[^2]。 值得注意的是上述提到的操作均基于现有资源推断而来,并非直接来源于关于加速PowerDesigner内鼠标的官方说明文档。因此效果因版本和个人计算机环境而异。 ```python # 假设这是Python脚本用于自动化调整Windows鼠标设置(仅作为示例展示, 实际应用需谨慎) import winreg as reg def set_mouse_wheel_speed(speed_value): key_path = r"Control Panel\Desktop" try: registry_key = reg.OpenKey(reg.HKEY_CURRENT_USER, key_path, 0, reg.KEY_WRITE) reg.SetValueEx(registry_key, "WheelScrollLines", 0, reg.REG_SZ, str(speed_value)) reg.CloseKey(registry_key) print("Mouse wheel speed has been changed.") except WindowsError: print("Failed to change mouse wheel speed.") set_mouse_wheel_speed(3) # 设置为一次滚动三行 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值