chiark / gitweb /
end drag when Conflict
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 1 Sep 2020 13:15:57 +0000 (14:15 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 1 Sep 2020 13:16:03 +0000 (14:16 +0100)
templates/script.ts

index 24e7538de0672df966f730a8f2b63c6a9632017e..4a5b66ad562a878634c820c601a608d2f53c6e82 100644 (file)
@@ -358,6 +358,10 @@ function drag_mousemove(e: MouseEvent) {
 function drag_mouseup(e: MouseEvent) {
   console.log('mouseup', dragging);
   let ddr2 : number = drag_mousemove(e);
+  drag_end();
+}
+
+function drag_end() {
   if (dragging == DRAGGING.MAYBE_UNGRAB ||
       (dragging & ~DRAGGING.RAISED) == (DRAGGING.MAYBE_GRAB | DRAGGING.YES)) {
     let dp = drag_pieces[0]!;
@@ -539,6 +543,10 @@ messages.Recorded = <MessageHandler>function
 function piece_checkconflict_nrda(piece: PieceId, p: PieceInfo): boolean {
   if (p.cseq != null) {
     p.cseq = null;
+    if (drag_pieces.some(function(dp) { return dp.piece == piece; })) {
+      console.log('drag end due to conflict');
+      drag_end();
+    }
     add_log_message('Conflict! - simultaneous update');
   }
   return false;