MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ unbind()

void MayaFlux::Portal::Forma::Context::unbind ( uint32_t  id)

Remove all callbacks registered for an element id.

Also clears m_hovered/m_dragging entries pointing at id, so a removed element cannot be left as the stale current hover or drag target.

Definition at line 168 of file Context.cpp.

169{
170 if (m_focused && *m_focused == id) {
171 auto it = m_callbacks.find(id);
172 if (it != m_callbacks.end() && it->second.focus_lost)
173 it->second.focus_lost(id);
174 m_focused = std::nullopt;
175 }
176
177 if (m_hovered && *m_hovered == id)
178 m_hovered = std::nullopt;
179
180 for (auto& dragging : m_dragging) {
181 if (dragging && *dragging == id)
182 dragging = std::nullopt;
183 }
184
185 m_callbacks.erase(id);
186}
std::optional< uint32_t > m_dragging[3]
Definition Context.hpp:382
std::unordered_map< uint32_t, ElementCallbacks > m_callbacks
Definition Context.hpp:361
std::optional< uint32_t > m_hovered
Definition Context.hpp:359
std::optional< uint32_t > m_focused
Definition Context.hpp:383

References m_callbacks, m_dragging, m_focused, and m_hovered.

Referenced by MayaFlux::Portal::Forma::destroy().

+ Here is the caller graph for this function: