Note: This patch is againt the previous one, I posted:
    [PATCH] applescript: restore last active window after password has been 
copied to clipboard

The previous focused window gets now restored immeadiatly after the
dialog has been closed (instead of waiting for pass to return)

The notification includes now the name of the password

The closing of remaining notifications has been put into a try/catch
block. Otherwise the script would throw an error if it does not own the
neccessary permissions (see point 6 in the description)
---
 contrib/pass.applescript | 33 +++++++++++----------------------
 1 file changed, 11 insertions(+), 22 deletions(-)

diff --git a/contrib/pass.applescript b/contrib/pass.applescript
index c71fd93..e5da495 100644
--- a/contrib/pass.applescript
+++ b/contrib/pass.applescript
@@ -47,30 +47,27 @@ else -- if (lang = "en")
 end if
 
 -- Save active window
-tell application "System Events"
-       set activeProc to first application process whose frontmost is true
-end tell
+tell application "System Events" to set activeProc to first application 
process whose frontmost is true
+
+-- Get entity from dialog
+set entity to the text returned of (display dialog nPrompt default answer 
defPass buttons {"OK"} with title nTitle default button 1)
+
+-- Restore previously active window
+tell application "System Events" to set the frontmost of activeProc to true
 
 try
-       set entity to the text returned of (display dialog nPrompt default 
answer defPass buttons {"OK"} with title nTitle default button 1)
        set pw to do shell script "export PATH=" & shellPath & "; pass " & 
entity
-       
        set the clipboard to pw
 on error errMsg
        display dialog errMsg with title nTitle with icon stop
 end try
 
--- Restore last active App
-tell application "System Events"
-       set the frontmost of activeProc to true
-end tell
-
 -- Wait until clipboard changed then close notification
 repeat with secsLeft from 0 to clearAfter
        if pw is equal to (the clipboard) then
                tell application "Notifications Scripting"
                        set event handlers script path to (path to me)
-                       display notification nTitle id "pass" message "Password 
copied to clipboard (" & (clearAfter - secsLeft) & " secs left)" action button 
nClear with has action button
+                       display notification nTitle id "pass" message "'" & 
entity & "' copied to clipboard " & return & " (" & (clearAfter - secsLeft) & " 
secs left)" action button nClear with has action button
                end tell
                delay 1
        else
@@ -81,17 +78,9 @@ end repeat
 -- Clear clipboard
 set the clipboard to ""
 
--- Close all pending Notifications
-tell application "System Events"
-       tell process "NotificationCenter"
-               set theWindows to every window
-               repeat with i from 1 to number of items in theWindows
-                       set this_item to item i of theWindows
-                       try
-                               click button 1 of this_item
-                       end try
-               end repeat
-       end tell
+-- Close pending Notification
+tell application "Notifications Scripting"
+       display notification nTitle id "pass" message "Password has been 
cleared" has action button false
 end tell
 
 -- Handle notification action: forget password
-- 
2.3.0

_______________________________________________
Password-Store mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/password-store

Reply via email to