diff --git a/Frameworks/Find/src/FindWindowController.mm b/Frameworks/Find/src/FindWindowController.mm index 270e753b..2047c6c4 100644 --- a/Frameworks/Find/src/FindWindowController.mm +++ b/Frameworks/Find/src/FindWindowController.mm @@ -540,17 +540,24 @@ static NSButton* OakCreateStopSearchButton () if(OakNotEmptyString(_findString)) { OakPasteboardEntry* oldEntry = [[OakPasteboard pasteboardWithName:NSFindPboard] current]; - if(!oldEntry || ![oldEntry.string isEqualToString:_findString]) + if(oldEntry && [oldEntry.string isEqualToString:_findString]) + { + if(![oldEntry.options isEqualToDictionary:newOptions]) + oldEntry.options = newOptions; + oldEntry.date = [NSDate date]; + } + else + { [[OakPasteboard pasteboardWithName:NSFindPboard] addEntryWithString:_findString andOptions:newOptions]; - else if(![oldEntry.options isEqualToDictionary:newOptions]) - oldEntry.options = newOptions; + } } if(_replaceString) { - NSString* oldReplacement = [[[OakPasteboard pasteboardWithName:OakReplacePboard] current] string]; - if(!oldReplacement || ![oldReplacement isEqualToString:_replaceString]) - [[OakPasteboard pasteboardWithName:OakReplacePboard] addEntryWithString:_replaceString]; + OakPasteboardEntry* oldEntry = [[OakPasteboard pasteboardWithName:OakReplacePboard] current]; + if(oldEntry && [oldEntry.string isEqualToString:_replaceString]) + oldEntry.date = [NSDate date]; + else [[OakPasteboard pasteboardWithName:OakReplacePboard] addEntryWithString:_replaceString]; } return res; diff --git a/Frameworks/OakAppKit/src/OakPasteboard.h b/Frameworks/OakAppKit/src/OakPasteboard.h index bd0c7945..07048731 100644 --- a/Frameworks/OakAppKit/src/OakPasteboard.h +++ b/Frameworks/OakAppKit/src/OakPasteboard.h @@ -14,6 +14,7 @@ extern PUBLIC NSString* const OakFindRegularExpressionOption; PUBLIC @interface OakPasteboardEntry : NSManagedObject @property (nonatomic) NSString* string; @property (nonatomic) NSDictionary* options; +@property (nonatomic) NSDate* date; @property (nonatomic) BOOL fullWordMatch; @property (nonatomic) BOOL ignoreWhitespace; diff --git a/Frameworks/OakAppKit/src/OakPasteboard.mm b/Frameworks/OakAppKit/src/OakPasteboard.mm index b505480b..46736f30 100644 --- a/Frameworks/OakAppKit/src/OakPasteboard.mm +++ b/Frameworks/OakAppKit/src/OakPasteboard.mm @@ -21,7 +21,6 @@ NSString* const OakFindRegularExpressionOption = @"regularExpression"; NSString* const kUserDefaultsDisablePersistentClipboardHistory = @"disablePersistentClipboardHistory"; @interface OakPasteboardEntry () -@property (nonatomic) NSDate* date; @property (nonatomic) OakPasteboard* pasteboard; @property (nonatomic) NSDictionary* primitiveOptions; @end