Kaynağa Gözat

fixed save/undo/etc not working after focused an input range

Nicolas Cannasse 4 yıl önce
ebeveyn
işleme
b55d32f1a0
1 değiştirilmiş dosya ile 16 ekleme ve 2 silme
  1. 16 2
      hide/ui/View.hx

+ 16 - 2
hide/ui/View.hx

@@ -93,12 +93,26 @@ class View<T> extends hide.comp.Component {
 		container.setTitle(getTitle());
 	}
 
-	public function processKeyEvent( e : js.jquery.Event ) {
+	function isKeysLocked( e : js.jquery.Event ) {
 		var active = js.Browser.document.activeElement;
-		if( active != null && (active.nodeName == "INPUT" || active.nodeName == "TEXTAREA") ) {
+		if( active == null || e.altKey || e.ctrlKey )
+			return false;
+		if( active.nodeName == "TEXTAREA" )
+			return true;
+		if( active.nodeName == "INPUT" ) {
+			var type = (""+active.getAttribute("type")).toLowerCase();
+			if( type == "text" )
+				return true;
+		}
+		return false;
+	}
+
+	public function processKeyEvent( e : js.jquery.Event ) {
+		if( isKeysLocked(e) ) {
 			e.stopPropagation();
 			return true;
 		}
+		var active = js.Browser.document.activeElement;
 		for( el in element.find("[haskeys=true]").add(element).elements() ) {
 			if(el.has(active).length == 0 && el[0] != active)
 				continue;