Skip to content

Commit cedae69

Browse files
committed
[Shell] key
1 parent 898ce95 commit cedae69

2 files changed

Lines changed: 12 additions & 8 deletions

File tree

‎include/openminecraft/renderer/common/demiurge/om_demiurge_node.hpp‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <any>
1111
#include <cmath>
1212
#include <initializer_list>
13+
#include <iostream>
1314
#include <memory>
1415
#include <string>
1516
#include <utility>
@@ -126,6 +127,7 @@ class OMDemiurgeNode : public std::enable_shared_from_this<OMDemiurgeNode>
126127
return Ignored;
127128
}
128129
void acceptEvent(float x, float y, OMDemiurgeEventType type, uint8_t, void * = nullptr);
130+
void acceptEvent(OMDemiurgeEventType type, uint32_t, void * = nullptr);
129131

130132
inline auto style(std::string s, std::any a) -> std::shared_ptr<OMDemiurgeNode>
131133
{
@@ -157,10 +159,8 @@ class OMDemiurgeNode : public std::enable_shared_from_this<OMDemiurgeNode>
157159
acceptEvent(e.mousewheel.x, e.mousewheel.y, demiurge::MouseWheel, -1,
158160
std::array<float, 2>{e.mousewheel.wheelx, e.mousewheel.wheely}.data());
159161
});
160-
buswrap.append(event::KeyDown,
161-
[&](event::OMEvent &e) { acceptEvent(INFINITY, INFINITY, demiurge::KeyDown, e.key.keycode); });
162-
buswrap.append(event::KeyUp,
163-
[&](event::OMEvent &e) { acceptEvent(INFINITY, INFINITY, demiurge::KeyUp, e.key.keycode); });
162+
buswrap.append(event::KeyDown, [&](event::OMEvent &e) { acceptEvent(demiurge::KeyDown, e.key.keycode); });
163+
buswrap.append(event::KeyUp, [&](event::OMEvent &e) { acceptEvent(demiurge::KeyUp, e.key.keycode); });
164164
}
165165

166166
protected:

‎src/openminecraft-core/renderer/common/demiurge/om_demiurge_node.cpp‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -318,13 +318,18 @@ auto OMDemiurgeNode::syncBoundary(float x, float y) -> void
318318
}
319319
}
320320

321+
void OMDemiurgeNode::acceptEvent(OMDemiurgeEventType type, uint32_t ext, void *data)
322+
{
323+
std::cout << ext << std::endl;
324+
}
325+
321326
void OMDemiurgeNode::acceptEvent(float x, float y, OMDemiurgeEventType type, uint8_t ext, void *data)
322327
{
323328
try
324329
{
325330
auto bo = stylesStorage.get<OMDemiurgeRect>("layoutBound");
326-
327-
if (x >= bo.x && x <= bo.x + bo.width && y >= bo.y && y <= bo.y + bo.height)
331+
if ((x >= bo.x && x <= bo.x + bo.width && y >= bo.y && y <= bo.y + bo.height) ||
332+
(std::isinf(x) && std::isinf(y)))
328333
{
329334
if (!(mx >= bo.x && mx <= bo.x + bo.width && my >= bo.y && my <= bo.y + bo.height))
330335
{
@@ -360,8 +365,7 @@ void OMDemiurgeNode::acceptEvent(float x, float y, OMDemiurgeEventType type, uin
360365
result = processMouseScroll(x, y, f[0], f[1]);
361366
break;
362367
}
363-
case KeyDown:
364-
case KeyUp:
368+
default:
365369
break;
366370
}
367371

0 commit comments

Comments
 (0)