Prevent sidemenu keyhandlers from stopping events from widgets

This commit is contained in:
nathan 2024-03-18 15:33:40 -06:00
parent 0738ccc0f3
commit 61c83d89cc
2 changed files with 9 additions and 6 deletions

View File

@ -901,9 +901,12 @@ window.egw_fw_ui_category = function(_contDiv, _name, _title, _content, _callbac
//Add content and header to the content div, add some magic jQuery code in order to make it foldable //Add content and header to the content div, add some magic jQuery code in order to make it foldable
this.headerDiv._parent = this; this.headerDiv._parent = this;
entryH2._parent = this; entryH2._parent = this;
jQuery(this.headerDiv).on("keydown", this.headerDiv.addEventListener("keydown",
function(e) { function(e) {
if(e.type == "keydown" && [EGW_KEY_ENTER, EGW_KEY_SPACE].indexOf(e.which) == -1) return; if (!["Enter", " "].includes(e.key) || e.target !== this)
{
return;
}
if (!jQuery(this).hasClass("egw_fw_ui_category_active")) if (!jQuery(this).hasClass("egw_fw_ui_category_active"))
{ {
this._parent.open(false); this._parent.open(false);
@ -912,9 +915,9 @@ window.egw_fw_ui_category = function(_contDiv, _name, _title, _content, _callbac
{ {
this._parent.close(false); this._parent.close(false);
} }
e.stopPropagation(); }
}); );
jQuery(entryH2).on("click", entryH2.addEventListener("click",
function(e) { function(e) {
if (!jQuery(this).parent().hasClass("egw_fw_ui_category_active")) if (!jQuery(this).parent().hasClass("egw_fw_ui_category_active"))
{ {

View File

@ -9,7 +9,7 @@
*/ */
import {Et2Select} from "../../api/js/etemplate/Et2Select/Et2Select"; import {Et2Select} from "../../api/js/etemplate/Et2Select/Et2Select";
import {css, html, nothing, TemplateResult} from "@lion/core"; import {css, html, nothing, TemplateResult} from "lit";
import {IsEmail} from "../../api/js/etemplate/Validators/IsEmail"; import {IsEmail} from "../../api/js/etemplate/Validators/IsEmail";
import {SelectOption} from "../../api/js/etemplate/Et2Select/FindSelectOptions"; import {SelectOption} from "../../api/js/etemplate/Et2Select/FindSelectOptions";
import {Et2StaticSelectMixin} from "../../api/js/etemplate/Et2Select/StaticOptions"; import {Et2StaticSelectMixin} from "../../api/js/etemplate/Et2Select/StaticOptions";