summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Huber <johu@gentoo.org>2014-03-13 16:02:52 +0000
committerJohannes Huber <johu@gentoo.org>2014-03-13 16:02:52 +0000
commit321809c717bd2c4b14480b524b2579dd4100e1af (patch)
tree2221a93befa3d4eaf7b6b0f4396dd180e4704f79 /kde-base/katepart
parentVersion bump (diff)
downloadhistorical-321809c717bd2c4b14480b524b2579dd4100e1af.tar.gz
historical-321809c717bd2c4b14480b524b2579dd4100e1af.tar.bz2
historical-321809c717bd2c4b14480b524b2579dd4100e1af.zip
Revision bump adds backported upstream patch by Michael Palimaka <kensington@gentoo.org>, spotted by Thomas <Thomas.Eschenbacher@gmx.de>. Patch fixes crashes in kde-bae/kate and dev-util/kdevelop, bug #502494.
Package-Manager: portage-2.2.8-r1/cvs/Linux x86_64 Manifest-Sign-Key: 0xF3CFD2BD
Diffstat (limited to 'kde-base/katepart')
-rw-r--r--kde-base/katepart/ChangeLog11
-rw-r--r--kde-base/katepart/Manifest31
-rw-r--r--kde-base/katepart/files/katepart-4.12.3-crash-fix.patch323
-rw-r--r--kde-base/katepart/katepart-4.12.3-r1.ebuild (renamed from kde-base/katepart/katepart-4.12.3.ebuild)4
4 files changed, 352 insertions, 17 deletions
diff --git a/kde-base/katepart/ChangeLog b/kde-base/katepart/ChangeLog
index 22d76c88f3de..c233cf491acd 100644
--- a/kde-base/katepart/ChangeLog
+++ b/kde-base/katepart/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for kde-base/katepart
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/katepart/ChangeLog,v 1.124 2014/03/11 13:06:58 johu Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/katepart/ChangeLog,v 1.125 2014/03/13 16:02:45 johu Exp $
+
+*katepart-4.12.3-r1 (13 Mar 2014)
+
+ 13 Mar 2014; Johannes Huber <johu@gentoo.org>
+ +files/katepart-4.12.3-crash-fix.patch, +katepart-4.12.3-r1.ebuild,
+ -katepart-4.12.3.ebuild:
+ Revision bump adds backported upstream patch by Michael Palimaka
+ <kensington@gentoo.org>, spotted by Thomas <Thomas.Eschenbacher@gmx.de>. Patch
+ fixes crashes in kde-bae/kate and dev-util/kdevelop, bug #502494.
11 Mar 2014; Johannes Huber <johu@gentoo.org> -katepart-4.12.2.ebuild:
Remove KDE SC 4.12.2
diff --git a/kde-base/katepart/Manifest b/kde-base/katepart/Manifest
index 7bbd270d295e..076b337765fd 100644
--- a/kde-base/katepart/Manifest
+++ b/kde-base/katepart/Manifest
@@ -1,26 +1,27 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
+AUX katepart-4.12.3-crash-fix.patch 11301 SHA256 ffbcb5e141fcae299b7f7cf3553d9b0e0ceb041439b0d6a1af2ba0e5205f318a SHA512 244589de54f5d9bda4ffca9f18241629eb8e2ef7567c9f5f3dc023fabcff690306e0f98fda79bb53227b8fba37c4f82b67bd49db6c439fb5f551175b70db7899 WHIRLPOOL 22fef77c29f2046bc6a6d18a8f5d67d8f3dac2ac73fd29ee9a4cc098a34dd620cf9efc14c95ef4bd7eb983d29bc07d63a73b2fe2202afe9f40974d9dae3d530e
DIST kate-4.11.5.tar.xz 2585636 SHA256 bb7bb30d5cca0afaa384c43944a45e11affd6a838c37dff8238f8eea07e2b1b7 SHA512 987a92f0a96c9342a375210c01dbd37e86659c3527a11477dfc8b5058b75ea7002598cf9264fff221635e91549ba7235e9ec24d7ff2cf6a8d787c8bd447e18cf WHIRLPOOL d9755c58ec038da85fba7fbf5203b6c6f037e0a1e4af0e16d688918fb78642cdde5fff69e8dbddc7e2dc9be4d520c49690e6af88ea299d4f9f9e0d6c6c6a47d6
DIST kate-4.12.3.tar.xz 2643040 SHA256 b49c0de2ac215537f449efd6cdef1fc081ef3bc48d0c0e1d7a6f30545bd5c7da SHA512 052869e1bad958d6f06612a530709a62f4c061730603704308e92bfe90693919c4fc239a146a549db5aa3ec3404d9962c9b62d2a9a2877bc54228777df207be6 WHIRLPOOL 45c9655b85eb66e0a5205ce434a822bb4614deec821ae8a8348190e08181e35159bb0cd3759f8cafab4c81d0f92c0be6bd3c9b2185aa2f1432f426e5898cf5ce
EBUILD katepart-4.11.5.ebuild 640 SHA256 20423005415a81f203c856ab8074b4579c85237d45d8f9d3f25dfe920f79b4dd SHA512 ec87f922c5bb1e31fbdd5fa5f456a09a4ba8b49479ea9df68a6f67db90b113b51057bee01977a0721aa62346b63735174f239b8dc39590df1862943c93b25525 WHIRLPOOL 5a6befaa679ba8db58a616a917b75d77e74c6a4d604b3fc4fe2acc97564a7963d024126360453415e2846eef3aaa90253ad92b9bd022e7815b1a499dc25f68d7
-EBUILD katepart-4.12.3.ebuild 646 SHA256 f5585239267643939ae1abbc8c0d2a7e85952e2b711e8bcb6c94ba75ba15144e SHA512 2f355efee6037536b47feaf1966109befb297618603df0be9e25cee3352e8e290c338006333d254b29dc2d5860e41e007799ec6ff1b44bd75e59a696007f77fc WHIRLPOOL 0ac8c40e8aa8f077e30cf3644e893cad33d07c80e5fd01eab9ac2f3b484a942eb79276965c36fd1805290bdb7b50a086aec50ea4bf678c2b8244350ef0fea279
-MISC ChangeLog 14594 SHA256 752f17c9973ca59be5df22cf701fe9a68ecd501495b2c0692d67420978745aa1 SHA512 b0d7429f7d978610a5740515f718d7f8a17c4a244072e5010c83221317ee2e789984b20c9df1581749f5a4bd154850f819c9cbe85d20063c0956f0723d1744d1 WHIRLPOOL f244c044794a965bee2d64d8d85c5170bd0fd92b88b83c4a405099f1148932b6e1921bdcfb6934f2eabdd4314bcd7c40058190a4962fb7d8226b7b1a33fd7760
+EBUILD katepart-4.12.3-r1.ebuild 697 SHA256 1df091e766eba367c155085236ae5da7df43320e46500c9063a6eb1819bcccdb SHA512 dca48c5a263af0ec8c2fe1d91d5d7ed5cf106db1e96f4bb9ed185efe229f4ab2e286ddf1805b9bc9dc769280158e0df9cb276627a38bf2d3a0aa0f8f97ca3d94 WHIRLPOOL 7f9f3c406da8e05558245acbe48832b5125bb9178fc76434aef79f07a247807a42360794d466d7f0ec66e5cc9cb0940272c679fa3d161e63044b01d744ce948b
+MISC ChangeLog 14991 SHA256 eb59e3b9041e59172b23b442180f0c5c2a18852df92e1e6b5d8f979159eddfcb SHA512 b175f3e6957f7aa92a047f7c4bcc7304f5eff4c800b5961b8a29f0cdc13d92ffb6aa08c1bca7a11a65b5a6ca05fa3a3c6c8e785484b5a461a444e3ff5f6a0d7b WHIRLPOOL 10a692abb5873d8ca033d9b612f42da54e92e824837578b21a5b688b626fcb426dee5707e7480d2b2c0944f77ea078cf525378329708e512a6ae0a607190bca6
MISC metadata.xml 156 SHA256 2f4da28506b9d4185f320f67a6191d30c7a921217ed4447ed46ea0bc4aefc79a SHA512 0dcd7cfb246c4518ed1653cb06f5d2c7220ea90160a4b1a1da43edf5124b76d7104fe35a545178b6b3df19f5f3a3eb3f31ac1b4d169e3ca90d78be3e20e58b05 WHIRLPOOL df162e3d521df7decdd84d980e4bc71531bb8e05486c07102c554b529c10a1fb3374dda79d56b13bc037a2d230b4b8ff25702c7a1b86d703a24e8bfe7fe57642
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
-iQIcBAEBCAAGBQJTHvx8AAoJEGVpnaTzz9K95UEQALt7NuNSgTeKK1K2HNR4Mr80
-TlJjZSh8xAmW3/5aqj81DMC6gR73JZyY+TAsXPIY5CDMqweNs3BNMlkUB3PyQme4
-OEa9CCZ+yvSsdqlOtaHlcQr0ificUphfi48MrxT1bYZdInZ6nF7cw77iGYhtvHAO
-Jer6M3ChlTeYjD0oVusn3ae0xxE9MCkTTvdNdKcCC4YD+XS0sCON7HegSK+AKL0X
-V2L5GCQoM6ZkAG/5jwMPRuuWgibtr32ve3XOIhAGX7ge+g0SRD4oqFoP4Tb/s1ay
-ROOgc+/LTobL83wvqzSXEoc+H3ve/FtAOn33X6648EPVAGePEv2DSM9LXjy7qpsc
-mbsCYJYE6ypC7TqE4bDO+8cumDUQ00uDCU2XqxSCcPKAqA1oA3iB3PDFFgl8OkHE
-WusRP4f8gOHxmSIWMmRiiMtXPkexgLbrptXboKA7KeAWnCV8LvMoYHNBRElKfGnw
-kc4y+hDCBJlFHQAoYHiCPPjyFmq44IqzSOXZC2eUgkQcLdmPPyIMlNrqm8zSt8tw
-zrRa/Qo0D4ioOAChAM6FEgGUd/lK076mmONxphxTl6nxWJgdWZLW1D2W5tEzYO7F
-JWE2jZzZpRUvfqrCylZBqQFsudAWU++dalN902a/w2A+ZPe3hkguTdEYj5nxbYDj
-f/Ir1kgjJyFn08xkyF6d
-=HJ2M
+iQIcBAEBCAAGBQJTIdapAAoJEGVpnaTzz9K94DYP/1qO7+zplGj8F+XgksugFsO/
+qPd/VkjG+7wJnKB0Y4fRlMXvrR4CB94ZSMeK5bQm6qqlwMEDFfKFM1zJSc1N6CHH
+wOWwhUEvjsQlNWURklxb5Ssl1WT3GClaT+hvEQ5xvr2tPR+3tq5P+AHfciIZveCR
++8XaZ9KIYT4ihCLTRvyjTPPm7VavofNZl+koFfFSYPbY5LPbLsjvZKOQt75oEGZD
+DEXcAHThZbBSCNJMainhxFb7BjRWFKhF50b+/n7CT8xfNYk6KBklgg0R9mwFXRPT
+qhh1VdWJcfJaNMOHfDKklt6Q2/XqJUpBmzR3PClkWzBD99SsC+/GngVbQKbg/uAj
+3sN1r168HTRaCAVfZMNLhPlaIiuWxB4hmi5p+vG8zm6yINGRKWD2xpcg8LAYJmjU
+bzWMFFyk4xF/kZHYoCFLn8i7GGOheginyZTu+XbVOpgqT4iVFRvhwrFs+ZrlEoQu
+Ph9ENqLej6Y0zmK8D8J+j0uI/QfP2Z0hraDasfqyep00oUiTfld1Y0mVNK1ucAzr
+RGMd9CZ6UcckoIfZx5TM7ruNW+V9/3c6qvyF3DpUg9DSnDCsRN+aTXu7LpigPEGN
+HpZRpfdjWvbVXTtxGFlNGZEf30eZJmq/74MNrOPWkB/YUBazuDiAho9MPEz23gFo
+twXsL0aMmejbwssTwdnd
+=Vnl4
-----END PGP SIGNATURE-----
diff --git a/kde-base/katepart/files/katepart-4.12.3-crash-fix.patch b/kde-base/katepart/files/katepart-4.12.3-crash-fix.patch
new file mode 100644
index 000000000000..e6e87da3184b
--- /dev/null
+++ b/kde-base/katepart/files/katepart-4.12.3-crash-fix.patch
@@ -0,0 +1,323 @@
+diff --git a/part/completion/katecompletionmodel.cpp b/part/completion/katecompletionmodel.cpp
+index 3fa8080..22af495 100644
+--- a/part/completion/katecompletionmodel.cpp
++++ b/part/completion/katecompletionmodel.cpp
+@@ -504,7 +504,7 @@ QModelIndex KateCompletionModel::indexForGroup( Group * g ) const
+ return createIndex(row, 0, 0);
+ }
+
+-void KateCompletionModel::clearGroups( bool shouldReset )
++void KateCompletionModel::clearGroups()
+ {
+ clearExpanding();
+ m_ungrouped->clear();
+@@ -536,9 +536,6 @@ void KateCompletionModel::clearGroups( bool shouldReset )
+
+ m_emptyGroups.append(m_bestMatches);
+ m_groupHash.insert(BestMatchesProperty, m_bestMatches);
+-
+- if(shouldReset)
+- reset();
+ }
+
+ QSet<KateCompletionModel::Group*> KateCompletionModel::createItems(const HierarchicalModelHandler& _handler, const QModelIndex& i, bool notifyModel) {
+@@ -577,9 +574,10 @@ QSet<KateCompletionModel::Group*> KateCompletionModel::deleteItems(const QModelI
+
+ void KateCompletionModel::createGroups()
+ {
++ beginResetModel();
+ //After clearing the model, it has to be reset, else we will be in an invalid state while inserting
+ //new groups.
+- clearGroups(true);
++ clearGroups();
+
+ bool has_groups=false;
+ foreach (CodeCompletionModel* sourceModel, m_completionModels) {
+@@ -600,10 +598,7 @@ void KateCompletionModel::createGroups()
+ makeGroupItemsUnique();
+
+ updateBestMatches();
+-
+- reset();
+-
+- emit contentGeometryChanged();
++ endResetModel();
+ }
+
+ KateCompletionModel::Group* KateCompletionModel::createItem(const HierarchicalModelHandler& handler, const QModelIndex& sourceIndex, bool notifyModel)
+@@ -660,9 +655,7 @@ void KateCompletionModel::slotRowsInserted( const QModelIndex & parent, int star
+ affectedGroups += createItems(handler, parent.isValid() ? parent.child(i, 0) : handler.model()->index(i, 0), true);
+
+ foreach (Group* g, affectedGroups)
+- hideOrShowGroup(g);
+-
+- emit contentGeometryChanged();
++ hideOrShowGroup(g, true);
+ }
+
+ void KateCompletionModel::slotRowsRemoved( const QModelIndex & parent, int start, int end )
+@@ -678,9 +671,7 @@ void KateCompletionModel::slotRowsRemoved( const QModelIndex & parent, int start
+ }
+
+ foreach (Group* g, affectedGroups)
+- hideOrShowGroup(g);
+-
+- emit contentGeometryChanged();
++ hideOrShowGroup(g, true);
+ }
+
+ KateCompletionModel::Group* KateCompletionModel::fetchGroup( int attribute, const QString& scope, bool forceGrouping )
+@@ -938,31 +929,32 @@ void KateCompletionModel::setCurrentCompletion( KTextEditor::CodeCompletionModel
+
+ m_currentMatch[model] = completion;
+
+- bool needsReset = false;
++ const bool resetModel = (changeType != Narrow);
++ if (resetModel) {
++ beginResetModel();
++ }
+
+ if (!hasGroups()) {
+- needsReset |= changeCompletions(m_ungrouped, changeType);
++ changeCompletions(m_ungrouped, changeType, !resetModel);
+ } else {
+ foreach (Group* g, m_rowTable) {
+ if(g != m_argumentHints)
+- needsReset |= changeCompletions(g, changeType);
++ changeCompletions(g, changeType, !resetModel);
+ }
+ foreach (Group* g, m_emptyGroups) {
+ if(g != m_argumentHints)
+- needsReset |= changeCompletions(g, changeType);
++ changeCompletions(g, changeType, !resetModel);
+ }
+ }
+
+ // NOTE: best matches are also updated in resort
+ resort();
+
+- kDebug()<<"needsReset"<<needsReset;
+- if(needsReset)
+- reset();
++ if (resetModel) {
++ endResetModel();
++ }
+
+ clearExpanding(); //We need to do this, or be aware of expanding-widgets while filtering.
+- emit contentGeometryChanged();
+- kDebug();
+ }
+
+ QString KateCompletionModel::commonPrefixInternal(const QString &forcePrefix) const
+@@ -1024,15 +1016,14 @@ QString KateCompletionModel::commonPrefix(QModelIndex selectedIndex) const
+ return commonPrefix;
+ }
+
+-bool KateCompletionModel::changeCompletions( Group * g, changeTypes changeType )
++void KateCompletionModel::changeCompletions( Group * g, changeTypes changeType, bool notifyModel )
+ {
+- bool notifyModel = true;
+ if(changeType != Narrow) {
+- notifyModel = false;
+ g->filtered = g->prefilter;
+ //In the "Broaden" or "Change" case, just re-filter everything,
+ //and don't notify the model. The model is notified afterwards through a reset().
+ }
++
+ //This code determines what of the filtered items still fit, and computes the ranges that were removed, giving
+ //them to beginRemoveRows(..) in batches
+
+@@ -1054,14 +1045,13 @@ bool KateCompletionModel::changeCompletions( Group * g, changeTypes changeType )
+ }
+ }
+
+- if(deleteUntil != -1) {
++ if(deleteUntil != -1 && notifyModel) {
+ beginRemoveRows(indexForGroup(g), 0, deleteUntil);
+ endRemoveRows();
+ }
+
+ g->filtered = newFiltered;
+ hideOrShowGroup(g, notifyModel);
+- return !notifyModel;
+ }
+
+ int KateCompletionModel::Group::orderNumber() const {
+@@ -1193,7 +1183,9 @@ void KateCompletionModel::setSortingEnabled( bool enable )
+ {
+ if (m_sortingEnabled != enable) {
+ m_sortingEnabled = enable;
++ beginResetModel();
+ resort();
++ endResetModel();
+ }
+ }
+
+@@ -1256,8 +1248,9 @@ const QList< QList < int > > & KateCompletionModel::columnMerges( ) const
+
+ void KateCompletionModel::setColumnMerges( const QList< QList < int > > & columnMerges )
+ {
++ beginResetModel();
+ m_columnMerges = columnMerges;
+- reset();
++ endResetModel();
+ }
+
+ int KateCompletionModel::translateColumn( int sourceColumn ) const
+@@ -1557,7 +1550,9 @@ void KateCompletionModel::setSortingAlphabetical( bool alphabetical )
+ {
+ if (m_sortingAlphabetical != alphabetical) {
+ m_sortingAlphabetical = alphabetical;
++ beginResetModel();
+ resort();
++ endResetModel();
+ }
+ }
+
+@@ -1571,11 +1566,13 @@ void KateCompletionModel::setSortingCaseSensitivity( Qt::CaseSensitivity cs )
+ {
+ if (m_sortingCaseSensitivity != cs) {
+ m_sortingCaseSensitivity = cs;
++ beginResetModel();
+ resort();
++ endResetModel();
+ }
+ }
+
+-void KateCompletionModel::resort( )
++void KateCompletionModel::resort()
+ {
+ foreach (Group* g, m_rowTable)
+ g->resort();
+@@ -1585,7 +1582,6 @@ void KateCompletionModel::resort( )
+
+ // call updateBestMatches here, so they are moved to the top again.
+ updateBestMatches();
+- emit contentGeometryChanged();
+ }
+
+ bool KateCompletionModel::Item::isValid( ) const
+@@ -1654,6 +1650,7 @@ void KateCompletionModel::setMaximumInheritanceDepth( int maxDepth )
+
+ void KateCompletionModel::refilter( )
+ {
++ beginResetModel();
+ m_ungrouped->refilter();
+
+ foreach (Group* g, m_rowTable)
+@@ -1667,6 +1664,7 @@ void KateCompletionModel::refilter( )
+ updateBestMatches();
+
+ clearExpanding(); //We need to do this, or be aware of expanding-widgets while filtering.
++ endResetModel();
+ }
+
+ void KateCompletionModel::Group::refilter( )
+@@ -2048,20 +2046,19 @@ void KateCompletionModel::removeCompletionModel(CodeCompletionModel * model)
+ if (!model || !m_completionModels.contains(model))
+ return;
+
++ beginResetModel();
+ m_currentMatch.remove(model);
+
+- clearGroups(false);
++ clearGroups();
+
+ model->disconnect(this);
+
+ m_completionModels.removeAll(model);
++ endResetModel();
+
+ if (!m_completionModels.isEmpty()) {
+ // This performs the reset
+ createGroups();
+- }else{
+- emit contentGeometryChanged();
+- reset();
+ }
+ }
+
+@@ -2252,6 +2249,10 @@ void KateCompletionModel::rowSelected(const QModelIndex& row) {
+
+ void KateCompletionModel::clearCompletionModels()
+ {
++ if (m_completionModels.isEmpty())
++ return;
++
++ beginResetModel();
+ foreach (CodeCompletionModel * model, m_completionModels)
+ model->disconnect(this);
+
+@@ -2260,6 +2261,7 @@ void KateCompletionModel::clearCompletionModels()
+ m_currentMatch.clear();
+
+ clearGroups();
++ endResetModel();
+ }
+
+ #include "katecompletionmodel.moc"
+diff --git a/part/completion/katecompletionmodel.h b/part/completion/katecompletionmodel.h
+index 5fedbcc..a10a533 100644
+--- a/part/completion/katecompletionmodel.h
++++ b/part/completion/katecompletionmodel.h
+@@ -183,7 +183,6 @@ class KATEPART_TESTS_EXPORT KateCompletionModel : public ExpandingWidgetModel
+ void expandIndex(const QModelIndex& index);
+ //Emitted whenever something has changed about the group of argument-hints
+ void argumentHintsChanged();
+- void contentGeometryChanged();
+
+ public Q_SLOTS:
+ void setSortingEnabled(bool enable);
+@@ -311,6 +310,7 @@ class KATEPART_TESTS_EXPORT KateCompletionModel : public ExpandingWidgetModel
+
+ private:
+ QString commonPrefixInternal(const QString &forcePrefix) const;
++ /// @note performs model reset
+ void createGroups();
+ ///Creates all sub-items of index i, or the item corresponding to index i. Returns the affected groups.
+ ///i must be an index in the source model
+@@ -319,8 +319,9 @@ class KATEPART_TESTS_EXPORT KateCompletionModel : public ExpandingWidgetModel
+ ///i must be an index in the source model
+ QSet<Group*> deleteItems(const QModelIndex& i);
+ Group* createItem(const HierarchicalModelHandler&, const QModelIndex& i, bool notifyModel = false);
+- void clearGroups(bool reset = true);
+- void hideOrShowGroup(Group* g, bool notifyModel = true);
++ /// @note Make sure you're in a {begin,end}ResetModel block when calling this!
++ void clearGroups();
++ void hideOrShowGroup(Group* g, bool notifyModel = false);
+ /// When forceGrouping is enabled, all given attributes will be used for grouping, regardless of the completion settings.
+ Group* fetchGroup(int attribute, const QString& scope = QString(), bool forceGrouping = false);
+ //If this returns nonzero on an index, the index is the header of the returned group
+@@ -336,7 +337,7 @@ class KATEPART_TESTS_EXPORT KateCompletionModel : public ExpandingWidgetModel
+ };
+
+ //Returns whether the model needs to be reset
+- bool changeCompletions(Group* g, changeTypes changeType);
++ void changeCompletions(Group* g, changeTypes changeType, bool notifyModel);
+
+ bool hasCompletionModel() const;
+
+diff --git a/part/completion/katecompletionwidget.cpp b/part/completion/katecompletionwidget.cpp
+index 64fa4ec..6dc63a0 100644
+--- a/part/completion/katecompletionwidget.cpp
++++ b/part/completion/katecompletionwidget.cpp
+@@ -325,7 +325,8 @@ void KateCompletionWidget::startCompletion(const KTextEditor::Range& word, const
+
+ m_lastInvocationType = invocationType;
+
+- disconnect(this->model(), SIGNAL(contentGeometryChanged()), this, SLOT(modelContentChanged()));
++ disconnect(this->model(), SIGNAL(layoutChanged()), this, SLOT(modelContentChanged()));
++ disconnect(this->model(), SIGNAL(modelReset()), this, SLOT(modelContentChanged()));
+
+ m_dontShowArgumentHints = true;
+
+@@ -412,7 +413,8 @@ void KateCompletionWidget::startCompletion(const KTextEditor::Range& word, const
+ cursorPositionChanged();
+
+ if (!m_completionRanges.isEmpty()) {
+- connect(this->model(), SIGNAL(contentGeometryChanged()), this, SLOT(modelContentChanged()));
++ connect(this->model(), SIGNAL(layoutChanged()), this, SLOT(modelContentChanged()));
++ connect(this->model(), SIGNAL(modelReset()), this, SLOT(modelContentChanged()));
+ //Now that all models have been notified, check whether the widget should be displayed instantly
+ modelContentChanged();
+ } \ No newline at end of file
diff --git a/kde-base/katepart/katepart-4.12.3.ebuild b/kde-base/katepart/katepart-4.12.3-r1.ebuild
index 0833a67efaa1..8544d07f8f16 100644
--- a/kde-base/katepart/katepart-4.12.3.ebuild
+++ b/kde-base/katepart/katepart-4.12.3-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/katepart/katepart-4.12.3.ebuild,v 1.1 2014/03/04 19:13:11 johu Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/katepart/katepart-4.12.3-r1.ebuild,v 1.1 2014/03/13 16:02:45 johu Exp $
EAPI=5
@@ -21,6 +21,8 @@ KMEXTRA="
addons/ktexteditor
"
+PATCHES=( "${FILESDIR}/${P}-crash-fix.patch" )
+
src_configure() {
local mycmakeargs=(
"-DKDE4_BUILD_TESTS=OFF"