Bug 418755

Summary: Text typed inside "Information about the crash" text box is invisible on Wayland
Product: [Applications] drkonqi Reporter: Patrick Silva <bugseforuns>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: eryeu01, heri+kde, kde, kdelibs-bugs, nate, sitter
Priority: NOR Keywords: wayland
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: screenshot

Description Patrick Silva 2020-03-12 00:12:44 UTC
Created attachment 126736 [details]
screenshot

See the atached screenshot please.
Blue bar above "Information about the crash" text box indicates that text was typed ("Minimum length reached"), but it is invisible.

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.18.80
KDE Frameworks Version: 5.68.0
Qt Version: 5.14.1
Comment 1 Harald Sitter 2020-03-12 12:29:45 UTC
Moving to kcompletion for investigation. Drkonqi doesn't nothing special here. The line edit is a KLineEdit though.

It could be a rendering bug in kwin I guess, but seems terribly unlikely since
it only affects this one label apparently.
Comment 2 Patrick Silva 2020-04-08 21:49:52 UTC
*** Bug 419856 has been marked as a duplicate of this bug. ***
Comment 3 David Edmundson 2020-04-14 11:38:33 UTC
With gammaray attached I can see the widget in the preview update immediately.

It's something with the scrollview. 

Scrollviews do have some custom code to do low level magic to move buffer contents without a re-render.  I've fixed stuff in QtWayland before on that, but weirdly only drkonqi seems affected here.


It's also *not* reproducible running just that .ui file standalone in qt designer preview.

Given we have another bug in drkonqi it implies some combo of scrollviews and the PageWidget? 

Probably nothing on KLineEdit.
Comment 4 David Edmundson 2020-04-14 15:06:52 UTC
Found it!!

KWallet::Wallet::openWallet(KWAllet::Walllet::NetworkWallet, parent()->windId());


looks innocent, but in fact creates an underlying surface in the wrong place .




Will fix.
Comment 5 David Edmundson 2020-04-14 16:48:39 UTC
Git commit 262389b1e49ba12f6d8df8db71e350fb62698c3e by David Edmundson.
Committed on 14/04/2020 at 16:48.
Pushed by davidedmundson into branch 'Plasma/5.18'.

Avoid creating subwindow on internal page widget

Summary:
KWallet::openWallet takes a windowId as a parameter.

QWidget->winId() is a dangerous call, it will create an underlying
platform window when called. This happens even if we're not the toplevel
widget. On X11 this passed winId must have always been broken, but not
in a way that caused a problem.

This leaves QtWayland in a very confused state with the side effect that
all scrolling widgets become broken.
Related: bug 420035

Test Plan:
Bisected drkonqi till we found the cause
Verified fix by running crashtest (with some mods so I could report a bug)
I can't confirm the winId is correct on X11, but the code looks safe

Reviewers: #plasma, sitter

Reviewed By: sitter

Subscribers: sitter, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D28832

M  +10   -2    src/bugzillaintegration/reportassistantpages_bugzilla.cpp

https://commits.kde.org/drkonqi/262389b1e49ba12f6d8df8db71e350fb62698c3e