summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/accessible/simplewidgets.cpp2
-rw-r--r--src/widgets/dialogs/qfontdialog.cpp18
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp15
-rw-r--r--src/widgets/itemviews/qitemdelegate.cpp5
-rw-r--r--src/widgets/itemviews/qstyleditemdelegate.cpp5
-rw-r--r--src/widgets/kernel/qapplication.cpp27
-rw-r--r--src/widgets/kernel/qgesturemanager.cpp6
-rw-r--r--src/widgets/kernel/qgesturemanager_p.h1
-rw-r--r--src/widgets/kernel/qstandardgestures.cpp35
-rw-r--r--src/widgets/kernel/qwidget.cpp29
-rw-r--r--src/widgets/kernel/qwidget_p.h4
-rw-r--r--src/widgets/util/qcolormap.cpp7
-rw-r--r--src/widgets/widgets/qscrollbar.cpp23
-rw-r--r--src/widgets/widgets/qscrollbar_p.h1
-rw-r--r--src/widgets/widgets/qwidgettextcontrol.cpp3
15 files changed, 90 insertions, 91 deletions
diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp
index b729e66d3c..b3170278ee 100644
--- a/src/widgets/accessible/simplewidgets.cpp
+++ b/src/widgets/accessible/simplewidgets.cpp
@@ -137,6 +137,8 @@ QAccessible::State QAccessibleButton::state() const
QAbstractButton *b = button();
QCheckBox *cb = qobject_cast<QCheckBox *>(b);
+ if (b->isCheckable())
+ state.checkable = true;
if (b->isChecked())
state.checked = true;
else if (cb && cb->checkState() == Qt::PartiallyChecked)
diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp
index 94e96a52c5..5a68bfbc66 100644
--- a/src/widgets/dialogs/qfontdialog.cpp
+++ b/src/widgets/dialogs/qfontdialog.cpp
@@ -256,8 +256,10 @@ void QFontDialogPrivate::init()
}
updateFamilies();
- if (familyList->count() != 0)
+ if (familyList->count() != 0) {
familyList->setCurrentItem(0);
+ sizeList->setCurrentItem(0);
+ }
// grid layout
QGridLayout *mainGrid = new QGridLayout(q);
@@ -621,16 +623,13 @@ void QFontDialogPrivate::updateSizes()
QStringList str_sizes;
for(QList<int>::const_iterator it = sizes.constBegin(); it != sizes.constEnd(); ++it) {
str_sizes.append(QString::number(*it));
- if (current == -1 && *it >= size)
+ if (current == -1 && *it == size)
current = i;
++i;
}
sizeList->model()->setStringList(str_sizes);
- if (current == -1) {
- // we request a size bigger than the ones in the list, select the biggest one
- current = sizeList->count() - 1;
- }
- sizeList->setCurrentItem(current);
+ if (current != -1)
+ sizeList->setCurrentItem(current);
const QSignalBlocker blocker(sizeEdit);
sizeEdit->setText((smoothScalable ? QString::number(size) : sizeList->currentText()));
@@ -750,7 +749,10 @@ void QFontDialogPrivate::_q_sizeChanged(const QString &s)
break;
}
const QSignalBlocker blocker(sizeList);
- sizeList->setCurrentItem(i);
+ if (sizeList->text(i).toInt() == this->size)
+ sizeList->setCurrentItem(i);
+ else
+ sizeList->clearSelection();
}
_q_updateSample();
}
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index 771753b7da..b2dc614b2b 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -2753,10 +2753,14 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE
editor->removeEventFilter(d->delegateForIndex(index));
d->removeEditor(editor);
}
- if (hadFocus)
- setFocus(); // this will send a focusLost event to the editor
- else
+ if (hadFocus) {
+ if (focusPolicy() != Qt::NoFocus)
+ setFocus(); // this will send a focusLost event to the editor
+ else
+ editor->clearFocus();
+ } else {
d->checkPersistentEditorFocus();
+ }
QPointer<QWidget> ed = editor;
QApplication::sendPostedEvents(editor, 0);
@@ -2767,8 +2771,9 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE
}
// The EndEditHint part
- QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::ClearAndSelect
- | d->selectionBehaviorFlags();
+ QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::NoUpdate;
+ if (d->selectionMode != NoSelection)
+ flags = QItemSelectionModel::ClearAndSelect | d->selectionBehaviorFlags();
switch (hint) {
case QAbstractItemDelegate::EditNextItem: {
QModelIndex index = moveCursor(MoveNext, Qt::NoModifier);
diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp
index 0b654a7485..6a1fe22395 100644
--- a/src/widgets/itemviews/qitemdelegate.cpp
+++ b/src/widgets/itemviews/qitemdelegate.cpp
@@ -1210,13 +1210,10 @@ bool QItemDelegate::eventFilter(QObject *object, QEvent *event)
case Qt::Key_Escape:
// don't commit data
emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache);
- break;
+ return true;
default:
return false;
}
- if (editor->parentWidget())
- editor->parentWidget()->setFocus();
- return true;
} else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) {
//the Hide event will take care of he editors that are in fact complete dialogs
if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) {
diff --git a/src/widgets/itemviews/qstyleditemdelegate.cpp b/src/widgets/itemviews/qstyleditemdelegate.cpp
index c2aa630918..da5aeb3290 100644
--- a/src/widgets/itemviews/qstyleditemdelegate.cpp
+++ b/src/widgets/itemviews/qstyleditemdelegate.cpp
@@ -678,13 +678,10 @@ bool QStyledItemDelegate::eventFilter(QObject *object, QEvent *event)
case Qt::Key_Escape:
// don't commit data
emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache);
- break;
+ return true;
default:
return false;
}
- if (editor->parentWidget())
- editor->parentWidget()->setFocus();
- return true;
} else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) {
//the Hide event will take care of he editors that are in fact complete dialogs
if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) {
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index 92d3359909..8d0a51606e 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -2867,16 +2867,19 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
case QEvent::NetworkReplyUpdated:
break;
default:
- if (receiver->isWidgetType()) {
- if (d->gestureManager->filterEvent(static_cast<QWidget *>(receiver), e))
- return true;
- } else {
- // a special case for events that go to QGesture objects.
- // We pass the object to the gesture manager and it'll figure
- // out if it's QGesture or not.
- if (d->gestureManager->filterEvent(receiver, e))
- return true;
+ if (d->gestureManager->thread() == QThread::currentThread()) {
+ if (receiver->isWidgetType()) {
+ if (d->gestureManager->filterEvent(static_cast<QWidget *>(receiver), e))
+ return true;
+ } else {
+ // a special case for events that go to QGesture objects.
+ // We pass the object to the gesture manager and it'll figure
+ // out if it's QGesture or not.
+ if (d->gestureManager->filterEvent(receiver, e))
+ return true;
+ }
}
+ break;
}
}
#endif // QT_NO_GESTURES
@@ -3976,7 +3979,11 @@ bool QApplicationPrivate::translateRawTouchEvent(QWidget *window,
break;
}
default:
- if (widget->testAttribute(Qt::WA_WState_AcceptedTouchBeginEvent)) {
+ if (widget->testAttribute(Qt::WA_WState_AcceptedTouchBeginEvent)
+#ifndef QT_NO_GESTURES
+ || QGestureManager::gesturePending(widget)
+#endif
+ ) {
if (touchEvent.type() == QEvent::TouchEnd)
widget->setAttribute(Qt::WA_WState_AcceptedTouchBeginEvent, false);
if (QApplication::sendSpontaneousEvent(widget, &touchEvent) && touchEvent.isAccepted())
diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp
index 18abad4b40..929e5e2fcf 100644
--- a/src/widgets/kernel/qgesturemanager.cpp
+++ b/src/widgets/kernel/qgesturemanager.cpp
@@ -718,6 +718,12 @@ void QGestureManager::recycle(QGesture *gesture)
}
}
+bool QGestureManager::gesturePending(QObject *o)
+{
+ const QGestureManager *gm = QGestureManager::instance();
+ return gm && gm->m_gestureOwners.key(o);
+}
+
QT_END_NAMESPACE
#endif // QT_NO_GESTURES
diff --git a/src/widgets/kernel/qgesturemanager_p.h b/src/widgets/kernel/qgesturemanager_p.h
index 4ab631a921..6264b5a25d 100644
--- a/src/widgets/kernel/qgesturemanager_p.h
+++ b/src/widgets/kernel/qgesturemanager_p.h
@@ -81,6 +81,7 @@ public:
#endif //QT_NO_GRAPHICSVIEW
static QGestureManager* instance(); // declared in qapplication.cpp
+ static bool gesturePending(QObject *o);
void cleanupCachedGestures(QObject *target, Qt::GestureType type);
diff --git a/src/widgets/kernel/qstandardgestures.cpp b/src/widgets/kernel/qstandardgestures.cpp
index e3fd6404db..64ab68257a 100644
--- a/src/widgets/kernel/qstandardgestures.cpp
+++ b/src/widgets/kernel/qstandardgestures.cpp
@@ -77,11 +77,10 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state,
QPanGesture *q = static_cast<QPanGesture *>(state);
QPanGesturePrivate *d = q->d_func();
- const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
-
- QGestureRecognizer::Result result;
+ QGestureRecognizer::Result result = QGestureRecognizer::Ignore;
switch (event->type()) {
case QEvent::TouchBegin: {
+ const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
result = QGestureRecognizer::MayBeGesture;
QTouchEvent::TouchPoint p = ev->touchPoints().at(0);
d->lastOffset = d->offset = QPointF();
@@ -89,6 +88,7 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state,
}
case QEvent::TouchEnd: {
if (q->state() != Qt::NoGesture) {
+ const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
if (ev->touchPoints().size() == 2) {
QTouchEvent::TouchPoint p1 = ev->touchPoints().at(0);
QTouchEvent::TouchPoint p2 = ev->touchPoints().at(1);
@@ -104,6 +104,7 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state,
break;
}
case QEvent::TouchUpdate: {
+ const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
if (ev->touchPoints().size() >= 2) {
QTouchEvent::TouchPoint p1 = ev->touchPoints().at(0);
QTouchEvent::TouchPoint p2 = ev->touchPoints().at(1);
@@ -121,13 +122,7 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state,
}
break;
}
- case QEvent::MouseButtonPress:
- case QEvent::MouseMove:
- case QEvent::MouseButtonRelease:
- result = QGestureRecognizer::Ignore;
- break;
default:
- result = QGestureRecognizer::Ignore;
break;
}
return result;
@@ -168,9 +163,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state,
QPinchGesture *q = static_cast<QPinchGesture *>(state);
QPinchGesturePrivate *d = q->d_func();
- const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
-
- QGestureRecognizer::Result result;
+ QGestureRecognizer::Result result = QGestureRecognizer::Ignore;
switch (event->type()) {
case QEvent::TouchBegin: {
@@ -186,6 +179,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state,
break;
}
case QEvent::TouchUpdate: {
+ const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
d->changeFlags = 0;
if (ev->touchPoints().size() == 2) {
QTouchEvent::TouchPoint p1 = ev->touchPoints().at(0);
@@ -245,13 +239,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state,
}
break;
}
- case QEvent::MouseButtonPress:
- case QEvent::MouseMove:
- case QEvent::MouseButtonRelease:
- result = QGestureRecognizer::Ignore;
- break;
default:
- result = QGestureRecognizer::Ignore;
break;
}
return result;
@@ -297,9 +285,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state,
QSwipeGesture *q = static_cast<QSwipeGesture *>(state);
QSwipeGesturePrivate *d = q->d_func();
- const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
-
- QGestureRecognizer::Result result;
+ QGestureRecognizer::Result result = QGestureRecognizer::Ignore;
switch (event->type()) {
case QEvent::TouchBegin: {
@@ -318,6 +304,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state,
break;
}
case QEvent::TouchUpdate: {
+ const QTouchEvent *ev = static_cast<const QTouchEvent *>(event);
if (!d->started)
result = QGestureRecognizer::CancelGesture;
else if (ev->touchPoints().size() == 3) {
@@ -384,13 +371,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state,
}
break;
}
- case QEvent::MouseButtonPress:
- case QEvent::MouseMove:
- case QEvent::MouseButtonRelease:
- result = QGestureRecognizer::Ignore;
- break;
default:
- result = QGestureRecognizer::Ignore;
break;
}
return result;
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 8db5666d85..569828c44d 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -4681,7 +4681,8 @@ void QWidget::unsetCursor()
void QWidget::render(QPaintDevice *target, const QPoint &targetOffset,
const QRegion &sourceRegion, RenderFlags renderFlags)
{
- d_func()->render(target, targetOffset, sourceRegion, renderFlags, false);
+ QPainter p(target);
+ render(&p, targetOffset, sourceRegion, renderFlags);
}
/*!
@@ -4725,9 +4726,6 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
d->createExtra();
d->extra->inRenderWithPainter = true;
-#ifdef Q_WS_MAC
- d->render_helper(painter, targetOffset, toBePainted, renderFlags);
-#else
QPaintEngine *engine = painter->paintEngine();
Q_ASSERT(engine);
QPaintEnginePrivate *enginePriv = engine->d_func();
@@ -4738,7 +4736,7 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
// Render via a pixmap when dealing with non-opaque painters or printers.
if (!inRenderWithPainter && (opacity < 1.0 || (target->devType() == QInternal::Printer))) {
d->render_helper(painter, targetOffset, toBePainted, renderFlags);
- d->extra->inRenderWithPainter = false;
+ d->extra->inRenderWithPainter = inRenderWithPainter;
return;
}
@@ -4759,7 +4757,7 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
enginePriv->setSystemViewport(oldSystemClip);
}
- render(target, targetOffset, toBePainted, renderFlags);
+ d->render(target, targetOffset, toBePainted, renderFlags);
// Restore system clip, viewport and transform.
enginePriv->systemClip = oldSystemClip;
@@ -4768,9 +4766,8 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
// Restore shared painter.
d->setSharedPainter(oldPainter);
-#endif
- d->extra->inRenderWithPainter = false;
+ d->extra->inRenderWithPainter = inRenderWithPainter;
}
static void sendResizeEvents(QWidget *target)
@@ -5208,8 +5205,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP
}
void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset,
- const QRegion &sourceRegion, QWidget::RenderFlags renderFlags,
- bool readyToRender)
+ const QRegion &sourceRegion, QWidget::RenderFlags renderFlags)
{
if (!target) {
qWarning("QWidget::render: null pointer to paint device");
@@ -5217,7 +5213,7 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset,
}
const bool inRenderWithPainter = extra && extra->inRenderWithPainter;
- QRegion paintRegion = !inRenderWithPainter && !readyToRender
+ QRegion paintRegion = !inRenderWithPainter
? prepareToRender(sourceRegion, renderFlags)
: sourceRegion;
if (paintRegion.isEmpty())
@@ -5276,23 +5272,12 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset,
flags |= DontSetCompositionMode;
- if (target->devType() == QInternal::Printer) {
- QPainter p(target);
- render_helper(&p, targetOffset, paintRegion, renderFlags);
- return;
- }
-
-#ifndef Q_WS_MAC
// Render via backingstore.
drawWidget(target, paintRegion, offset, flags, sharedPainter());
// Restore shared painter.
if (oldSharedPainter)
setSharedPainter(oldSharedPainter);
-#else
- // Render via backingstore (no shared painter).
- drawWidget(target, paintRegion, offset, flags, 0);
-#endif
}
void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectList& siblings, int index, const QRegion &rgn,
diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h
index bdfc57f7c3..99cba0e20f 100644
--- a/src/widgets/kernel/qwidget_p.h
+++ b/src/widgets/kernel/qwidget_p.h
@@ -389,7 +389,7 @@ public:
void render_helper(QPainter *painter, const QPoint &targetOffset, const QRegion &sourceRegion,
QWidget::RenderFlags renderFlags);
void render(QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion,
- QWidget::RenderFlags renderFlags, bool readyToRender);
+ QWidget::RenderFlags renderFlags);
void drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, int flags,
QPainter *sharedPainter = 0, QWidgetBackingStore *backingStore = 0);
@@ -628,7 +628,7 @@ public:
#ifndef QT_NO_OPENGL
virtual GLuint textureId() const { return 0; }
- void setRenderToTexture() { renderToTexture = true; textureChildSeen = true; }
+ void setRenderToTexture() { renderToTexture = true; setTextureChildSeen(); }
void setTextureChildSeen()
{
Q_Q(QWidget);
diff --git a/src/widgets/util/qcolormap.cpp b/src/widgets/util/qcolormap.cpp
index 03ee8a395e..decfd7bd2c 100644
--- a/src/widgets/util/qcolormap.cpp
+++ b/src/widgets/util/qcolormap.cpp
@@ -66,7 +66,12 @@ static QColormapPrivate *screenMap = 0;
void QColormap::initialize()
{
screenMap = new QColormapPrivate;
-
+ if (!QGuiApplication::primaryScreen()) {
+ qWarning("no screens available, assuming 24-bit color");
+ screenMap->depth = 24;
+ screenMap->mode = QColormap::Direct;
+ return;
+ }
screenMap->depth = QGuiApplication::primaryScreen()->depth();
if (screenMap->depth < 8) {
screenMap->mode = QColormap::Indexed;
diff --git a/src/widgets/widgets/qscrollbar.cpp b/src/widgets/widgets/qscrollbar.cpp
index 05b8935bb5..5060ca0a70 100644
--- a/src/widgets/widgets/qscrollbar.cpp
+++ b/src/widgets/widgets/qscrollbar.cpp
@@ -248,8 +248,13 @@ void QScrollBarPrivate::flash()
Q_Q(QScrollBar);
if (!flashed && q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, q)) {
flashed = true;
- q->show();
+ if (!q->isVisible())
+ q->show();
+ else
+ q->update();
}
+ if (!flashTimer)
+ flashTimer = q->startTimer(0);
}
void QScrollBarPrivate::activateControl(uint control, int threshold)
@@ -386,6 +391,7 @@ void QScrollBarPrivate::init()
pointerOutsidePressedControl = false;
transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, q);
flashed = false;
+ flashTimer = 0;
q->setFocusPolicy(Qt::NoFocus);
QSizePolicy sp(QSizePolicy::Minimum, QSizePolicy::Fixed, QSizePolicy::Slider);
if (orientation == Qt::Vertical)
@@ -476,6 +482,7 @@ void QScrollBar::sliderChange(SliderChange change)
*/
bool QScrollBar::event(QEvent *event)
{
+ Q_D(QScrollBar);
switch(event->type()) {
case QEvent::HoverEnter:
case QEvent::HoverLeave:
@@ -486,6 +493,16 @@ bool QScrollBar::event(QEvent *event)
case QEvent::StyleChange:
d_func()->setTransient(style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this));
break;
+ case QEvent::Timer:
+ if (static_cast<QTimerEvent *>(event)->timerId() == d->flashTimer) {
+ if (d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)) {
+ d->flashed = false;
+ update();
+ }
+ killTimer(d->flashTimer);
+ d->flashTimer = 0;
+ }
+ break;
default:
break;
}
@@ -536,10 +553,6 @@ void QScrollBar::paintEvent(QPaintEvent *)
opt.activeSubControls = (QStyle::SubControl)d->hoverControl;
}
style()->drawComplexControl(QStyle::CC_ScrollBar, &opt, &p, this);
- if (d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)) {
- d->flashed = false;
- update();
- }
}
/*!
diff --git a/src/widgets/widgets/qscrollbar_p.h b/src/widgets/widgets/qscrollbar_p.h
index c62c337a40..5fc714d530 100644
--- a/src/widgets/widgets/qscrollbar_p.h
+++ b/src/widgets/widgets/qscrollbar_p.h
@@ -81,6 +81,7 @@ public:
void setTransient(bool value);
bool flashed;
+ int flashTimer;
void flash();
};
diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp
index 03a65aa8e5..3740f3e698 100644
--- a/src/widgets/widgets/qwidgettextcontrol.cpp
+++ b/src/widgets/widgets/qwidgettextcontrol.cpp
@@ -239,9 +239,6 @@ bool QWidgetTextControlPrivate::cursorMoveKeyEvent(QKeyEvent *e)
else if (e == QKeySequence::MoveToPreviousLine) {
op = QTextCursor::Up;
}
- else if (e == QKeySequence::MoveToPreviousLine) {
- op = QTextCursor::Up;
- }
else if (e == QKeySequence::MoveToStartOfLine) {
op = QTextCursor::StartOfLine;
}