MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / sendEvent

Method sendEvent

source/windowing/StarCanvasWidget.cpp:97–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97bool CanvasWidget::sendEvent(InputEvent const& event) {
98 if (!m_visible)
99 return false;
100
101 auto& context = GuiContext::singleton();
102 int interfaceScale = m_ignoreInterfaceScale ? 1 : context.interfaceScale();
103 if (auto mouseButtonDown = event.ptr<MouseButtonDownEvent>()) {
104 if (inMember(*context.mousePosition(event, interfaceScale)) && m_captureMouse) {
105 m_clickEvents.append({*context.mousePosition(event, interfaceScale) - screenPosition(), mouseButtonDown->mouseButton, true});
106 m_clickEvents.limitSizeBack(MaximumEventBuffer);
107 return true;
108 }
109 } else if (auto mouseButtonUp = event.ptr<MouseButtonUpEvent>()) {
110 if (m_captureMouse) {
111 m_clickEvents.append({*context.mousePosition(event, interfaceScale) - screenPosition(), mouseButtonUp->mouseButton, false});
112 m_clickEvents.limitSizeBack(MaximumEventBuffer);
113 return true;
114 }
115 } else if (event.is<MouseMoveEvent>()) {
116 m_mousePosition = *context.mousePosition(event, interfaceScale) - screenPosition();
117 return false;
118 } else if (auto keyDown = event.ptr<KeyDownEvent>()) {
119 if (m_captureKeyboard) {
120 m_keyEvents.append({keyDown->key, true});
121 return true;
122 }
123 } else if (auto keyUp = event.ptr<KeyUpEvent>()) {
124 if (m_captureKeyboard) {
125 m_keyEvents.append({keyUp->key, false});
126 m_keyEvents.limitSizeBack(MaximumEventBuffer);
127 return true;
128 }
129 }
130
131 return Widget::sendEvent(event);
132}
133
134KeyboardCaptureMode CanvasWidget::keyboardCaptureMode() const {
135 return m_captureKeyboard ? KeyboardCaptureMode::KeyEvents : KeyboardCaptureMode::None;

Callers

nothing calls this directly

Calls 5

singletonClass · 0.85
limitSizeBackMethod · 0.80
interfaceScaleMethod · 0.45
mousePositionMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected