File tree 2 files changed +12
-2
lines changed
2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -422,6 +422,8 @@ namespace entry
422
422
bool joystick = s_joystick.update (m_eventQueue);
423
423
bool xpending = XPending (m_display);
424
424
425
+ uint8_t oldModifers = m_modifiers;
426
+
425
427
if (!xpending)
426
428
{
427
429
bx::sleep (joystick ? 8 : 16 );
@@ -500,6 +502,7 @@ namespace entry
500
502
{
501
503
XKeyEvent& xkey = event.xkey ;
502
504
KeySym keysym = XLookupKeysym (&xkey, 0 );
505
+
503
506
switch (keysym)
504
507
{
505
508
case XK_Meta_L: setModifier (Modifier::LeftMeta, KeyPress == event.type ); break ;
@@ -538,6 +541,7 @@ namespace entry
538
541
if (Key::None != key)
539
542
{
540
543
m_eventQueue.postKeyEvent (handle, key, m_modifiers, KeyPress == event.type );
544
+ oldModifers = m_modifiers;
541
545
}
542
546
}
543
547
break ;
@@ -556,6 +560,11 @@ namespace entry
556
560
}
557
561
break ;
558
562
}
563
+
564
+ if (oldModifers != m_modifiers)
565
+ {
566
+ m_eventQueue.postKeyEvent ({ UINT16_MAX }, Key::None, m_modifiers, true );
567
+ }
559
568
}
560
569
}
561
570
Original file line number Diff line number Diff line change @@ -471,12 +471,13 @@ struct OcornutImguiContext
471
471
m_lastScroll = _scroll;
472
472
473
473
#if USE_ENTRY
474
- uint8_t modifiers = inputGetModifiersState ();
474
+ const uint8_t modifiers = inputGetModifiersState ();
475
475
io.AddKeyEvent (ImGuiMod_Shift, 0 != (modifiers & (entry::Modifier::LeftShift | entry::Modifier::RightShift) ) );
476
476
io.AddKeyEvent (ImGuiMod_Ctrl, 0 != (modifiers & (entry::Modifier::LeftCtrl | entry::Modifier::RightCtrl ) ) );
477
477
io.AddKeyEvent (ImGuiMod_Alt, 0 != (modifiers & (entry::Modifier::LeftAlt | entry::Modifier::RightAlt ) ) );
478
478
io.AddKeyEvent (ImGuiMod_Super, 0 != (modifiers & (entry::Modifier::LeftMeta | entry::Modifier::RightMeta ) ) );
479
- for (int32_t ii = 0 ; ii < (int32_t )entry::Key::Count; ++ii)
479
+
480
+ for (int32_t ii = 0 ; ii < int32_t (entry::Key::Count); ++ii)
480
481
{
481
482
io.AddKeyEvent (m_keyMap[ii], inputGetKeyState (entry::Key::Enum (ii) ) );
482
483
io.SetKeyEventNativeData (m_keyMap[ii], 0 , 0 , ii);
You can’t perform that action at this time.
0 commit comments