Hi,

Recently I ran into a crash while doing drag-n-drop on some application that 
uses QPlainTextEdit from Qt 4.6.3. The crash happens when the text being 
dropped is large, causing the QPlainTextEdit to have a vertical scroll bar. I 
was able to fix it with the following patch:

diff -r 15465e31ff34 -r f8e5f70a5f95 src/gui/widgets/qplaintextedit.cpp
--- a/src/gui/widgets/qplaintextedit.cpp Thu Apr 12 14:41:58 2018 -0700
+++ b/src/gui/widgets/qplaintextedit.cpp             Mon Apr 23 16:21:28 2018 
+0530
@@ -673,7 +673,8 @@
         return;
     QRectF lr = br;
     QTextLine line = block.layout()->lineForTextPosition(position - 
block.position());
-    Q_ASSERT(line.isValid());
+    if (!line.isValid())
+        return;
     lr = line.naturalTextRect().translated(br.topLeft());
     if (lr.bottom() >= visible.bottom() || (center && lr.top() < 
visible.top()) || forceCenter){

Apparently this has been reported before here 
https://bugreports.qt.io/browse/QTBUG-30018 , and fixed only in the Qt Creator. 
I didn’t run into the Q_ASSERT because I didn’t try it with a debug version of 
Qt.

Questions:


  1.  Is this the right way to fix the problem?
  2.  Is it fixed in Qt5? I don’t think so, but I am not sure.
  3.  If this is the right fix, can someone please submit it on my behalf?

Regards,
Thiago


_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to