16:02:20 RRSAgent has joined #pointerevents 16:02:20 logging to https://www.w3.org/2022/02/02-pointerevents-irc 16:02:28 Meeting: PEWG 16:02:32 Chair: Patrick H. Lauke 16:02:50 Agenda: https://www.w3.org/events/meetings/0d3af70c-0054-43dc-9c15-c60c5b9c3f3c/20220202T110000 16:02:55 Scribe: Patrick H. Lauke 16:03:02 Present+ Patrick_H_Lauke 16:03:04 present+ smaug 16:03:08 present+ flackr 16:03:47 TOPIC: Should triggering the contextmenu with the mouse cause a pointercancel? https://github.com/w3c/pointerevents/issues/408 16:06:10 present+ mustaq 16:09:32 [discussion on how this might be platform specific - linux behaving differently from windows] 16:10:04 Rob: it has always been an issue that if mouse/pointer leaves your page that you don't know if the button is still active 16:10:44 Olli: what should happen with pointercapture 16:11:03 Olli: on linux, if i have capture checkbox enabled, and right click, i don't get any capture events 16:12:04 Olli: this in chrome. in firefox, i do see contextmenu and then gotpointercapture 16:12:23 https://w3c.github.io/pointerevents/#process-pending-pointer-capture 16:14:55 Patrick: in Safari/macOS, with capture checkbox checked, i get pointerdown, gotpointercapture,contextmenu, and that's it 16:17:19 Patrick: can we naively say "when contextmenu is fired, fire pointercancel (and then whatever happens with capture is implicit with the fact that it's cancelled, i.e. fire lostpointercapture)" 16:17:52 Rob: maybe be more generic, not just contextmenu. whenever the focus of the pointer is lost, cancel the pointer (?) 16:20:44 [discussion on what happens switching between windows and maintaining consistency] 16:20:51 Canceling intuitively means a "hard"ish break nin event stream 16:21:06 https://w3c.github.io/pointerevents/#the-pointercancel-event 16:22:11 Rob: if i get my context menu, i don't expect my drag to continue 16:22:24 Olli: if you press Esc you can continue your mouse event stream 16:22:48 Rob: one way of viewing this is that the pointer is cancelled, and then it reappears later 16:24:23 Mustaq: what's the difference, conceptually, between getting pointerout and pointercancel 16:27:36 Rob: ... we should ensure that the stream of events makes sense. they're not going to get events when contextmenu comes up, but event stream should not suggest that pointer is still down 16:27:48 Olli: but the pointer MAY be still down, if you close contextmenu with esc 16:28:42 Patrick: https://www.youtube.com/shorts/oggIAZ9uHug 16:29:57 Patrick: slightly related touch events / iOS/Safari bug where even after opening context menu the touch events/scroll still fires behind the context menu 16:31:13 [discussion on whether firing pointerout rather than pointercancel would be sufficient/more universally applicable] 16:31:35 Rob: what's good about pointercancel though is that is sends a clear signal to developers that are listening to events 16:32:36 Patrick: the nice thing with pointercancel is that it then does the capture release for free https://w3c.github.io/pointerevents/#implicit-release-of-pointer-capture 16:34:18 Rob: i like the implicit release because it handles all the things for this use case 16:35:58 Mustaq: we want to guarantee that for every "got" there's a "lost" 16:36:21 Rob: if you want to make dev lives easier, you probably want to send a promise, rather than making them wait for another event 16:37:00 Rob: we should at least be sending an out event... 16:40:03 https://rbyers.github.io/eventTest.html without capture shows out events and no more information after the cursor leaves the window 16:52:03 [discussion on other scenarios other than contextmenu that may interrupt event stream - alert() boxes for instance. should conceptually fire just before the context menu/alert/etc fires it. the event won't be actually received by the page until the event loop runs again, but at least the application will then be able to get itself in the correct state rather than still having a hanging "i've still got the capture / the pointer is 16:52:03 still down as i didn't see an up/etc" assumption] 16:52:29 Rob: we have wording in pointercancel that suggest it's about hardware events that stop the stream. we could expand that to cover other scenarios 16:53:59 Patrick: happy to make an initial strawman PR that just adds more wording to the pointercancel definition to also cover contextmenu etc 16:54:16 Olli: would this then also cover the other issue "Lost pointer issue - spec or browser bug?" https://github.com/w3c/pointerevents/issues/407 16:54:24 Patrick: i think so, as these are related 16:54:34 Olli: will need to see if we can make a test for this 16:55:15 Rob: I think we have some tests using webdriver (using touch, not exactly the same, but leads me to believe we can use contextmenus in WPT runners) 16:55:54 Patrick: do we still allow manual tests for WPT, been ages since i looked 16:55:59 Rob: yes, that's always an option 16:57:15 ACTION: Patrick to expand pointercancel definition to also mention contextmenu etc as examples, not just suggesting it's hardware events that may stop stream 16:59:29 [discussion on some existing WPT tests relating to right-click, contextmenu key on keyboard, and if they could be used as basis] 17:01:19 Patrick: we'll look at tests next time. meanwhile thank you all, see you in two weeks' time 17:01:26 rrsagent, make logs world-visible 17:01:31 rrsagent, generate minutes 17:01:31 I have made the request to generate https://www.w3.org/2022/02/02-pointerevents-minutes.html Patrick_H_Lauke 17:01:37 rrsagent, make logs world-visible 17:01:50 rrsagent, bye 17:01:50 I see 1 open action item saved in https://www.w3.org/2022/02/02-pointerevents-actions.rdf : 17:01:50 ACTION: Patrick to expand pointercancel definition to also mention contextmenu etc as examples, not just suggesting it's hardware events that may stop stream [1] 17:01:50 recorded in https://www.w3.org/2022/02/02-pointerevents-irc#T16-57-15