diff --git a/src/mvFileDialog.cpp b/src/mvFileDialog.cpp index f8ea6f522..7eef5a3c1 100644 --- a/src/mvFileDialog.cpp +++ b/src/mvFileDialog.cpp @@ -187,7 +187,18 @@ void mvFileDialog::handleSpecificKeywordArgs(PyObject* dict) _max_size = { (float)max_size[0], (float)max_size[1] }; } - if (PyObject* item = PyDict_GetItemString(dict, "cancel_callback")) _cancelCallback = item; + if (PyObject* item = PyDict_GetItemString(dict, "cancel_callback")) + { + Py_XDECREF(_cancelCallback); + + if (item == Py_None) + _cancelCallback = nullptr; + else + { + Py_XINCREF(item); + _cancelCallback = item; + } + } }