X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Ftopicwidget.cpp;h=8ec55e4b7d56e36d47c5adc10fefa924c603e461;hp=3b0250219efd62a2bfa09310e1914672315b05cf;hb=7b709c7036d1949874a5a40463c09be71d45fdc4;hpb=52bd92dcd0b307469997b24b446d48045dd2d4e5 diff --git a/src/qtui/topicwidget.cpp b/src/qtui/topicwidget.cpp index 3b025021..8ec55e4b 100644 --- a/src/qtui/topicwidget.cpp +++ b/src/qtui/topicwidget.cpp @@ -47,6 +47,7 @@ TopicWidget::TopicWidget(QWidget *parent) if(fs.value("UseCustomTopicWidgetFont", false).toBool()) setCustomFont(fs.value("TopicWidget", QFont())); + _mouseEntered = false; } void TopicWidget::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { @@ -133,6 +134,7 @@ void TopicWidget::on_topicEditButton_clicked() { void TopicWidget::switchEditable() { ui.stackedWidget->setCurrentIndex(1); ui.topicLineEdit->setFocus(); + ui.topicLineEdit->moveCursor(QTextCursor::End,QTextCursor::MoveAnchor); updateGeometry(); } @@ -144,12 +146,21 @@ void TopicWidget::switchPlain() { // filter for the input widget to switch back to normal mode bool TopicWidget::eventFilter(QObject *obj, QEvent *event) { - if(event->type() == QEvent::FocusOut) { + + if(event->type() == QEvent::FocusOut && !_mouseEntered) { switchPlain(); return true; } - - if(event->type() != QEvent::KeyPress) + + if(event->type() == QEvent::Enter) { + _mouseEntered = true; + } + + if(event->type() == QEvent::Leave) { + _mouseEntered = false; + } + + if(event->type() != QEvent::KeyRelease) return QObject::eventFilter(obj, event); QKeyEvent *keyEvent = static_cast(event);