diff options
author | Chris Reffett <creffett@gentoo.org> | 2012-12-08 00:31:45 +0000 |
---|---|---|
committer | Chris Reffett <creffett@gentoo.org> | 2012-12-08 00:31:45 +0000 |
commit | 645dc6c5346c5d183da210c107a0b59c1cd33798 (patch) | |
tree | 47c62036d6a7c0d255228af02118c57c7f6838e9 /kde-base | |
parent | Split gstreamer plugin out of net-libs/libnice to enable clean optional suppo... (diff) | |
download | historical-645dc6c5346c5d183da210c107a0b59c1cd33798.tar.gz historical-645dc6c5346c5d183da210c107a0b59c1cd33798.tar.bz2 historical-645dc6c5346c5d183da210c107a0b59c1cd33798.zip |
Revision bump. Add patch to fix regression wrt drag and drop crashing dolphin and keyboard focus being incorrect after renaming files.
Package-Manager: portage-2.2.0_alpha144/cvs/Linux x86_64
Manifest-Sign-Key: 0x42618354
Diffstat (limited to 'kde-base')
-rw-r--r-- | kde-base/dolphin/ChangeLog | 10 | ||||
-rw-r--r-- | kde-base/dolphin/Manifest | 21 | ||||
-rw-r--r-- | kde-base/dolphin/dolphin-4.9.4-r1.ebuild (renamed from kde-base/dolphin/dolphin-4.9.4.ebuild) | 4 | ||||
-rw-r--r-- | kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch | 232 |
4 files changed, 250 insertions, 17 deletions
diff --git a/kde-base/dolphin/ChangeLog b/kde-base/dolphin/ChangeLog index f56d4fb1d64b..c1849349c062 100644 --- a/kde-base/dolphin/ChangeLog +++ b/kde-base/dolphin/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for kde-base/dolphin # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/ChangeLog,v 1.160 2012/12/05 16:58:07 alexxy Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/ChangeLog,v 1.161 2012/12/08 00:31:34 creffett Exp $ + +*dolphin-4.9.4-r1 (08 Dec 2012) + + 08 Dec 2012; Chris Reffett <creffett@gentoo.org> +dolphin-4.9.4-r1.ebuild, + +files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch, + -dolphin-4.9.4.ebuild: + Revision bump. Add patch to fix regression wrt drag and drop crashing dolphin + and keyboard focus being incorrect after renaming files. *dolphin-4.9.4 (05 Dec 2012) diff --git a/kde-base/dolphin/Manifest b/kde-base/dolphin/Manifest index a29068f60ffb..48c519b81a66 100644 --- a/kde-base/dolphin/Manifest +++ b/kde-base/dolphin/Manifest @@ -1,28 +1,19 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 +AUX dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch 9035 SHA256 fee187cf6c46bc892513600f08db24cd89a20782e546d99025a3e41248cf8f6c SHA512 a66eddcd465216024e3bdbe3604758cd17cb95d6ab4e354c7e0985fecc577dbe73c52cff27e4a7ba64beacb89202bf8aa88049bee147bc4f21f74736b6871129 WHIRLPOOL eff4663992ca42622cd7477eed234006702626bb56b967c1d7ad125f616a0673e60d57d7b7ef28d19c54bc3e3023263782db18da308f3c4ac52ca43092f3f132 DIST kde-baseapps-4.8.5.tar.xz 2781216 SHA256 7e3d85264c3eeb3a4d9c474e208b5ac3d6280a6a179889012c0b97d9dd1d418c SHA512 9e1890da2fcdfc77bc024e19e3547cc2f8bab2c886f9a8c0b870373179b0bd8983bf5a0c2e2bfc3f2009ec45a96713ce0008007f7227724180b4af222a7778fe WHIRLPOOL c01537f01ba4740442d2f1a4ae8db979fac56c52d0e41293718dc404d7876ae11e278a390a52729322c58bbb643416ff7e37ae8c5eb15902d18e5fc533ad346a DIST kde-baseapps-4.9.3.tar.xz 2487976 SHA256 26314e40abc5c138c1772aa1cdb61696550284ed5a170f19728b2deb12514bb7 SHA512 86ed31113374ad31aed6b345b9b371d6e282c88fe5e07564a80035229a7aef05d9bf615369e6278406ae72d38b53f84d41ce059ff3bad20f11959500cf493489 WHIRLPOOL 6068bb6b0fae080d1340d047eda9639bb83821baf79a4b0384e7844bca21215b30a480e12dcdfcc181837b77b11da053fa5ae727d2a50c5283b0f34cd5d1d709 DIST kde-baseapps-4.9.4.tar.xz 2523460 SHA256 c04208681afcbee108c51fadaca6ca8ba98090c56d66a454c6acc57288f6c238 SHA512 f709d000ddfbb0d73ceb977d83115b876b954123a0e839aeb99dd4c5bb2458f19f6961e46953c70070e27694941465032c50e050cf6ab2e9990e4b6f1c961a53 WHIRLPOOL 81743b8b7823ed44595de2dfec9356009b04f60e5768b211a88c29fef5afa7d48800610a14e8749fb13f3e2e4e80c53c80d8a00792abe6121b0782fd67c78b5f EBUILD dolphin-4.8.5.ebuild 1080 SHA256 252412ffee0085f1253d0f6e1ef9c513b94f058a777961f27d30f88c9892f93f SHA512 b20858af2f214d9607f16641697afe33bcffa3c8cd9d79d89183f288a0f8f19ea523f3003cefb9c66760ad935cabaa43aeb0eac3406ce1c488dcda4c3292219a WHIRLPOOL d55683447bcda4bfc17ce472fe04e846e342e7fddbd6ee1ace66763256deb35d2c9fb5bb3f8065a8e2b163e74243a3804a21ea53995a05db120c616ca205c417 EBUILD dolphin-4.9.3.ebuild 1076 SHA256 013d7f828666014c30ec05b3be3a3ca690c196c5be5d9947d07ca0325d43b97b SHA512 7629f5cd0b7bae7642d24388f6713a0e6829df77aef76198e85e5f65d8733a310c00e09adb8a5d3facebb5645d05616f55a3400a099bd2a6f1be493013c3f5f2 WHIRLPOOL 90ac4935dbc25d4ab28e495aea37eadded74f572b4c3bae3932dd1a4c00c2d7548337532f98b6b7589e8ccf3edf5b776c9a0e3eda341b1559980dea0082dfc30 -EBUILD dolphin-4.9.4.ebuild 1082 SHA256 e977722c702a4185a8095048e1ea7eb36f5082fc754ae3fe51b8faa1b271f92e SHA512 0a81b2287ee3f6b79cad62605a88a48ef80a74fa85f766a601f481f25842cf8de1fe5eefa59c58bf4040be8069a6afc0e53aef880b207e19caf7df1eebc6acb5 WHIRLPOOL d245a95af66e1956526370dca879ca30f8ec3bed7cf9812fa25684d8e6c19a7d0bf204fb0c84f3830a038bcb0fa9731561b44799d7cf0a614cdf6bb3411017c5 -MISC ChangeLog 20876 SHA256 3c540822674a551a287d0111da2eefd658d82a611b470dae42afc8a919494518 SHA512 9b4cea09c4b3302fcbdf563fef67939625d6851a57cce6be5a19d85119f6e14ace5aad4147a42b29506d046be0dabe4a9d10e7cf131223697f4e5cd53ba9e166 WHIRLPOOL 2d4ac6ec5cdee4a26a8b1e6d2bcb52f3375daeb3392ef46428f702e51ada74c88a876a942d6ff4c4ea18f45f1574cc53f229008968f9be12d8893f39baa796bc +EBUILD dolphin-4.9.4-r1.ebuild 1165 SHA256 48d260b2b393c61f78c7a0cdc615a7d37c3eec6ddb670c865ac69f366ad5d07f SHA512 8719daaff3c5d02f8595da6c57b469298cc9d3cd0a134d23c67ae35051befceff785f4f950a8cbab8d2e131856312bcf8126ba7b2b8062fb089a832d98e0aa7a WHIRLPOOL fb70af35e24c1b5b96da664ba5819c059907e2a82e0428b192328604bb45de22863b4a889d52415666e4524d1556d00f085041a00050c1fbbfa513e7401c6b0b +MISC ChangeLog 21216 SHA256 8b3321afca85c77fc5ea6d4efaf7f830d38afa62178a1c90ab7e9a04e301885f SHA512 7d946c9b2e5fd3b466bea017e43c5d98eaf10e37b2b9efe962957f87ccae50549535651cb6cbddf127c79dde370b6addc59761968c87e1242fdfe193434b2f6e WHIRLPOOL f09c54a7467ad55b246a0c599ed3126edd93531b6fc98e3f64be2433e3893a527c22d1618eaf713c6ff84966282fba9254176ad24cf74fd12c27fa51c5e19793 MISC metadata.xml 287 SHA256 f8ca0fcb27fae3e13bce985f13164013ba54c573c50a047622953f03c48a6969 SHA512 b85ce8bcdb8dd6cf4521a6e287186c1b602383172bf0d2e239a63b7f223b0b920aba517cad1e430f1bca65598d7e998f71d7e297a92b1dfb277a6609c733eb8a WHIRLPOOL bb24b57ab0aedf0b59aaf84eb7aa2b35d3997eb2e00a34eab410015b0fc889f38f3f3d7bc374985fbd5e47627067b590ca968cb82cd34e9b790edbb57872ab1e -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) -iQIcBAEBCAAGBQJQv31+AAoJEOf+E+/4L5Lmi2IQAKEFDjBL9U/wI7bG8kVbzL2W -uJhIXyTYpXTVPZgIupwgLFqTDJqulGHr3CK6sDD070yEKPaHQaQfW7JnYOMFOy7c -wyXce1dvqiWeoJKNwRNZWCOiHBNj9zw5/TILtfRMo63X8KlzvB60CPheeH1x4cJE -zWrUBmjx+HrLSJjUxPUIqgaWg2JjiX7WmA662vyJZROKvSwvK+C6M6iF9TNzgKLh -YJnIVdd5PPd3NAE9QX6j278HJQ2Q5r95QZWNTmR8I3UL5Vi/fmtajp7KIM5GMeHo -pcuLGq6jQwbKDSonFunkJh4TVGqd6dBtZWLX6HsNRPAA+xDEsM1njjC3GeYI+LBp -hmMy8jfKb1aB74piTQEYoN31K8O2Ct5JjHxrS4jPNQIE14YCMdf/r0wepl/3IJWN -RgiPeoPuU5r+5a61+cCRGJfGagoZ80nam/DCemqXIKFT4H4S7xlUvxwjfy2qWSiI -QKLh7MVlm9DEgm9Nr8eLTuOOIDKf43TokkC0AOebtknXOkmh8vII+K2NqvTjZbGf -WMDvyzt9aVki7fLeVCYS/5pYdmP02MxGolv7qpos+yKWIVtNfUZVMfAQYy6fJ9K6 -CKyl+YFjfhI8P9pPeVIwuSLTgyLZ8qVDSUtsCSLIsRef/qBw79BgIEMtpTHit+mY -upKEZ+9atuHS2rFEtwW3 -=9Agm +iEYEAREIAAYFAlDCimgACgkQ23laikJhg1TYegCgggzBwHLFf3fdaC14MeBTkAzd +0jEAn25dT+koxBsQJXu4gTyky1Nfm1fv +=sP5t -----END PGP SIGNATURE----- diff --git a/kde-base/dolphin/dolphin-4.9.4.ebuild b/kde-base/dolphin/dolphin-4.9.4-r1.ebuild index e2bb8a1de9e4..ce25f2bdac9e 100644 --- a/kde-base/dolphin/dolphin-4.9.4.ebuild +++ b/kde-base/dolphin/dolphin-4.9.4-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/dolphin-4.9.4.ebuild,v 1.1 2012/12/05 16:58:07 alexxy Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/dolphin/dolphin-4.9.4-r1.ebuild,v 1.1 2012/12/08 00:31:34 creffett Exp $ EAPI=4 @@ -32,6 +32,8 @@ PDEPEND=" KMLOADLIBS="libkonq" +PATCHES=( "${FILESDIR}/${PN}-4.9.4-drag-and-drop-and-keyboard-focus.patch" ) + RESTRICT="test" # bug 393129 diff --git a/kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch b/kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch new file mode 100644 index 000000000000..9f328ec60f91 --- /dev/null +++ b/kde-base/dolphin/files/dolphin-4.9.4-drag-and-drop-and-keyboard-focus.patch @@ -0,0 +1,232 @@ +diff --git a/dolphin/src/kitemviews/kstandarditemlistwidget.cpp b/dolphin/src/kitemviews/kstandarditemlistwidget.cpp +index f92cab5..af16954 100644 +--- a/dolphin/src/kitemviews/kstandarditemlistwidget.cpp ++++ b/dolphin/src/kitemviews/kstandarditemlistwidget.cpp +@@ -193,7 +193,8 @@ KStandardItemListWidget::KStandardItemListWidget(KItemListWidgetInformant* infor + m_additionalInfoTextColor(), + m_overlay(), + m_rating(), +- m_roleEditor(0) ++ m_roleEditor(0), ++ m_oldRoleEditor(0) + { + } + +@@ -203,6 +204,7 @@ KStandardItemListWidget::~KStandardItemListWidget() + m_textInfo.clear(); + + delete m_roleEditor; ++ delete m_oldRoleEditor; + } + + void KStandardItemListWidget::setLayout(Layout layout) +@@ -609,13 +611,16 @@ void KStandardItemListWidget::editedRoleChanged(const QByteArray& current, const + this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant))); + disconnect(m_roleEditor, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)), + this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant))); +- // Do not delete the role editor using deleteLater() because we might be +- // inside a nested event loop which has been started by one of its event +- // handlers (contextMenuEvent() or drag&drop inside mouseMoveEvent()). +- m_roleEditor->deleteWhenIdle(); ++ m_oldRoleEditor = m_roleEditor; ++ m_roleEditor->hide(); + m_roleEditor = 0; + } + return; ++ } else if (m_oldRoleEditor) { ++ // Delete the old editor before constructing the new one to ++ // prevent a memory leak. ++ m_oldRoleEditor->deleteLater(); ++ m_oldRoleEditor = 0; + } + + Q_ASSERT(!m_roleEditor); +@@ -1267,21 +1272,19 @@ QRectF KStandardItemListWidget::roleEditingRect(const QByteArray& role) const + + void KStandardItemListWidget::closeRoleEditor() + { ++ disconnect(m_roleEditor, SIGNAL(roleEditingCanceled(int,QByteArray,QVariant)), ++ this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant))); ++ disconnect(m_roleEditor, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)), ++ this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant))); ++ + if (m_roleEditor->hasFocus()) { + // If the editing was not ended by a FocusOut event, we have + // to transfer the keyboard focus back to the KItemListContainer. + scene()->views()[0]->parentWidget()->setFocus(); + } + +- disconnect(m_roleEditor, SIGNAL(roleEditingCanceled(int,QByteArray,QVariant)), +- this, SLOT(slotRoleEditingCanceled(int,QByteArray,QVariant))); +- disconnect(m_roleEditor, SIGNAL(roleEditingFinished(int,QByteArray,QVariant)), +- this, SLOT(slotRoleEditingFinished(int,QByteArray,QVariant))); +- +- // Do not delete the role editor using deleteLater() because we might be +- // inside a nested event loop which has been started by one of its event +- // handlers (contextMenuEvent() or drag&drop inside mouseMoveEvent()). +- m_roleEditor->deleteWhenIdle(); ++ m_oldRoleEditor = m_roleEditor; ++ m_roleEditor->hide(); + m_roleEditor = 0; + } + +diff --git a/dolphin/src/kitemviews/kstandarditemlistwidget.h b/dolphin/src/kitemviews/kstandarditemlistwidget.h +index 787722d..386f60e 100644 +--- a/dolphin/src/kitemviews/kstandarditemlistwidget.h ++++ b/dolphin/src/kitemviews/kstandarditemlistwidget.h +@@ -241,6 +241,7 @@ private: + QPixmap m_rating; + + KItemListRoleEditor* m_roleEditor; ++ KItemListRoleEditor* m_oldRoleEditor; + + friend class KStandardItemListWidgetInformant; // Accesses private static methods to be able to + // share a common layout calculation +diff --git a/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp b/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp +index 78dbfe9..1e4b5fd 100644 +--- a/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp ++++ b/dolphin/src/kitemviews/private/kitemlistroleeditor.cpp +@@ -26,9 +26,7 @@ KItemListRoleEditor::KItemListRoleEditor(QWidget *parent) : + KTextEdit(parent), + m_index(0), + m_role(), +- m_blockFinishedSignal(false), +- m_eventHandlingLevel(0), +- m_deleteAfterEventHandling(false) ++ m_blockFinishedSignal(false) + { + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); +@@ -66,20 +64,6 @@ QByteArray KItemListRoleEditor::role() const + return m_role; + } + +-void KItemListRoleEditor::deleteWhenIdle() +-{ +- if (m_eventHandlingLevel > 0) { +- // We are handling an event at the moment. It could be that we +- // are in a nested event loop run by contextMenuEvent() or a +- // call of mousePressEvent() which results in drag&drop. +- // -> do not call deleteLater() to prevent a crash when we +- // return from the nested event loop. +- m_deleteAfterEventHandling = true; +- } else { +- deleteLater(); +- } +-} +- + bool KItemListRoleEditor::eventFilter(QObject* watched, QEvent* event) + { + if (watched == parentWidget() && event->type() == QEvent::Resize) { +@@ -91,42 +75,13 @@ bool KItemListRoleEditor::eventFilter(QObject* watched, QEvent* event) + + bool KItemListRoleEditor::event(QEvent* event) + { +- ++m_eventHandlingLevel; +- + if (event->type() == QEvent::FocusOut) { + QFocusEvent* focusEvent = static_cast<QFocusEvent*>(event); + if (focusEvent->reason() != Qt::PopupFocusReason) { + emitRoleEditingFinished(); + } + } +- +- const int result = KTextEdit::event(event); +- --m_eventHandlingLevel; +- +- if (m_deleteAfterEventHandling && m_eventHandlingLevel == 0) { +- // Schedule this object for deletion and make sure that we do not try +- // to deleteLater() again when the DeferredDelete event is received. +- deleteLater(); +- m_deleteAfterEventHandling = false; +- } +- +- return result; +-} +- +-bool KItemListRoleEditor::viewportEvent(QEvent* event) +-{ +- ++m_eventHandlingLevel; +- const bool result = KTextEdit::viewportEvent(event); +- --m_eventHandlingLevel; +- +- if (m_deleteAfterEventHandling && m_eventHandlingLevel == 0) { +- // Schedule this object for deletion and make sure that we do not try +- // to deleteLater() again when the DeferredDelete event is received. +- deleteLater(); +- m_deleteAfterEventHandling = false; +- } +- +- return result; ++ return KTextEdit::event(event); + } + + void KItemListRoleEditor::keyPressEvent(QKeyEvent* event) +@@ -144,8 +99,7 @@ void KItemListRoleEditor::keyPressEvent(QKeyEvent* event) + return; + case Qt::Key_Enter: + case Qt::Key_Return: +- // TODO: find a better way to fix the bug 309760 +- clearFocus(); // emitRoleEditingFinished(); results in a crash ++ emitRoleEditingFinished(); + event->accept(); + return; + default: +diff --git a/dolphin/src/kitemviews/private/kitemlistroleeditor.h b/dolphin/src/kitemviews/private/kitemlistroleeditor.h +index a2f7058..aa2c977 100644 +--- a/dolphin/src/kitemviews/private/kitemlistroleeditor.h ++++ b/dolphin/src/kitemviews/private/kitemlistroleeditor.h +@@ -47,15 +47,6 @@ public: + void setRole(const QByteArray& role); + QByteArray role() const; + +- /** +- * Calls deleteLater() if no event is being handled at the moment. +- * Otherwise, the deletion is deferred until the event handling is +- * finished. This prevents that the deletion happens inside a nested +- * event loop which might be run in contextMenuEvent() or +- * mouseMoveEvent() because this would probably cause a crash. +- */ +- void deleteWhenIdle(); +- + virtual bool eventFilter(QObject* watched, QEvent* event); + + signals: +@@ -64,7 +55,6 @@ signals: + + protected: + virtual bool event(QEvent* event); +- virtual bool viewportEvent(QEvent* event); + virtual void keyPressEvent(QKeyEvent* event); + + private slots: +@@ -85,8 +75,6 @@ private: + int m_index; + QByteArray m_role; + bool m_blockFinishedSignal; +- int m_eventHandlingLevel; +- bool m_deleteAfterEventHandling; + }; + + #endif +diff --git a/dolphin/src/views/dolphinview.cpp b/dolphin/src/views/dolphinview.cpp +index 70a7394..0e97c5a 100644 +--- a/dolphin/src/views/dolphinview.cpp ++++ b/dolphin/src/views/dolphinview.cpp +@@ -1227,11 +1227,14 @@ void DolphinView::updateViewState() + + QSet<int> selectedItems = selectionManager->selectedItems(); + +- for (QList<KUrl>::iterator it = m_selectedUrls.begin(); it != m_selectedUrls.end(); ++it) { ++ QList<KUrl>::iterator it = m_selectedUrls.begin(); ++ while (it != m_selectedUrls.end()) { + const int index = m_model->index(*it); + if (index >= 0) { + selectedItems.insert(index); +- m_selectedUrls.erase(it); ++ it = m_selectedUrls.erase(it); ++ } else { ++ ++it; + } + } + |