diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2017-07-12 18:13:47 +0200 | 
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2017-07-12 18:13:47 +0200 | 
| commit | af2d08087a6e2386aa6edd5e133f5b581779c013 (patch) | |
| tree | 933a5a9858e2c92cc97ebb4d1a420d74b1986331 /UnityCore | |
| parent | e4c421bc64b1aad5bc971faca2c0e1ad84e64db7 (diff) | |
GLibSignal: allow to block, unblock signals
(bzr r4245.2.3)
Diffstat (limited to 'UnityCore')
| -rw-r--r-- | UnityCore/GLibSignal.cpp | 26 | ||||
| -rw-r--r-- | UnityCore/GLibSignal.h | 3 | 
2 files changed, 29 insertions, 0 deletions
| diff --git a/UnityCore/GLibSignal.cpp b/UnityCore/GLibSignal.cpp index f0949e84a..b649e2543 100644 --- a/UnityCore/GLibSignal.cpp +++ b/UnityCore/GLibSignal.cpp @@ -51,6 +51,32 @@ bool SignalBase::Disconnect()  return disconnected;  } +bool SignalBase::Block() const +{ + bool blocked = false; + + if (connection_id_ && G_IS_OBJECT(object_)) + { + g_signal_handler_block(object_, connection_id_); + blocked = true; + } + + return blocked; +} + +bool SignalBase::Unblock() const +{ + bool unblocked = false; + + if (connection_id_ && G_IS_OBJECT(object_)) + { + g_signal_handler_unblock(object_, connection_id_); + unblocked = true; + } + + return unblocked; +} +  GObject* SignalBase::object() const  {  return object_; diff --git a/UnityCore/GLibSignal.h b/UnityCore/GLibSignal.h index 46914bd00..894b7843c 100644 --- a/UnityCore/GLibSignal.h +++ b/UnityCore/GLibSignal.h @@ -41,6 +41,9 @@ public:  bool Disconnect(); + bool Block() const; + bool Unblock() const; +  GObject* object() const;  std::string const& name() const; | 
