#include <qcoreapplication.h>
#include <qfont.h>
-#include <qpainter.h>
#include <qevent.h>
#include <qdebug.h>
#include <qdrag.h>
#include "qtextlist.h"
#include "qtextdocumentwriter.h"
#include "private/qtextcursor_p.h"
-#include "qpagedpaintdevice.h"
-#include "private/qpagedpaintdevice_p.h"
#include <qtextformat.h>
#include <qdatetime.h>
void QQuickTextControlPrivate::selectionChanged(bool forceEmitSelectionChanged /*=false*/)
{
Q_Q(QQuickTextControl);
- if (forceEmitSelectionChanged)
+ if (forceEmitSelectionChanged) {
+ if (hasFocus)
+ qGuiApp->inputMethod()->update(Qt::ImCurrentSelection);
emit q->selectionChanged();
+ }
bool current = cursor.hasSelection();
if (current == lastSelectionState)
lastSelectionState = current;
emit q->copyAvailable(current);
- if (!forceEmitSelectionChanged)
+ if (!forceEmitSelectionChanged) {
+ if (hasFocus)
+ qGuiApp->inputMethod()->update(Qt::ImCurrentSelection);
emit q->selectionChanged();
+ }
emit q->cursorRectangleChanged();
}
class QAbstractScrollArea;
class QEvent;
class QTimerEvent;
-class QPagedPaintDevice;
class Q_AUTOTEST_EXPORT QQuickTextControl : public QObject
{
virtual int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
virtual QRectF blockBoundingRect(const QTextBlock &block) const;
- QAbstractTextDocumentLayout::PaintContext getPaintContext() const;
public Q_SLOTS:
void setPlainText(const QString &text);
QVERIFY(edit->selectionStart() != edit->selectionEnd());
QVERIFY(platformInputContext.m_updateCallCount > 0);
+ // programmatical selections trigger update
+ platformInputContext.clear();
+ edit->selectAll();
+ QCOMPARE(platformInputContext.m_updateCallCount, 1);
+
// font changes
platformInputContext.clear();
QFont font = edit->font();