Good to have you here Brian :)

The actual code that’s pasting from the clipboard is in the clipboard plugin, 
see 
https://github.com/quicksilver/elements.clipboard-qsplugin/blob/master/QSPasteboardController.m#L216
The QSPasteboardStoreMode is the case that’s being used (although this is 
pretty irrelevant). Basically we’re just copying the text/object to the 
clipboard, then sending a CMD+V straight away. No sending to specific apps.

Now what you’re saying about TextExpander being a Non Activating panel raises 
some concerns. The QSDockingWindow (of which the clipboard window is one) 
behaves similarly (with a few more confusions).
See:
https://github.com/quicksilver/Quicksilver/blob/master/Quicksilver/Code-QuickStepInterface/QSDockingWindow.m#L135

As you probably know, non activating panels are really fiddly - I think it’s 
taken us about 3 years of tweaking to get the QSDockingWindow to actually work 
(just about!)
My guess is that when the clipboard is brought up, TextExpander is losing its 
key window status and the Clipboard is getting it. This may well be what’s 
causing the problem. The only option I can think of is to change the option in 
the Clipboard preferences from “Hide after pasting” to “Hide before pasting”, 
but I don’t think the OS will switch the key window status back to TextExpander.

Unfortunately I’ve never used TextExpander (or OmniFocus) - any suggestions for 
other cases which may well be similar and so I could try and reproduce?

Thanks

On 16 Ion 2014, at 07:08, Brian Bucknam <[email protected]> wrote:

> Hi Patrick,
> 
> Actually, my old theory is invalidated by the code there.  My theory was that 
> Quicksilver was using CGEventPostToPSN, and getting the wrong process.
> Instead, Quicksilver is just using CGEventPost, so if TextExpander Helper 
> (which is presenting the fill-in window) still had the text focus, the Paste 
> should occur there.
> 
> So my new theory is that just before generating the Command-V event(s), 
> Quicksilver must be re-activating what it thought was the "current"/active 
> application. It activates the app which holds the menu bar, which is not 
> TextExpander Helper.
> 
> TextExpander Helper's fill-in window is a "Non Activating" Utility Panel. 
> When presented, it gets an orderFront: and then a makeKeyWindow call, but 
> TextExpander Helper never becomes the "active" app.  (A lot like Quicksilver 
> in its normal usage!)
> 
> I did grab the Quicksilver code, but I can't follow how/where the 
> QSForcePaste gets triggered to be able to confirm my new theory.
> 
> TextExpander Helper does broadcast some distributed notifications when it 
> presents and removes the fill-in window, but that's not a very "pretty" 
> solution.
> I'd be interested to know if the same issue occurs when using Quicksilver in 
> conjunction with, for instance, the OmniFocus "Quick Entry Window" (which 
> behaves similarly to TE's fill-in window).
> 
> Cheers,
> Brian
> 
> On Wednesday, January 15, 2014 4:12:29 AM UTC-8, Patrick wrote:
> A quick update… I have looked into the ‘old’ way we used to do it and that is 
> actually no longer possible* since the methods are deprecated
> I’d be interested to know if Brian has any boilerplate code for option A and 
> option B. I can’t see (from a quick glance) how to use option A now (if 
> you’re relaying this to him, it’s the `CGPostKeyboardEvent()` method that is 
> deprecated)
> 
> Cheers
> 
> * OK, it’s still possible but they’re deprecated methods
> 
> 
> On 15 Ion 2014, at 20:08, Patrick Robertson <[email protected]> wrote:
> 
>> Thanks very much for the long explanation (and especially the info from 
>> Brian), that’s really useful and interesting.
>> 
>> Just to fill in the details from our side of things:
>> 
>> We used to use option B as Brian mentions (i.e. we used to just tell the 
>> keyboard directly to press CMD+V). Now, for some reason that wasn’t working 
>> with Gmail email fields (that is, when I tried to paste something from QS 
>> into a Gmail compose field using the ‘paste’ action, it didn’t work)
>> So, instead I switched to option A.
>> I guess this further proves Brian’s point about each option having their 
>> pros and cons.
>> Unfortunately I don’t use TextExpander, so I’ve never come across the cons 
>> of option A (as you obviously have) so have never investigated further. 
>> Having said that, I’ll take a look again at whether or not Option B is still 
>> a problem with Gmail, if not we *could* theoretically switch back.
>> 
>> For reference, the commit where I made the change (it may be of interest to 
>> Brian) is:
>> https://github.com/quicksilver/Quicksilver/commit/0d8d178699865395444c5dca9076d7d29fb59e12
>> 
>> I hope this helps, and will update you when I’ve looked again at option A/B 
>> with Gmail
>> 
>> On 14 Ion 2014, at 05:18, [email protected] wrote:
>> 
>>> Actually, I have been using the command window (the second screenshot), not 
>>> the floating clipboard history palette. I set up my QS configuration quite 
>>> some time ago now, but do dimly remember making a trigger in QS's 
>>> preferences to run Clipboard History > Show Contents, which is be the way I 
>>> have used to get it.
>>> 
>>> I've thought about it and am sure I haven't been keeping the trigger keys 
>>> held down.
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Quicksilver" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/blacktree-quicksilver.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Quicksilver" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/blacktree-quicksilver.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"Quicksilver" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/blacktree-quicksilver.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to