<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        I like the duplicate prompt. :-D  Because the first is never at the position I acctually dropped the file. Only the second one is.<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 05.05.2020 17:41:35 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">Christoph Thiede uploaded a new version of System to project The Inbox:<br>http://source.squeak.org/inbox/System-ct.1156.mcz<br><br>==================== Summary ====================<br><br>Name: System-ct.1156<br>Author: ct<br>Time: 5 May 2020, 5:41:10.96399 pm<br>UUID: 2ce2496e-92e9-f744-9a58-d9e9320adfab<br>Ancestors: System-mt.1155<br><br>Fixes double prompt for handling a dropped file when the first dialog was cancelled. Cleans up duplication between ExternalDropHandler >> #lookupServiceBasedHandler: and DefaultExternalDropHandler by deprecating the first one. Maybe we can also remove this method?<br><br>=============== Diff against System-mt.1155 ===============<br><br>Item was changed:<br>  ----- Method: DefaultExternalDropHandler>>chooseServiceFrom: (in category 'private') -----<br>  chooseServiceFrom: aCollection<br>+     "private - choose a service from aCollection asking the user if needed"<br>+    ^ aCollection size = 1 <br>-      "private - choose a service from aCollection asking the user if  needed"<br>-   ^aCollection size = 1 <br>                ifTrue: [aCollection anyOne]<br>+                 ifFalse: [UIManager default <br>+                         chooseFrom: (aCollection collect: [:each | each label])<br>-              ifFalse:[UIManager default <br>-                  chooseFrom: (aCollection collect:[:each| each label])<br>                         values: aCollection<br>                   title: 'You dropped a file. Please choose a service:' translated withCRs].!<br><br>Item was changed:<br>  ----- Method: DefaultExternalDropHandler>>handle:in:dropEvent: (in category 'event handling') -----<br>  handle: dropStream in: pasteUp dropEvent: anEvent <br>   "the file was just droped, let's do our job"<br>        | fileName services chosen |<br>          fileName := dropStream name.<br>          services := self servicesForFileNamed: fileName.<br>+     <br>- <br>          "no service, default behavior"<br>+     services ifEmpty: [<br>+          ^ UIManager default edit: dropStream contentsOfEntireFile].<br>+  <br>-     services isEmpty <br>-            ifTrue: [^UIManager default edit: dropStream contentsOfEntireFile].<br>- <br>       chosen := self chooseServiceFrom: services.<br>+  chosen ifNotNil: [chosen performServiceFor: dropStream].!<br>-    chosen ifNotNil:[chosen performServiceFor: dropStream]!<br><br>Item was changed:<br>  ----- Method: DefaultExternalDropHandler>>servicesForFileNamed: (in category 'private') -----<br>  servicesForFileNamed: aString <br>+        "private - answer a collection of file-services for the file named aString"<br>+ <br>+    ^ (FileServices itemsForFile: aString)<br>+               copyWithoutAll: self unwantedSelectors!<br>-      "private - answer a collection of file-services for the file named  <br>-    aString"<br>-        | allServices |<br>-      allServices := FileServices itemsForFile: aString.<br>-   ^ allServices<br>-                reject: [:svc | self unwantedSelectors includes: svc selector]!<br><br>Item was changed:<br>  ----- Method: ExternalDropHandler class>>defaultHandler (in category 'accessing') -----<br>  defaultHandler<br>+ <br>+  ^ DefaultHandler ifNil: [<br>+            DefaultHandler := ExternalDropHandler<br>+                        type: nil<br>+                    extension: nil<br>+                       action: #edit]!<br>-      DefaultHandler ifNil: [DefaultHandler := ExternalDropHandler type: nil extension: nil action: [:dropStream | dropStream edit]].<br>-      ^DefaultHandler!<br><br>Item was changed:<br>  ----- Method: ExternalDropHandler class>>lookupExternalDropHandler: (in category 'accessing') -----<br>  lookupExternalDropHandler: stream<br>  <br>   | types extension serviceHandler |<br>    types := stream mimeTypes.<br>  <br>        types ifNotNil: [<br>+            self registeredHandlers<br>+                      detect: [:handler | handler matchesTypes: types]<br>+                     ifFound: [:handler | ^ handler]].<br>-            self registeredHandlers do: [:handler | <br>-                     (handler matchesTypes: types)<br>-                                ifTrue: [^handler]]].<br>  <br>     extension := FileDirectory extensionFor: stream name.<br>+        self registeredHandlers<br>+              detect: [:handler | handler matchesExtension: extension]<br>+             ifFound: [:handler | ^ handler].<br>+     <br>+     ^ serviceHandler ifNil: [self defaultHandler]!<br>-       self registeredHandlers do: [:handler | <br>-             (handler matchesExtension: extension)<br>-                                ifTrue: [^handler]].<br>-         serviceHandler := self lookupServiceBasedHandler: stream.<br>-    ^serviceHandler<br>-              ifNil: [self defaultHandler]!<br><br>Item was changed:<br>  ----- Method: ExternalDropHandler class>>lookupServiceBasedHandler: (in category 'accessing') -----<br>  lookupServiceBasedHandler: dropStream<br>+ <br>-         "The file was just dropped; let's do our job"<br>       | fileName services theOne |<br>+         self deprecated: 'ct: Use DefaultExternalDropHandler'.<br>        fileName := dropStream name.<br>- <br>      services := (FileServices itemsForFile: fileName)<br>             reject: [:svc | self unwantedSelectors includes: svc selector].<br>+      <br>- <br>          "no service, default behavior"<br>+     services ifEmpty: [^ nil].<br>+   <br>-     services isEmpty<br>-             ifTrue: [^nil].<br>- <br>   theOne := self chooseServiceFrom: services.<br>+  ^ theOne ifNotNil: [<br>+                 ExternalDropHandler type: nil extension: nil action: [:stream | theOne performServiceFor: stream]]!<br>-  ^theOne<br>-              ifNotNil: [ExternalDropHandler type: nil extension: nil action: [:stream | theOne performServiceFor: stream]]!<br><br><br></div></blockquote>
                                        </div></body>