Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit f4c01fd

Browse files
Turn MCdragdest into an object handle
1 parent 1a3c492 commit f4c01fd

File tree

5 files changed

+13
-14
lines changed

5 files changed

+13
-14
lines changed

engine/src/control.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1409,7 +1409,7 @@ void MCControl::leave()
14091409
}
14101410
oldfocused->message(MCM_drag_leave);
14111411
MCdragaction = DRAG_ACTION_NONE;
1412-
MCdragdest = NULL;
1412+
MCdragdest = nil;
14131413
}
14141414
else
14151415
oldfocused->message(MCM_mouse_leave);

engine/src/dispatch.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

21892189
void 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

engine/src/exec-pasteboard.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ void MCPasteboardEvalDropChunk(MCExecContext& ctxt, MCStringRef& r_string)
649649

650650
void MCPasteboardEvalDragDestination(MCExecContext& ctxt, MCStringRef& r_string)
651651
{
652-
if (MCdragdest == nil)
652+
if (!MCdragdest)
653653
{
654654
r_string = MCValueRetain(kMCEmptyString);
655655
return;
@@ -1882,7 +1882,7 @@ void MCPasteboardEvalDragSourceAsObject(MCExecContext& ctxt, MCObjectPtr& r_obje
18821882

18831883
void MCPasteboardEvalDragDestinationAsObject(MCExecContext& ctxt, MCObjectPtr& r_object)
18841884
{
1885-
if (MCdragdest != nil)
1885+
if (MCdragdest)
18861886
{
18871887
r_object . object = MCdragdest;
18881888
r_object . part_id = 0;
@@ -1894,7 +1894,7 @@ void MCPasteboardEvalDragDestinationAsObject(MCExecContext& ctxt, MCObjectPtr& r
18941894

18951895
void MCPasteboardEvalDropChunkAsObject(MCExecContext& ctxt, MCObjectPtr& r_object)
18961896
{
1897-
if (MCdragdest != nil)
1897+
if (MCdragdest)
18981898
{
18991899
r_object . object = MCdropfield;
19001900
r_object . part_id = 0;

engine/src/globals.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ MCField *MCtemplatefield;
297297
MCImageHandle MCmagimage;
298298
MCMagnifyHandle MCmagnifier;
299299
MCObjectHandle MCdragsource;
300-
MCObject *MCdragdest;
300+
MCObjectHandle MCdragdest;
301301
MCField *MCactivefield;
302302
MCField *MCclickfield;
303303
MCField *MCfoundfield;

engine/src/globals.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ extern MCField *MCtemplatefield;
217217
extern MCImageHandle MCmagimage;
218218
extern MCMagnifyHandle MCmagnifier;
219219
extern MCObjectHandle MCdragsource;
220-
extern MCObject *MCdragdest;
220+
extern MCObjectHandle MCdragdest;
221221
extern MCField *MCactivefield;
222222
extern MCField *MCclickfield;
223223
extern MCField *MCfoundfield;

0 commit comments

Comments
 (0)