|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2020-8-17 08:30:46
|
显示全部楼层
本帖最后由 Himem 于 2020-8-17 08:59 编辑
原理说明
kicad作为跨平台工具,图像使用opengl接口渲染,也有备用软渲染引擎,仍使用python2.7,
毕竟曾经支持过XP,只是因为库/编译器更新导致的不兼容,
所以只需修复系统API依赖即可重新在XP系统中使用
修改方法一般也适用于其他的画面无关的程序
使用Dependency Walker定位异常dll,用旧版kicad中文件替换
[图]
不存在的使用ReactOS中兼容库,改名后从导入表替换
[图]
右键解锁
阅读代码找到控制画面拖动部分,原本已经设计左右键支持
改源码windows下交叉编译一遍要踩的坑太多,所以定位到关键点,修改bin以保证工作稳定
common/view/wx_view_controls.cpp:243
- void WX_VIEW_CONTROLS::onButton( wxMouseEvent& aEvent )
- {
- switch( m_state )
- {
- case IDLE:
- case AUTO_PANNING:
- if( aEvent.MiddleDown() ||
- ( aEvent.LeftDown() && m_settings.m_panWithLeftButton ) ||
- ( aEvent.RightDown() && m_settings.m_panWithRightButton ) ) // <===
- {
- m_dragStartPoint = VECTOR2D( aEvent.GetX(), aEvent.GetY() );
- m_lookStartPoint = m_view->GetCenter();
- m_state = DRAG_PANNING;
- }
复制代码
common/view/view_controls.cpp:57
- void VC_SETTINGS::Reset()
- {
- m_showCursor = false;
- m_forceCursorPosition = false;
- m_cursorCaptured = false;
- m_snappingEnabled = true;
- m_grabMouse = false;
- m_autoPanEnabled = false;
- m_autoPanSettingEnabled = false;
- m_autoPanMargin = 0.1;
- m_autoPanSpeed = 0.15;
- m_warpCursor = false;
- m_enableMousewheelPan = false;
- m_panWithRightButton = false; // <===
- m_panWithLeftButton = false;
- m_lastKeyboardCursorPositionValid = false;
- }
复制代码
前面16进制替换相当于将初始化时将m_panWithRightButton默认改为了true,
|
|