MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / enqueueMessage

Method enqueueMessage

src/ui/manager.cpp:618–655  ·  view source on GitHub ↗

* @param msg You can't use the this message after calling this * routine. The message will be automatically freed through * @ref jmessage_free */

Source from the content-addressed store, hash-verified

616 * @ref jmessage_free
617 */
618void Manager::enqueueMessage(Message* msg)
619{
620 ASSERT(msg != NULL);
621
622#ifdef REPORT_EVENTS
623 if (msg->type() == kKeyDownMessage ||
624 msg->type() == kKeyUpMessage) {
625 int mods = (int)static_cast<KeyMessage*>(msg)->modifiers();
626 TRACE("Key%s scancode=%d unicode=%d mods=%s%s%s\n",
627 (msg->type() == kKeyDownMessage ? "Down": "Up"),
628 static_cast<KeyMessage*>(msg)->scancode(),
629 static_cast<KeyMessage*>(msg)->unicodeChar(),
630 mods & kKeyShiftModifier ? " Shift": "",
631 mods & kKeyCtrlModifier ? " Ctrl": "",
632 mods & kKeyAltModifier ? " Alt": "");
633 }
634#endif
635
636 // Check if this message must be filtered by some widget before
637 int c = msg->type();
638 if (c >= kFirstRegisteredMessage)
639 c = kFirstRegisteredMessage;
640
641 if (!msg_filters[c].empty()) { // OK, so are filters to add...
642 // Add all the filters in the destination list of the message
643 for (Filters::reverse_iterator it=msg_filters[c].rbegin(),
644 end=msg_filters[c].rend(); it != end; ++it) {
645 Filter* filter = *it;
646 if (msg->type() == filter->message)
647 msg->prependRecipient(filter->widget);
648 }
649 }
650
651 if (msg->hasRecipients())
652 msg_queue.push_back(msg);
653 else
654 delete msg;
655}
656
657Window* Manager::getTopWindow()
658{

Callers 9

onProcessMessageMethod · 0.80
moveWindowMethod · 0.80
pollTimersMethod · 0.80
flushRedrawMethod · 0.80
offerCaptureMethod · 0.80
openSubmenuMethod · 0.80
closeSubmenuMethod · 0.80
closePopupMethod · 0.80
executeClickMethod · 0.80

Calls 9

rbeginMethod · 0.80
rendMethod · 0.80
prependRecipientMethod · 0.80
hasRecipientsMethod · 0.80
typeMethod · 0.45
modifiersMethod · 0.45
scancodeMethod · 0.45
unicodeCharMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected