@@ -1366,7 +1366,7 @@ void MCDispatch::wmdrag(Window w)
13661366 MCdragboard->PushUpdates (true );
13671367
13681368 MCdragsource = nil;
1369- MCdragdest = NULL ;
1369+ MCdragdest = nil ;
13701370 MCdropfield = NULL ;
13711371 MCdragtargetptr = NULL ;
13721372 m_drag_source = false ;
@@ -1378,7 +1378,7 @@ void MCDispatch::wmdrag(Window w)
13781378 // an error after placing some of the drag data).
13791379 MCdragboard->Clear ();
13801380 MCdragsource = nil;
1381- MCdragdest = NULL ;
1381+ MCdragdest = nil ;
13821382 MCdropfield = NULL ;
13831383 MCdragtargetptr = NULL ;
13841384 m_drag_source = false ;
@@ -2188,7 +2188,7 @@ bool MCDispatch::dopaste(MCObject*& r_objptr, bool p_explicit)
21882188
21892189void MCDispatch::dodrop (bool p_source)
21902190{
2191- if (!m_drag_end_sent && MCdragsource && (MCdragdest == NULL || MCdragaction == DRAG_ACTION_NONE ))
2191+ if (!m_drag_end_sent && MCdragsource && (! MCdragdest || MCdragaction == DRAG_ACTION_NONE ))
21922192 {
21932193 // We are only the source
21942194 m_drag_end_sent = true ;
@@ -2227,9 +2227,9 @@ void MCDispatch::dodrop(bool p_source)
22272227
22282228 findex_t t_start_index, t_end_index;
22292229 t_start_index = t_end_index = 0 ;
2230- if (MCdragdest != NULL && MCdragdest -> gettype () == CT_FIELD )
2230+ if (MCdragdest && MCdragdest -> gettype () == CT_FIELD )
22312231 {
2232- MCdropfield = static_cast <MCField *>(MCdragdest );
2232+ MCdropfield = MCdragdest. GetAs <MCField>( );
22332233 if (MCdragdest -> getstate (CS_DRAG_TEXT ))
22342234 {
22352235 MCdropfield -> locmark (False, False, False, False, True, t_start_index, t_end_index);
@@ -2243,7 +2243,7 @@ void MCDispatch::dodrop(bool p_source)
22432243
22442244 // If dest is a field and the engine handled the accepting of the operation
22452245 bool t_auto_dest;
2246- t_auto_dest = MCdragdest != NULL && MCdragdest -> gettype () == CT_FIELD && MCdragdest -> getstate (CS_DRAG_TEXT );
2246+ t_auto_dest = MCdragdest && MCdragdest -> gettype () == CT_FIELD && MCdragdest -> getstate (CS_DRAG_TEXT );
22472247
22482248 // Is the engine handling this drag internally AND the same field is both
22492249 // the source and destination for the drag?
@@ -2315,8 +2315,7 @@ void MCDispatch::dodrop(bool p_source)
23152315 if (t_auto_source)
23162316 MCdragsource.GetAs <MCField>()->selectedmark (False, t_src_start, t_src_end, False);
23172317
2318- bool t_auto_drop;
2319- t_auto_drop = MCdragdest != NULL ;
2318+ bool t_auto_drop = MCdragdest.IsValid ();
23202319 if (t_auto_drop)
23212320 {
23222321#ifdef WIDGETS_HANDLE_DND
0 commit comments