Clear text selection when focus is lost
fixes #409
2 files changed, 11 insertions, 1 deletions
diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp
index fcc2accf..b62437cd 100644
--- a/src/timeline/TimelineItem.cpp
+++ b/src/timeline/TimelineItem.cpp
@@ -69,7 +69,6 @@ TextLabel::TextLabel(const QString &text, QWidget *parent)
&TextLabel::adjustHeight);
document()->setDocumentMargin(0);
- setFocusPolicy(Qt::NoFocus);
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
setFixedHeight(0);
@@ -95,6 +94,16 @@ TextLabel::TextLabel(const QString &text, QWidget *parent)
}
void
+TextLabel::focusOutEvent(QFocusEvent *e)
+{
+ QTextBrowser::focusOutEvent(e);
+
+ QTextCursor cursor = textCursor();
+ cursor.clearSelection();
+ setTextCursor(cursor);
+}
+
+void
TextLabel::mousePressEvent(QMouseEvent *e)
{
link_ = (e->button() & Qt::LeftButton) ? anchorAt(e->pos()) : QString();
diff --git a/src/timeline/TimelineItem.h b/src/timeline/TimelineItem.h
index e87864a5..7dfc303c 100644
--- a/src/timeline/TimelineItem.h
+++ b/src/timeline/TimelineItem.h
@@ -110,6 +110,7 @@ public:
protected:
void mousePressEvent(QMouseEvent *e) override;
void mouseReleaseEvent(QMouseEvent *e) override;
+ void focusOutEvent(QFocusEvent* e) override;
private slots:
void adjustHeight(const QSizeF &size) { setFixedHeight(size.height()); }
|