When doing any operation, drag, move, duplicate, add symbol… , mouse cursor jumps to another location. seemingly some where upper left.
This does not happen if I only use cursor keys.
how to disable this “feature”?
Debian Linux 12, XFCE, with screen set to 180 DPI .
Application: KiCad Schematic Editor
Version: 6.0.6+dfsg-1, release build
Libraries:
wxWidgets 3.0.5
libcurl/7.84.0 OpenSSL/3.0.4 zlib/1.2.11 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.3 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.48.0 librtmp/2.3 OpenLDAP/2.5.12
Platform: Linux 5.18.0-3-amd64 x86_64, 64 bit, Little endian, wxGTK, lightdm-xsession, x11
Build Info:
Date: Jun 20 2022 18:00:05
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.74.0
OCC: 7.5.2
Curl: 7.83.1
ngspice: 37
Compiler: GCC 11.3.0 with C++ ABI 1016
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON
jmk
August 9, 2022, 5:34am
2
Probably "Center and Warp Cursor on Zoom.
Preferences / preferences / Mouse and Touchpad.
The:
… function should put the cursor in the center of the screen. It did take me some time to get used to it, but now I’m wishing for other programs to also have this ability.
The “Center and Warp Cursor on Zoom” also only activates on zooming (Which I usually activate with the scroll wheel), and not:
Terrance_Huang:
When doing any operation, drag, move, duplicate, add symbol…
I’m guessing it may be some kind of bug
Thanks, but none of items in settings work.
Generally a program SHOULD NOT manipulate OS’ cursor location, it could be very annoying and unpredictable. or, at least, give us an options to turn it off.
Another scenario. if Schematic Editor window is not maximized.
place a text
type text
use mouse to place text
then KiCAD moves mouse cursor to top left corner of entire screen, out side of sch window, then trapped there.
eelik
August 12, 2022, 9:37am
6
That’s definitely some kind of bug or other problem somewhere (not necessarily in KiCad!), KiCad doesn’t behave that way.
please test it before “doesn’t behave that way.”
% grep -riIn "setmouse" *
common/tool/common_tools.cpp:147: evt.SetMousePosition( getViewControls()->GetCursorPosition() );
common/tool/action_toolbar.cpp:732: // (This is the equivalent of calling the DoResetMouseState() private function)
common/tool/tool_dispatcher.cpp:244: evt->setMouseDragOrigin( st->dragOrigin );
common/tool/tool_dispatcher.cpp:245: evt->setMouseDelta( m_lastMousePos - st->dragOrigin );
common/tool/tool_dispatcher.cpp:251: evt->SetMousePosition( isClick ? st->downPosition : m_lastMousePos );
common/tool/tool_dispatcher.cpp:507: evt->SetMousePosition( pos );
common/tool/tool_manager.cpp:324: event.SetMousePosition( GetCursorPosition() );
common/tool/tool_manager.cpp:362: evt.SetMousePosition( aPosition );
common/tool/tool_manager.cpp:396: evt.SetMousePosition( GetCursorPosition() );
common/tool/action_menu.cpp:539: evt->SetMousePosition( g_menu_open_position );
common/tool/action_menu.cpp:551: evt->SetMousePosition( getToolManager()->GetMousePosition() );
eeschema/tools/ee_selection_tool.cpp:435: newEvt->SetMousePosition( snappedCursorPos );
include/tool/tool_event.h:189: setMouseButtons( aExtraParam & BUT_BUTTON_MASK );
include/tool/tool_event.h:465: void SetMousePosition( const VECTOR2D& aP )
include/tool/tool_event.h:475: void setMouseDragOrigin( const VECTOR2D& aP )
include/tool/tool_event.h:480: void setMouseDelta( const VECTOR2D& aP )
include/tool/tool_event.h:485: void setMouseButtons( int aButtons )
include/gal/cairo/cairo_gal.h:414: void SetMouseListener( wxEvtHandler* aMouseListener )
include/gal/opengl/opengl_gal.h:275: void SetMouseListener( wxEvtHandler* aMouseListener )
pcbnew/router/pns_line_placer.cpp:1160: m_mouseTrailTracer.SetMouseDisabled( !Settings().GetAutoPosture() );
pcbnew/router/pns_mouse_trail_tracer.h:57: void SetMouseDisabled( bool aDisabled = true ) { m_disableMouse = aDisabled; }
Thanks!
but, if “Center and Warp Cursor on Zoom.” is on, zoom snaps the cursor to a point, I check with screenshot and GIMP, x:460, y:252.
Seemingly some where it got the resolution/windowsize wrong.
eelik
August 12, 2022, 10:43am
9
I know pretty well how KiCad behaves in this respect. It moves the mouse cursor in some situations, but not when
As I said, if this happens, it’s definitely a bug or some other problem, not how KiCad normally behaves or should behave, regardless of any settings. I just tested, it works OK, so this may have something to do with your system or some sw combination.
I commented out most ->WarpPointer
and building from source.
if you use MacOS, ->WarpPointer()
doesn’t work at all, no work, no bug.
It works! Disable all ->WarpPointer
and build it. works perfectly fine like good old KiCAD. Thank you guys!
eelik
August 12, 2022, 12:33pm
13
I don’t use MacOS, I use – well, currently only test regularly – KiCad on Linux and Windows. There’s no such bug there. You should probably report it with detailed information about the use case and exact steps to reproduce it. Even better if you could track it down yourself because you apparently can read and edit the code. Great if commenting out code works for you, but it doesn’t help other users or the developers. The latter need more information to fix it if it works for them on MacOS.
2 Likes
sure, in the past KiCAD 3, 4, 5 all works fine, no this kind of issue.
currently it’s really messy and might be
debian’s package
6.0.6 / 6.0.7?
buggy wxWidgets
many other
Also I didn’t even try building from original 6.0.7 src.
kind of in the middle of a large project, have not much time to get this pinned down. just need some quick & dirty walk around for me to finish that first, then dig deeper.
thanks!
btw, which DE do you guys test on Linux?
hermit
August 12, 2022, 7:22pm
15
I’m on the current Debian and build my own. Mine seems to be fine.
Application: KiCad
Version: 6.0.7, release build
Libraries:
wxWidgets 3.0.5
libcurl/7.84.0 OpenSSL/1.1.1n zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.4.59
Platform: Linux 5.18.0-0.bpo.1-amd64 x86_64, 64 bit, Little endian, wxGTK, plasma, x11
Build Info:
Date: Jul 27 2022 16:30:11
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.74.0
OCC: 7.5.1
Curl: 7.84.0
ngspice: 37
Compiler: GCC 10.2.1 with C++ ABI 1014
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON
built from untouched 6.0.7, cursor still jumps, when doing actions and first mouse move.
Application: KiCad
Version: 6.0.7, release build
Libraries:
wxWidgets 3.0.5
libcurl/7.84.0 OpenSSL/3.0.4 zlib/1.2.11 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.3 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.10.0 nghttp2/1.48.0 librtmp/2.3 OpenLDAP/2.5.12
Platform: Linux 5.18.0-3-amd64 x86_64, 64 bit, Little endian, wxGTK, lightdm-xsession, x11
Build Info:
Date: Aug 13 2022 01:21:39
wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.74.0
OCC: 7.5.2
Curl: 7.84.0
ngspice: 37
Compiler: GCC 11.2.0 with C++ ABI 1016
Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON
only one needs to be commented out.
in common/view/wx_view_controls.cpp
void WX_VIEW_CONTROLS::WarpCursor(...
...
// m_parentPanel->WarpPointer( screenPos.x, screenPos.y );
...
does this warp cursor to its current position??
system
Closed
November 11, 2022, 1:09am
18
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.