@@ -131,9 +131,8 @@ Animation.AnimationTimeline = class extends UI.VBox {
131
131
this . _updatePlaybackControls ( ) ;
132
132
133
133
this . _previewContainer = this . contentElement . createChild ( 'div' , 'animation-timeline-buffer' ) ;
134
- this . _popoverHelper = new UI . PopoverHelper ( this . _previewContainer , true ) ;
135
- this . _popoverHelper . initializeCallbacks (
136
- this . _getPopoverAnchor . bind ( this ) , this . _showPopover . bind ( this ) , this . _onHidePopover . bind ( this ) ) ;
134
+ this . _popoverHelper = new UI . PopoverHelper ( this . _previewContainer , this . _getPopoverRequest . bind ( this ) ) ;
135
+ this . _popoverHelper . setDisableOnClick ( true ) ;
137
136
this . _popoverHelper . setTimeout ( 0 ) ;
138
137
var emptyBufferHint = this . contentElement . createChild ( 'div' , 'animation-timeline-buffer-hint' ) ;
139
138
emptyBufferHint . textContent = Common . UIString ( 'Listening for animations...' ) ;
@@ -162,49 +161,44 @@ Animation.AnimationTimeline = class extends UI.VBox {
162
161
}
163
162
164
163
/**
165
- * @param {!Element } element
166
164
* @param {!Event } event
167
- * @return {!Element|!AnchorBox|undefined }
168
- */
169
- _getPopoverAnchor ( element , event ) {
170
- if ( element . isDescendant ( this . _previewContainer ) )
171
- return element ;
172
- }
173
-
174
- /**
175
- * @param {!Element|!AnchorBox } anchor
176
- * @param {!UI.GlassPane } popover
177
- * @return {!Promise<boolean> }
178
- */
179
- _showPopover ( anchor , popover ) {
180
- var animGroup ;
181
- for ( var group of this . _previewMap . keysArray ( ) ) {
182
- if ( this . _previewMap . get ( group ) . element === anchor . parentElement )
183
- animGroup = group ;
184
- }
185
- console . assert ( animGroup ) ;
186
- var screenshots = animGroup . screenshots ( ) ;
187
- if ( ! screenshots . length )
188
- return Promise . resolve ( false ) ;
189
-
190
- var fulfill ;
191
- var promise = new Promise ( x => fulfill = x ) ;
192
- if ( ! screenshots [ 0 ] . complete )
193
- screenshots [ 0 ] . onload = onFirstScreenshotLoaded . bind ( null , screenshots ) ;
194
- else
195
- onFirstScreenshotLoaded ( screenshots ) ;
196
- return promise ;
197
-
198
- /**
199
- * @param {!Array.<!Image> } screenshots
200
- */
201
- function onFirstScreenshotLoaded ( screenshots ) {
202
- new Animation . AnimationScreenshotPopover ( screenshots ) . show ( popover . contentElement ) ;
203
- fulfill ( true ) ;
204
- }
205
- }
206
-
207
- _onHidePopover ( ) {
165
+ * @return {?UI.PopoverRequest }
166
+ */
167
+ _getPopoverRequest ( event ) {
168
+ var element = event . target ;
169
+ if ( ! element . isDescendant ( this . _previewContainer ) )
170
+ return null ;
171
+
172
+ return {
173
+ box : event . target . boxInWindow ( ) ,
174
+ show : popover => {
175
+ var animGroup ;
176
+ for ( var group of this . _previewMap . keysArray ( ) ) {
177
+ if ( this . _previewMap . get ( group ) . element === element . parentElement )
178
+ animGroup = group ;
179
+ }
180
+ console . assert ( animGroup ) ;
181
+ var screenshots = animGroup . screenshots ( ) ;
182
+ if ( ! screenshots . length )
183
+ return Promise . resolve ( false ) ;
184
+
185
+ var fulfill ;
186
+ var promise = new Promise ( x => fulfill = x ) ;
187
+ if ( ! screenshots [ 0 ] . complete )
188
+ screenshots [ 0 ] . onload = onFirstScreenshotLoaded . bind ( null , screenshots ) ;
189
+ else
190
+ onFirstScreenshotLoaded ( screenshots ) ;
191
+ return promise ;
192
+
193
+ /**
194
+ * @param {!Array.<!Image> } screenshots
195
+ */
196
+ function onFirstScreenshotLoaded ( screenshots ) {
197
+ new Animation . AnimationScreenshotPopover ( screenshots ) . show ( popover . contentElement ) ;
198
+ fulfill ( true ) ;
199
+ }
200
+ }
201
+ } ;
208
202
}
209
203
210
204
_togglePauseAll ( ) {
0 commit comments