diff --git a/klipper/klipper.h b/klipper/klipper.h --- a/klipper/klipper.h +++ b/klipper/klipper.h @@ -159,6 +159,8 @@ QClipboard* m_clip; + QSharedPointer m_last; + QTime m_showTimer; History* m_history; diff --git a/klipper/klipper.cpp b/klipper/klipper.cpp --- a/klipper/klipper.cpp +++ b/klipper/klipper.cpp @@ -612,6 +612,8 @@ saveHistory = false; } + m_last = item; + if (saveHistory) { history()->insert( item ); } @@ -693,7 +695,7 @@ // This won't quite work, but it's close enough for now. // The trouble is that the top selection =! top clipboard // but we don't track that yet. We will.... - auto top = history()->first(); + auto top = m_last; if ( top ) { setClipboard( *top, selectionMode ? Selection : Clipboard); } @@ -717,7 +719,7 @@ } if ( changed && clipEmpty && m_bNoNullClipboard ) { - auto top = history()->first(); + auto top = m_last; if ( top ) { // keep old clipboard after someone set it to null qCDebug(KLIPPER_LOG) << "Resetting clipboard (Prevent empty clipboard)";