Преглед на файлове

[scene] Fix search bar loosing all it's event handlers when refreshing while open

Clément Espeute преди 8 месеца
родител
ревизия
a31e784a2d
променени са 1 файла, в които са добавени 7 реда и са изтрити 4 реда
  1. 7 4
      hide/comp/IconTree.hx

+ 7 - 4
hide/comp/IconTree.hx

@@ -187,7 +187,8 @@ class IconTree<T:{}> extends Component {
 			var old = waitRefresh;
 			waitRefresh = [];
 			if( searchBox != null ) {
-				element.append(searchBox);
+				searchBox = null;
+				openFilter(false);
 				searchFilter(this.filter);
 			}
 			for( f in old ) f();
@@ -375,10 +376,10 @@ class IconTree<T:{}> extends Component {
 		}
 	}
 
-	public function openFilter() {
+	public function openFilter(focus: Bool = true) {
 		if( async ) {
 			async = false;
-			refresh(openFilter);
+			refresh(openFilter.bind(focus));
 			return;
 		}
 		if( searchBox == null ) {
@@ -404,7 +405,9 @@ class IconTree<T:{}> extends Component {
 			});
 		}
 		searchBox.show();
-		searchBox.find("input").focus().select();
+		if (focus) {
+			searchBox.find("input").focus().select();
+		}
 	}