Visual glitch in treeviews (e.g. "Add Component") under gtk3

Bug #1804400 reported by John Beard on 2018-11-21
74
This bug affects 11 people
Affects Status Importance Assigned to Milestone
KiCad
Low
John Beard

Bug Description

On the current master, I see a visual glitch in the treeview for the add component dialog.

When you enter a search, it looks like something is not quite in sync, as the contents change when hovered over with the mouse or the highlight is moved with the arrow keys.

See the video for a clearer idea!

Could be GTK+3 thing (?)

----

Application: kicad
Version: (6.0.0-rc1-dev-1238-gae6989f3a), debug build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.62.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) libssh2/1.8.0 nghttp2/1.34.0
Platform: Linux 4.18.16-arch1-1-ARCH 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.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.62.0
    Compiler: GCC 8.2.1 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=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

John Beard (john-j-beard) wrote :
Nick Østergaard (nickoe) wrote :

I see the same, at least with gkt3.

Changed in kicad:
milestone: none → 5.1.0
John Beard (john-j-beard) wrote :

I also see this in the treeview on the side the library editor.

Jeff Young (jeyjey) wrote :

GTK-specific? (Doesn't reproduce on OSX.)

summary: - Glitch in "Add Component" treeview
+ Glitch in "Add Component" treeview (GTK specific?)

Funny, I do not see it even with GTK3. WM specific?

---

Application: eeschema
Version: (6.0.0-rc1-dev-1367-g0769b0409), debug build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) libssh2/1.8.0 nghttp2/1.33.0
Platform: Linux 4.14.70-1-lts 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.67.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: Clang 6.0.1 with C++ ABI 1002
Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

John Beard (john-j-beard) wrote :

My WM is i3 (on Arch). I still see this issue on 4013f6424.

Seth Hillbrand (sethh) wrote :

This does not happen for me on GTK3. I use xfce for a window manager. Is it i3-specific?

Application: kicad
Version: (6.0.0-rc1-dev-1380-g222c9a401), release build
Libraries:
    wxWidgets 3.0.4
Platform: Linux 4.18.0-3-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.67.0
    OpenCASCADE Community Edition: 6.9.1
    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=OFF
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

If someone with i3 would like to take this on for v5.1, please update the status

summary: - Glitch in "Add Component" treeview (GTK specific?)
+ Glitch in "Add Component" treeview under i3
Changed in kicad:
importance: Undecided → Wishlist
milestone: 5.1.0 → 6.0.0-rc1
tags: added: gtk3
Seth Hillbrand (sethh) on 2018-12-24
summary: - Glitch in "Add Component" treeview under i3
+ Glitch in "Add Component" treeview under gtk3 in some cases
Changed in kicad:
importance: Wishlist → Medium
milestone: 6.0.0-rc1 → 5.1.0
status: New → Triaged

While annoying, it doesn't prevent proper use. If someone has a thought for a quick fix for this issue, please re-set. Otherwise, we should address in v6

Changed in kicad:
importance: Medium → Low
milestone: 5.1.0 → 6.0.0-rc1
John Beard (john-j-beard) wrote :

I don't really know what's going on here, but I'm not very familiar with the widget. But here is what I have found it does:

* Open footprint picker (O)
* Type "r" into the filter. You should see some footprints in the list.
** The first few are from the first library with suitable parts (Connector_RJ, 5 items).
** The "Connector_RJ" header is not shown (it's one row above the top)
** The next lib, "Crystal", how an expanded arrow, is expanded, and fills the rest of the list
** At this point, everything is normal
*Type a "j".
** The RJ items remain (expected)
** The "Crystal" items are filtered away and now we have some "Jumpers"
** The "Jumper" heading doesn't have an arrow
** When you mouse over an item, they turn into the item above (so the top RJ12 FP becomes the "Connector_RJ" heading, etc
** Moused over headings that appear do have arrows, but everything is off by one
* Pres "up", the list "scrolls", the top item changes to "Connector_RJ" and everything else falls into line.
* After this, further typing works normally
* Erasing all text resets and you can cause it again

This leads to the workaround: press "up" to sync the list before you press "down" or mouse around.

Frank Severinsen (shack) wrote :

I have the same problem

Application: kicad
Version: 5.1.0-rc1-unknown-7b3ef1b~86~ubuntu18.10.1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) nghttp2/1.32.1 librtmp/2.3
Platform: Linux 4.18.0-15-generic 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.67.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=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

description: updated
description: updated
Frank Severinsen (shack) wrote :

It seems to be consistent when the treeview contains both libraries and symbols. If only libraries or symbols are present, is doesnt do the update-thingy when it's hovered over

Frank Severinsen (shack) wrote :

This is also happening in the treeview in the symbol editor.
Something possibly interesting I noticed is the scrollbar scrolls down when as I'm typing.
If I hover over the list (while is has scrolled itself down) it will create the list from beginning at that scroll position. If I scrolls up and hover it will do the same thing again.
I have attached a video to show this behavior (In case I don't makes sense at all)
Please note the Key/mouse monitor in the top.

Is there any info I can provide to help solve this bug?
It's super annoying since I often clicks the wrong things, since it updates when I hover it.

Cal-linux (cal-linux) wrote :

The bug also happens in the *released* 5.1; at least on Ubuntu 18.04 running Unity desktop. It also happens in pcbnew when doing Place → Footprint and typing something to narrow-down the list of footprints:

Application: kicad
Version: 5.1.0-060a0da~80~ubuntu18.04.1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-46-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
    Boost: 1.65.1
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.58.0
    Compiler: GCC 7.3.0 with C++ ABI 1011

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

John Beard (john-j-beard) wrote :

This might be an upstream GTK+ bug:

* https://bugzilla.gnome.org/show_bug.cgi?id=721597

And I *think* it might be related to:

* https://gitlab.gnome.org/GNOME/gtk/issues/1212

Wayne Stambaugh (stambaughw) wrote :

If John's assessment is correct, we cannot fix this until gtk fixes it upstream.

Henner Zeller (hzeller) wrote :

+1 here, also added a little recording as GIF, which might be easier to watch.

Compiled on a current Debian testing, 5.1 branch.

Application: kicad
Version: (5.1.2-9-g454585d3d-dirty), release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Platform: Linux 4.19.0-4-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.67.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.64.0
    Compiler: Clang 7.0.1 with C++ ABI 1002
Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=ON
    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=ON

summary: - Glitch in "Add Component" treeview under gtk3 in some cases
+ Visual glitch in treeviews (e.g. "Add Component") under gtk3
John Beard (john-j-beard) wrote :

<Janitor hat>

Fixed in revision 10900c918f14563d4007bfa2ac8a59081ee1437a
https://git.launchpad.net/kicad/patch/?id=10900c918f14563d4007bfa2ac8a59081ee1437a

Also in 5.1:

Fixed in revision 434935613cc42abc616aacc6b62c170e80e98a6a
https://git.launchpad.net/kicad/patch/?id=434935613cc42abc616aacc6b62c170e80e98a6a

Changed in kicad:
milestone: 6.0.0-rc1 → 5.1.3
assignee: nobody → John Beard (john-j-beard)
status: Triaged → Fix Committed
Steven Falco (stevenfalco) wrote :

I confirm that this corrects the issue I reported in duplicate bug https://bugs.launchpad.net/bugs/1804400.

Thanks for the fix!

Steven Falco (stevenfalco) wrote :

I should have said "duplicate bug 1815507". Regardless, the fix is good, and thanks for making it.

Frank Severinsen (shack) wrote :

@John
This does indeed looks fixed to me
Hats off to you, this is really great!

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

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