=> 1773ec7859d45256e298776ee6c48990a077aa9b
[1mdiff --git a/src/ui/inputwidget.c b/src/ui/inputwidget.c[m [1mindex 355486de..a65dc6b3 100644[m [1m--- a/src/ui/inputwidget.c[m [1m+++ b/src/ui/inputwidget.c[m [36m@@ -1378,6 +1378,7 @@[m [mvoid begin_InputWidget(iInputWidget *d) {[m }[m updateTextInputRect_InputWidget_(d);[m updateVisible_InputWidget_(d);[m [32m+[m[32m window_Widget(w)->keyPriority = w;[m #endif[m }[m [m [36m@@ -1411,6 +1412,7 @@[m [mvoid end_InputWidget(iInputWidget *d, iBool accept) {[m d->inFlags &= ~isMarking_InputWidgetFlag;[m deactivateInputMode_InputWidget_(d);[m startOrStopCursorTimer_InputWidget_(d, iFalse);[m [32m+[m[32m window_Widget(w)->keyPriority = NULL;[m #endif[m d->inFlags |= needUpdateBuffer_InputWidgetFlag;[m setFlags_Widget(w, selected_WidgetFlag | keepOnTop_WidgetFlag | touchDrag_WidgetFlag, iFalse);[m [1mdiff --git a/src/ui/window.c b/src/ui/window.c[m [1mindex 72e88759..654b5948 100644[m [1m--- a/src/ui/window.c[m [1m+++ b/src/ui/window.c[m [36m@@ -1372,7 +1372,9 @@[m [miBool processEvent_Window(iWindow *d, const SDL_Event *ev) {[m /* If there is a priority handler for key events, offer the event to it first.[m This is similar to mouse grabbing, but the handler can refuse the event. */[m if (d->keyPriority && (event.type == SDL_KEYDOWN || event.type == SDL_KEYDOWN)) {[m [31m- wasUsed = dispatchEvent_Widget(d->keyPriority, &event);[m [32m+[m[32m /* The event is processed directly by the widget only, not dispatched to[m [32m+[m[32m the widget subtree. When dispatching, children still get priority. */[m [32m+[m[32m wasUsed = class_Widget(d->keyPriority)->processEvent(d->keyPriority, &event);[m }[m /* Dispatch the event to the tree of widgets. */[m if (!wasUsed) {[m
text/gemini; charset=utf-8
This content has been proxied by September (ba2dc).