diff options
author | Tobias Markmann <tm@ayena.de> | 2015-05-18 20:10:57 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2015-05-26 16:07:14 (GMT) |
commit | 0c5d33fdc77226ea1a447211ea4b2198197ec715 (patch) | |
tree | f626def04c6abcb7d688c64f48fb6e6d4fd8be27 /Swift/QtUI/QtChatWindow.h | |
parent | e544a3ad5a8d3cdf67554384f53895fad34ff9bc (diff) | |
download | swift-0c5d33fdc77226ea1a447211ea4b2198197ec715.zip swift-0c5d33fdc77226ea1a447211ea4b2198197ec715.tar.bz2 |
Fix trellis related bugs
Bugs like:
* Tab title not matching shown chat window
* Duplicated tab titles after tab movement
Swift is also subject to QTBUG-36455, which is fixed for Qt >= 5.3.0.
This commit removes the use of application wide focus handlers in
QtChatWindow class, the QtChatWindow::qAppFocusChanged method.
The reason for this is due to the way QTabBar::moveTab is implemented
in Qt which we use for the Trellis feature.
Internally QTabBar::moveTab first adjusts its tab bar labels, then
removes the tab from its old location in the internal QStackedLayout
and then inserts it in the new location. After the remove Qt gives
focus to another widget via a focus change that does not go through
the event loop of the application and is not interceptable with
eventFilters.
Previously we would set the focus and call other signals in the
application wide focus change handler which then used the currently
inconsistent QTabBar/QTabWidget.
Test-Information:
Tested tab switching and movement on Windows 8 (Qt 5.3.2),
OS X 10.9.5 (Qt 5.4.3) and Ubuntu 14.04.2 LTS (Qt 5.4.3).
Change-Id: Ief423c4add58a90279109f72fac95fc58cb71111
Diffstat (limited to 'Swift/QtUI/QtChatWindow.h')
-rw-r--r-- | Swift/QtUI/QtChatWindow.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Swift/QtUI/QtChatWindow.h b/Swift/QtUI/QtChatWindow.h index 06c6064..19046c9 100644 --- a/Swift/QtUI/QtChatWindow.h +++ b/Swift/QtUI/QtChatWindow.h @@ -149,7 +149,6 @@ namespace Swift { void fontResized(int); protected slots: - void qAppFocusChanged(QWidget* old, QWidget* now); void closeEvent(QCloseEvent* event); void resizeEvent(QResizeEvent* event); void moveEvent(QMoveEvent* event); @@ -173,6 +172,8 @@ namespace Swift { void handleCurrentLabelChanged(int); void handleEmoticonsButtonClicked(); void handleEmoticonClicked(QString emoticonAsText); + void handleTextInputReceivedFocus(); + void handleTextInputLostFocus(); private: void updateTitleWithUnreadCount(); |