1
1
<script lang="ts">
2
2
import * as PIXI from ' pixi.js-legacy'
3
3
import { install as installUnsafeEval } from ' @pixi/unsafe-eval'
4
+ import { EventSystem , FederatedPointerEvent , FederatedWheelEvent } from ' @pixi/events'
5
+ import { Renderer } from ' @pixi/core'
4
6
import {
5
7
ref ,
6
8
onMounted ,
@@ -43,6 +45,8 @@ PIXI.BitmapFont.from('Roboto Mono', {
43
45
resolution: window .devicePixelRatio ,
44
46
})
45
47
48
+ delete Renderer .__plugins .interaction
49
+
46
50
const LAYER_SIZE = 16
47
51
const GROUP_SIZE = 6
48
52
const MIN_CAMERA_SIZE = 10
@@ -145,6 +149,10 @@ export default defineComponent({
145
149
autoDensity: true ,
146
150
resolution: window .devicePixelRatio ,
147
151
})
152
+ if (! (' events' in app .renderer )) {
153
+ // @ts-ignore
154
+ app .renderer .addSystem (EventSystem , ' events' )
155
+ }
148
156
app .stage .interactive = true
149
157
app .stage .hitArea = new PIXI .Rectangle (0 , 0 , 100000 , 100000 )
150
158
updateBackground ()
@@ -787,11 +795,13 @@ export default defineComponent({
787
795
}
788
796
789
797
onMounted (() => {
790
- app .stage .addListener (' click' , event => {
798
+ // @ts-ignore
799
+ app .stage .addEventListener (' click' , (event : FederatedPointerEvent ) => {
791
800
if (cameraDragging ) return
792
- const choice = getEventAtPosition (event .data . global . x , event .data . global . y )
801
+ const choice = getEventAtPosition (event .globalX , event .globalY )
793
802
if (choice ) {
794
803
selectEvent (choice )
804
+ draw ()
795
805
}
796
806
})
797
807
})
@@ -937,12 +947,13 @@ export default defineComponent({
937
947
eventTooltipText .y = eventTooltipTitle .height + 4
938
948
eventTooltip .addChild (eventTooltipText )
939
949
940
- app .stage .addListener (' mousemove' , mouseEvent => {
950
+ // @ts-ignore
951
+ app .stage .addEventListener (' pointermove' , (mouseEvent : FederatedPointerEvent ) => {
941
952
const text: string [] = []
942
953
943
954
if (! cameraDragging ) {
944
955
// Event tooltip
945
- const event = getEventAtPosition (mouseEvent .data . global . x , mouseEvent .data . global . y )
956
+ const event = getEventAtPosition (mouseEvent .globalX , mouseEvent .globalY )
946
957
if (event ) {
947
958
text .push (event .title ?? ' Event' )
948
959
if (event .subtitle ) {
@@ -959,7 +970,7 @@ export default defineComponent({
959
970
}
960
971
} else {
961
972
// Marker tooltip
962
- const marker = getMarkerAtPosition (mouseEvent .data . global . x )
973
+ const marker = getMarkerAtPosition (mouseEvent .globalX )
963
974
if (marker ) {
964
975
text .push (marker .label )
965
976
text .push (formatTime (marker .time , ' ms' ))
@@ -987,13 +998,13 @@ export default defineComponent({
987
998
const height = eventTooltipTitle .height + (text .length > 1 ? eventTooltipText .height : 0 ) + 8
988
999
eventTooltipGraphics .drawRoundedRect (0 , 0 , width , height , 4 )
989
1000
990
- eventTooltip .x = mouseEvent .data . global . x + 12
1001
+ eventTooltip .x = mouseEvent .globalX + 12
991
1002
if (eventTooltip .x + eventTooltip .width > app .renderer .width ) {
992
- eventTooltip .x = mouseEvent .data . global . x - eventTooltip .width - 12
1003
+ eventTooltip .x = mouseEvent .globalX - eventTooltip .width - 12
993
1004
}
994
- eventTooltip .y = mouseEvent .data . global . y + 12
1005
+ eventTooltip .y = mouseEvent .globalY + 12
995
1006
if (eventTooltip .y + eventTooltip .height > app .renderer .height ) {
996
- eventTooltip .y = mouseEvent .data . global . y - eventTooltip .height - 12
1007
+ eventTooltip .y = mouseEvent .globalY - eventTooltip .height - 12
997
1008
}
998
1009
eventTooltip .visible = true
999
1010
} else {
@@ -1168,14 +1179,16 @@ export default defineComponent({
1168
1179
1169
1180
onMounted (() => {
1170
1181
queueCameraUpdate ()
1182
+ // @ts-ignore
1183
+ app .stage .addEventListener (' wheel' , onMouseWheel )
1171
1184
})
1172
1185
1173
- function onMouseWheel (event : WheelEvent ) {
1186
+ function onMouseWheel (event : FederatedWheelEvent ) {
1174
1187
const size = endTime .value - startTime .value
1175
1188
const viewWidth = app .view .width
1176
1189
1177
- if (! event .shiftKey && ! event .altKey ) {
1178
- const centerRatio = event .offsetX / viewWidth / window . devicePixelRatio
1190
+ if (! event .ctrlKey && ! event .altKey ) {
1191
+ const centerRatio = event .globalX / viewWidth
1179
1192
const center = size * centerRatio + startTime .value
1180
1193
1181
1194
let newSize = size + event .deltaY / viewWidth * size * 4
@@ -1257,21 +1270,23 @@ export default defineComponent({
1257
1270
onMounted (() => {
1258
1271
layersScroller = document .querySelector (' [data-scroller="layers"]' )
1259
1272
1260
- app . stage . addListener ( ' mousedown ' , ( event ) => {
1261
- const { x, y } = event . data . global
1262
- startDragX = x
1263
- startDragY = y
1273
+ // @ts-ignore
1274
+ app . stage . addEventListener ( ' pointerdown ' , ( event : FederatedPointerEvent ) => {
1275
+ startDragX = event . globalX
1276
+ startDragY = event . globalY
1264
1277
startDragTime = startTime .value
1265
1278
startDragScrollTop = layersScroller .scrollTop
1266
- app .stage .addListener (' mousemove' , onCameraDraggingMouseMove )
1279
+ // @ts-ignore
1280
+ app .stage .addEventListener (' pointermove' , onCameraDraggingMouseMove )
1281
+ window .addEventListener (' mouseup' , onCameraDraggingMouseUp )
1267
1282
})
1268
1283
})
1269
1284
1270
- function onCameraDraggingMouseMove (event ) {
1271
- const { x, y } = event .data .global
1285
+ function onCameraDraggingMouseMove (event : FederatedPointerEvent ) {
1286
+ const x = event .globalX
1287
+ const y = event .globalY
1272
1288
if (! cameraDragging && (Math .abs (x - startDragX ) > 5 || Math .abs (y - startDragY ) > 5 )) {
1273
1289
cameraDragging = true
1274
- window .addEventListener (' mouseup' , onCameraDraggingMouseUp )
1275
1290
}
1276
1291
1277
1292
if (cameraDragging ) {
@@ -1302,7 +1317,7 @@ export default defineComponent({
1302
1317
}
1303
1318
1304
1319
function removeOnCameraDraggingEvents () {
1305
- app .stage ?.removeListener (' mousemove ' , onCameraDraggingMouseMove )
1320
+ app .stage ?.removeListener (' pointermove ' , onCameraDraggingMouseMove )
1306
1321
window .removeEventListener (' mouseup' , onCameraDraggingMouseUp )
1307
1322
}
1308
1323
@@ -1325,7 +1340,7 @@ export default defineComponent({
1325
1340
draw ()
1326
1341
}
1327
1342
1328
- // Events
1343
+ // Misc. mouse events
1329
1344
1330
1345
function onMouseMove (event : MouseEvent ) {
1331
1346
updateLayerHover (event )
@@ -1339,7 +1354,6 @@ export default defineComponent({
1339
1354
1340
1355
return {
1341
1356
wrapper ,
1342
- onMouseWheel ,
1343
1357
onMouseMove ,
1344
1358
onMouseOut ,
1345
1359
onResize ,
@@ -1353,7 +1367,6 @@ export default defineComponent({
1353
1367
ref =" wrapper"
1354
1368
class =" relative overflow-hidden"
1355
1369
data-id =" timeline-view-wrapper"
1356
- @wheel =" onMouseWheel"
1357
1370
@mousemove =" onMouseMove"
1358
1371
@mouseout =" onMouseOut"
1359
1372
>
0 commit comments