Eeschema: Right click menu is closed instantly

Bug #1798453 reported by Fabián Inostroza
20
This bug affects 2 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
High
Maciej Suminski

Bug Description

The only way to access one of the menu options is to keep the right mouse button pressed.

Application: kicad
Version: (6.0.0-rc1-dev-937-gc22a247db-dirty), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.0 GnuTLS/3.5.19 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) libssh2/1.8.0 nghttp2/1.32.0 librtmp/2.3
Platform: Linux 4.18.0-2-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.62.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.0
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=OFF

Revision history for this message
Tomasz Wlostowski (twlostow) wrote :

Can't reproduce here. Does this happen for all R-click menus or for a particular one? Did you try switching the window manager?

Tom

Changed in kicad:
status: New → Incomplete
Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

Hi Tom,

Just in eeschema, it worked fine until the switch to the GAL. The right click menu works fine in all other applications (except in the footprint library browser launched from eeschema, where it isn't shown at all).

I've just tried in GNOME shell with the default wm (wmctrl -m shows "GNOME shell" as wm).

Revision history for this message
John Beard (john-j-beard) wrote :

I think I can see this: it happens if the mouse moves during right-click:

* Move mouse to canvas
* Right click and hold: menu appears at click location
* Move mouse, menu remains in place during move
* Release: menu disappears. If the mouse was over a menu item, it is activated, if not, nothing happens.

This is probably easier to do accidentally on sensitive mouses, and even a tiny or brief move in step 3 is enough.

Revision history for this message
John Beard (john-j-beard) wrote :

In Pcbnew, you don't get the menu until R-mouse-up, and a right-drag doesn't invoke it.

Revision history for this message
John Beard (john-j-beard) wrote :

Presumably this is it in sch_draw_panel.cpp:314

    if( event.RightDown() )
    {
        OnRightClick( event );
        return;
    }

Which just always fires the event on any right down event (as there's no proper tool dispatcher in eeschema yet).

In eeschema and pcbnew *in legacy mode* the menu does that same thing, but doesn't vanish on mouse up.

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

Hi John,

I doubt it is because a mouse movement during right click, I tested with a touchpad that has separate buttons and it still happens.

On a Windows setup works fine.

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

I've changed the code John mentions to

if( event.RightUp() )

and it works fine, I don't know if this has any side effect though.

Revision history for this message
Seth Hillbrand (sethh) wrote :

Side effect would be that it ignores the mouse-down so you cannot hold down the right mouse button, move to the menu item and release to select

Seth Hillbrand (sethh)
Changed in kicad:
status: Incomplete → Triaged
importance: Undecided → High
milestone: none → 5.1.0
Revision history for this message
Seth Hillbrand (sethh) wrote :

I can see this in GTK3 but not GTK2. @Fabían, does this still happen for you?

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

Hi Seth, I'm using GTK2 and it still happen, I will compile a GTK3 version to test.

Application: kicad
Version: (6.0.0-rc1-dev-1113-ga55950bd6), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.0 GnuTLS/3.5.19 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.34.0 librtmp/2.3
Platform: Linux 4.18.0-2-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.62.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.0
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=OFF
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=OFF

Revision history for this message
Seth Hillbrand (sethh) wrote :

Does it still happen for you with the current GTK2 build?

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

@Seth, as I wrote in my previous comment yes, it still happens with build from master using gtk2.

I just finished compiling using gtk3 and the issue is also there.

Application: kicad
Version: (6.0.0-rc1-dev-1113-ga55950bd6), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.0 GnuTLS/3.5.19 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.34.0 librtmp/2.3
Platform: Linux 4.18.0-2-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
    Boost: 1.62.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.0
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=OFF

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

I've tried a build from master using gtk2 in debian stretch running MATE desktop and the issue is also there.

Application: kicad
Version: (6.0.0-rc1-dev-1127-g569d4a0f6), release build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.52.1 GnuTLS/3.5.8 zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3
Platform: Linux 4.9.0-8-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.62.0
    OpenCASCADE Community Edition: 6.8.0
    Curl: 7.52.1
    Compiler: GCC 6.3.0 with C++ ABI 1010

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=OFF
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=OFF

Changed in kicad:
assignee: nobody → Maciej Suminski (orsonmmz)
Revision history for this message
Maciej Suminski (orsonmmz) wrote :

Fixed in d6bc402f

Revision history for this message
Frank Severinsen (shack) wrote :

Hi @Orson

As Seth mentioned above, your fix kills the "right click menu, select on release".
Could the issue perhaps be fixed in another way which keeps the quick right click menu?

Revision history for this message
Maciej Suminski (orsonmmz) wrote :

Frank,

I am afraid it is not possible or involves dirty, platform specific hacks. Right click context menu works the same way in pcbnew. I suppose instantly disappearing menu is more irritating than lack of select-on-release.

Fabian,

Apologies, I have not noticed your remark in post #7 - I should have attributed the patch to you.

Revision history for this message
Fabián Inostroza (fabianinostroza) wrote :

@Maciej, I don't care. Thanks!

Changed in kicad:
status: Triaged → Fix Committed
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.