+++ /dev/null
-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
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-AUX krfb-4.12.5-CVE-2014-4607-unbundle-libvncserver.patch 4795 SHA256 108ca633c41fd6df6537acf95ecca8875b5fb98d87eeb73fdf5554cf862f9297 SHA512 a33f47c552c980eb3f3a025386a21363a1f681641c9cd83636ac27012972573338965544954ff2fa4122d6ccad479c6923fa554ae040ed2902b6d52baf4f4ad2 WHIRLPOOL 3d1c638498941fa4d9935a9c363b34df426718e7c27207b7987201f75f214c63095adc74eb23c1a7e38d9ad5e360559fa20888ddb793b731778d54e26bb3043a
AUX krfb-4.14.0-CVE-2014-4607-unbundle-libvncserver.patch 4598 SHA256 05d88e11630d5f76fb16ed60cef02ecb4c72d32f1f9796ff1b0436280454c551 SHA512 6c0534ff2675c3c38433b0f196b27b4de5613075bd2615b2dd0d7b97747013b05bbaa3daff32fb3648c389f03d42546e67a6e6dc38e371e9f081720d1de7811b WHIRLPOOL 78f95d7b6cbab7cad8d309ee3242cc1c2176b9cef91e27cf24c3949d5451a9210fa3bef2fde8f27315bec8a1d3f905eb3520ecd636583b6b7d5ab06fde813da2
DIST krfb-4.14.3.tar.xz 474604 SHA256 2d48831e15f457b85b0c41fbddde0575c680f50a78c974213f9d3aaa47e21723 SHA512 255a5d4ed364c071af7b2d23c707fd99cb68e6b45c6bb1a07558fad5b726cd7846f98751cbf71ae83df1dbc41e06a2dfd074f897660e732393bf95d1b217f7bb WHIRLPOOL 446f82a00345a59e48c79d358ba0b188e21d0325211cec304e7090b5333c65e3bb8d03474463e2148cd5c3f1c6da14e5fb7fd5ec90114b144667ef8c515bbdf0
EBUILD krfb-4.14.3.ebuild 1042 SHA256 70ebf140625f8cd3e24f9981633f4729db8abec57f22b50ab758589985bf5c3c SHA512 6a78239ddaa316872d492617b3bf6de7b1442b793a176865d9437059cdeb148a8b5c759cc4a3b17012d4bac10f38c5fd5f1e484958611f00a5e74b8389ac4c3b WHIRLPOOL a3397daacf4a48967656453dc25c2e3798a0b44a6cdc702deb8d5094647ed40031478c1c38a4ce41984099b05263eed63753d2e64004d382c12a418dee98e17d
-MISC ChangeLog 38202 SHA256 c276d663c3184dfe1769f7137c299f08074984f351ffc1e6c5bb953e3ec483c7 SHA512 817ba17a4014cb202106e48849e80e8d5d4c6d0af7237c2302a36b075a642184a459a37bd09a1f149f7574211305b7293d1871576612d0c899355a4520fca156 WHIRLPOOL 0cf4b27935a6e69cfa8851cde3b7f357c5e0eb92a49596df596f9ecf5b9e4a9f4c7f277631b9238f41c6268c8cd253a32f8905340b7404656dc19d0584804092
+MISC ChangeLog 38350 SHA256 d45bd40e5ddd9609ca4e4eb905d00bd7a3767865466ac7d5c35307a4c286aad7 SHA512 fece34fff8cc83ceb7994ea54c4f978ab77be9addee564e62996b17f5a4008bd5d27d394d7123d2d801f2a6865a71c385a683868de49c8e11e01c2f44c2b8580 WHIRLPOOL c30bb5c0080725d71a84d62cb1d84c1de74431b2c3a4def8ae7338853c34a6696d021cdd122aa39f3dd8ad8d15e5ae99a11c5bbddaccc33cf670c97c20518024
MISC metadata.xml 319 SHA256 d695e7837cbf56cdc41daa3e2aa4be890c39b71c4813847f5b226cc683cf2ed3 SHA512 99ca7cb2400d902baad50a8a334e4c192238b6659fcd0112fa03facdc73f750b1f719b2d4e057e411c9c8d696ef5b2004d2539b56d33bb819f0a30cfe6d26829 WHIRLPOOL 00c7a95a23f025f34d6dd9bfeeddb4936302db2f14a92232d27c432cd85d95a2f7832164b709331da8793dd939665030df4a2064a3fab9411289b33081afefcb
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2
+Version: GnuPG v2.0
-iQJ8BAEBCABmBQJU5L1pXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
-ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2REJCMDdDQzRGMERBRDA2RUEwQUZFNDFC
-MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZODKkQAKgK0qDhD8s6q30SCrZIVJiU
-kBlcx+chSYXbMDQaQ/xwDscaE0j07p0nj5omCCFab2huiyOIsQq8xOMh969NicZW
-ZocHPhNLDuVKc7CmW8xdVecWPcbtwNpiDnzDPFi6aWTdrcoIuSbxDpZ+A9c5cG8k
-iUsVi5OAn9QblibFjznsTNxBLfRjSg02BXNL6cJfA8oLFzwiGk2T8Y/wDH9amyvl
-ph0RzmZH9QkWNJENLMwQKoajO60oBInXT75vzkR4ifH1XuMZ8UqE+ALD05Dw6vWe
-f0J4V02AxmRO/HobcOH6NJSIhaXDhzGVIR4dnSZFV3n6/HZSg/IBq9canw8pITry
-oIYw5Ajm4iGDH0vnItnFsy7QJG2ezdxZ0N7E+9igJo0QtatmmB6xVgIGpmWI3UHh
-0dCH3te0udXQy4JuUrEJG54q5U+Pslm3TRF61V6zYsVCHV1ifoNsFXeGJtO//9EX
-BakYD2rROuEhscPSdKZZm/IoTKH2uKn3WkXGUdYiA3ij6J6lmveJoexjB5q0i4ZE
-MsWgHFMQp08eWwTfcQhH5/aBl29rqve6Z9OA1oni3WWhUNf8FBqlRxpuYQVA2TH2
-WZQ5WeITa0IXOngwtN3tv+5mo3QYKMxGMH+oP6DP3x/4x5CXOzMeadhvwDXH9+8W
-gEKNm2eYok7Y43lfFPsD
-=7xLZ
+iQJiBAEBCABMBQJU5UA8RRSAAAAAABQAKGlzc3Vlci1mcHJAbm90YXRpb25zOTc5
+MTY5NkQ3RDM3NkRBN0U5QjZGMTUwMDZCMUYzOERDQTQ1QTFFQwAKCRAGsfONykWh
+7Nt4D/wJb5KAYk6/wEwM/+ywv/BCQx2UGsh39IVRGiSRmttq4dWfgynYNRf7CGXh
+lHnsMjaHvCa0hH7xMFBDP20GFo+S2N81FsgNqCp5rf7yM/BFM6UneDQ/EeVRqLJw
+La/p7p1s5n5qCYscVTJlxk3GIOWsvfKQ70UN6nztxhivKJNLmL4SM74N4866Vwhq
+6CzD1WsYzuoO0WlabKrHzVPBgghoCWwXknx3HzLHINmjWT7ywjOV0Ord/4hsjklO
+3XpAJBXAFWSYJzexgRr4h076/puMSqb3w176GnFBG4sK4QebKoP+ohd1/BXy7Po8
+FJXr9/BlVMsbFJRCA3YGtv7Cld9d+h9Tjcgwd6ws9HpB2l41qBZG11HsLUWSUbdi
+oYedq63fdI5WX2oywEo5ZfMZgR8l1xEnA6QJVBmjy4f0F++EX+WxaUtTlrEM75e9
+BGHV0i/TYNyC4wtOqzS4uw+UHjkWsmhSlMplaktdKeKaa291C154iGMTkQIoSJCh
+JbaTqSy4zfGqV3fM4yDFEuUnH0A+y1Sdl5hKyTkzpP3knAikhSLCsxg2llXismHA
+hgW8p7dwV72i9m4n/++GdTagejEOMCoKg7CCGz4qFuqotuPJX8wgbQXysqd84cT9
+k8UCcamLH8vpWpdBsLcKMDYFTkXgo/jazfWOk65n2FdrQKUCJw==
+=jkFV
-----END PGP SIGNATURE-----
+++ /dev/null
-From 08f7c0c3d122f6096408007a0ac44c586c1c36b7 Mon Sep 17 00:00:00 2001
-From: Johannes Huber <johu@gentoo.org>
-Date: Thu, 31 Jul 2014 19:41:01 +0200
-Subject: [PATCH] CVE-2014-4607: Unbundle libvncserver
-
-http://seclists.org/oss-sec/2014/q2/676
-
-REVIEW: 119548
----
- CMakeLists.txt | 12 +++++++----
- cmake/modules/FindLibVNCServer.cmake | 41 ++++++++++++++++++++++++++++++++++++
- krfb/CMakeLists.txt | 2 ++
- krfb/rfb.h | 2 +-
- 4 files changed, 52 insertions(+), 5 deletions(-)
- create mode 100644 cmake/modules/FindLibVNCServer.cmake
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 78c19b3..7b0af64 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,6 +26,13 @@ if(NOT INSIDE_KDENETWORK)
- include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})
- endif(NOT INSIDE_KDENETWORK)
-
-+set(CMAKE_MODULE_PATH
-+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
-+ ${CMAKE_MODULE_PATH}
-+)
-+
-+find_package(LibVNCServer REQUIRED)
-+
- macro_optional_find_package(TelepathyQt4)
- macro_log_feature(TelepathyQt4_FOUND "telepathy-qt" "Telepathy Qt Bindings" "http://telepathy.freedesktop.org" FALSE "0.9" "Needed to build Telepathy Tubes support.")
-
-@@ -35,8 +42,6 @@ macro_bool_to_01(X11_XShm_FOUND HAVE_XSHM)
- include_directories ("${CMAKE_CURRENT_BINARY_DIR}/krfb"
- "${CMAKE_CURRENT_SOURCE_DIR}/krfb"
- "${CMAKE_CURRENT_SOURCE_DIR}/krfb/ui"
-- "${CMAKE_CURRENT_SOURCE_DIR}/libvncserver/"
-- "${CMAKE_CURRENT_BINARY_DIR}/libvncserver/"
- )
-
- if(Q_WS_X11)
-@@ -45,9 +50,8 @@ if(Q_WS_X11)
- endif(NOT X11_XTest_FOUND)
- endif(Q_WS_X11)
-
--add_subdirectory(libvncserver)
- add_subdirectory(krfb)
--add_subdirectory (framebuffers)
-+add_subdirectory(framebuffers)
- add_subdirectory(doc)
-
- if (NOT INSIDE_KDENETWORK)
-diff --git a/cmake/modules/FindLibVNCServer.cmake b/cmake/modules/FindLibVNCServer.cmake
-new file mode 100644
-index 0000000..5927ab2
---- /dev/null
-+++ b/cmake/modules/FindLibVNCServer.cmake
-@@ -0,0 +1,41 @@
-+# cmake macro to test LIBVNCSERVER LIB
-+
-+# Copyright (c) 2006, Alessandro Praduroux <pradu@pradu.it>
-+# Copyright (c) 2007, Urs Wolfer <uwolfer @ kde.org>
-+#
-+# Redistribution and use is allowed according to the terms of the BSD license.
-+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-+
-+INCLUDE(CheckPointerMember)
-+
-+IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
-+ # Already in cache, be silent
-+ SET(LIBVNCSERVER_FIND_QUIETLY TRUE)
-+ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
-+
-+FIND_PATH(LIBVNCSERVER_INCLUDE_DIR rfb/rfb.h)
-+
-+FIND_LIBRARY(LIBVNCSERVER_LIBRARIES NAMES vncserver libvncserver)
-+
-+# libvncserver and libvncclient are in the same package, so it does
-+# not make sense to add a new cmake script for finding libvncclient.
-+# instead just find the libvncclient also in this file.
-+FIND_PATH(LIBVNCCLIENT_INCLUDE_DIR rfb/rfbclient.h)
-+FIND_LIBRARY(LIBVNCCLIENT_LIBRARIES NAMES vncclient libvncclient)
-+
-+IF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
-+ SET(CMAKE_REQUIRED_INCLUDES "${LIBVNCSERVER_INCLUDE_DIR}" "${CMAKE_REQUIRED_INCLUDES}")
-+ CHECK_POINTER_MEMBER(rfbClient* GotXCutText rfb/rfbclient.h LIBVNCSERVER_FOUND)
-+ENDIF (LIBVNCSERVER_INCLUDE_DIR AND LIBVNCSERVER_LIBRARIES)
-+
-+IF (LIBVNCSERVER_FOUND)
-+ IF (NOT LIBVNCSERVER_FIND_QUIETLY)
-+ MESSAGE(STATUS "Found LibVNCServer: ${LIBVNCSERVER_LIBRARIES}")
-+ ENDIF (NOT LIBVNCSERVER_FIND_QUIETLY)
-+ELSE (LIBVNCSERVER_FOUND)
-+ IF (LIBVNCSERVER_FIND_REQUIRED)
-+ MESSAGE(FATAL_ERROR "Could NOT find acceptable version of LibVNCServer (version 0.9 or later required).")
-+ ENDIF (LIBVNCSERVER_FIND_REQUIRED)
-+ENDIF (LIBVNCSERVER_FOUND)
-+
-+MARK_AS_ADVANCED(LIBVNCSERVER_INCLUDE_DIR LIBVNCSERVER_LIBRARIES)
-\ No newline at end of file
-diff --git a/krfb/CMakeLists.txt b/krfb/CMakeLists.txt
-index bbc508d..08ee30c 100644
---- a/krfb/CMakeLists.txt
-+++ b/krfb/CMakeLists.txt
-@@ -20,6 +20,7 @@ target_link_libraries (krfbprivate
- ${QT_QTCORE_LIBRARY}
- ${QT_QTGUI_LIBRARY}
- ${X11_X11_LIB}
-+ ${LIBVNCSERVER_LIBRARIES}
- )
-
- set_target_properties (krfbprivate PROPERTIES
-@@ -104,6 +105,7 @@ target_link_libraries (krfb
- ${QT_QTNETWORK_LIBRARY}
- ${KDE4_KDNSSD_LIBS}
- ${KDE4_KDEUI_LIBS}
-+ ${LIBVNCSERVER_LIBRARIES}
- )
-
- if(TelepathyQt4_FOUND)
-diff --git a/krfb/rfb.h b/krfb/rfb.h
-index 40308a2..fa94eda 100644
---- a/krfb/rfb.h
-+++ b/krfb/rfb.h
-@@ -6,7 +6,7 @@
- #ifndef KRFB_RFB_H
- #define KRFB_RFB_H
-
--#include "../libvncserver/rfb/rfb.h"
-+#include "rfb/rfb.h"
-
- #undef TRUE
- #undef FALSE
---
-2.0.2
-