@@ -107,6 +107,8 @@ export class TableHandlesView<
107
107
108
108
public menuFrozen = false ;
109
109
110
+ public mouseState : "up" | "down" | "selecting" = "up" ;
111
+
110
112
public prevWasEditable : boolean | null = null ;
111
113
112
114
constructor (
@@ -127,6 +129,8 @@ export class TableHandlesView<
127
129
} ;
128
130
129
131
pmView . dom . addEventListener ( "mousemove" , this . mouseMoveHandler ) ;
132
+ pmView . dom . addEventListener ( "mousedown" , this . viewMousedownHandler ) ;
133
+ pmView . dom . addEventListener ( "mouseup" , this . viewMouseupHandler ) ;
130
134
131
135
pmView . root . addEventListener (
132
136
"dragover" ,
@@ -140,11 +144,33 @@ export class TableHandlesView<
140
144
pmView . root . addEventListener ( "scroll" , this . scrollHandler , true ) ;
141
145
}
142
146
147
+ viewMousedownHandler = ( ) => {
148
+ this . mouseState = "down" ;
149
+ } ;
150
+
151
+ viewMouseupHandler = ( event : MouseEvent ) => {
152
+ this . mouseState = "up" ;
153
+ this . mouseMoveHandler ( event ) ;
154
+ } ;
155
+
143
156
mouseMoveHandler = ( event : MouseEvent ) => {
144
157
if ( this . menuFrozen ) {
145
158
return ;
146
159
}
147
160
161
+ if ( this . mouseState === "down" ) {
162
+ this . mouseState = "selecting" ;
163
+
164
+ if ( this . state ?. show ) {
165
+ this . state . show = false ;
166
+ this . emitUpdate ( ) ;
167
+ }
168
+ }
169
+
170
+ if ( this . mouseState === "selecting" ) {
171
+ return ;
172
+ }
173
+
148
174
const target = domCellAround ( event . target as HTMLElement ) ;
149
175
150
176
if ( ! target || ! this . editor . isEditable ) {
0 commit comments