fix an issue that key_char may be missed
This commit is contained in:
parent
9cbaaf375b
commit
8490e05497
@ -1050,6 +1050,16 @@ namespace detail
|
|||||||
arg.window_handle = reinterpret_cast<window>(msgwnd);
|
arg.window_handle = reinterpret_cast<window>(msgwnd);
|
||||||
brock.emit(event_code::key_press, msgwnd, arg, true, &context);
|
brock.emit(event_code::key_press, msgwnd, arg, true, &context);
|
||||||
|
|
||||||
|
if((XLookupKeySym == status) && (brock.wd_manager.available(msgwnd)))
|
||||||
|
{
|
||||||
|
//call key_char event if status is XLookupKeySym to avaid calling key_char
|
||||||
|
//twice, because the status would be equal to XLookupChars if the input method is
|
||||||
|
//enabled for the window.
|
||||||
|
arg.ignore = false;
|
||||||
|
arg.evt_code = event_code::key_char;
|
||||||
|
brock.emit(event_code::key_char, msgwnd, arg, true, & context);
|
||||||
|
}
|
||||||
|
|
||||||
if(msgwnd->root_widget->other.attribute.root->menubar == msgwnd)
|
if(msgwnd->root_widget->other.attribute.root->menubar == msgwnd)
|
||||||
{
|
{
|
||||||
int cmd = (menu_wd && (keyboard::escape == static_cast<nana::char_t>(arg.key)) ? 1 : 0 );
|
int cmd = (menu_wd && (keyboard::escape == static_cast<nana::char_t>(arg.key)) ? 1 : 0 );
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user