diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gui_gtk.cc | 6 | ||||
| -rw-r--r-- | src/gui_qt.cc | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/gui_gtk.cc b/src/gui_gtk.cc index 4c1cc13..be9fa96 100644 --- a/src/gui_gtk.cc +++ b/src/gui_gtk.cc @@ -1470,7 +1470,11 @@ public: } auto& handle = it->second; if (handle->in_callback_) { - handle->delayed_remove_ = true; + if (handle->delayed_remove_) { + g_source_remove(handle->watch_); + } else { + handle->delayed_remove_ = true; + } } else { g_source_remove(handle->watch_); } diff --git a/src/gui_qt.cc b/src/gui_qt.cc index d54975e..7aa52d3 100644 --- a/src/gui_qt.cc +++ b/src/gui_qt.cc @@ -1248,7 +1248,9 @@ private: callback_(fd, events); in_callback_ = false; if (delayed_delete_) { + read_->setEnabled(false); read_.release()->deleteLater(); + write_->setEnabled(false); write_.release()->deleteLater(); delete this; } |
