UX fix: when the user clicks on the search input, don't move the cursor at the end
Related to https://github.com/searxng/searxng/pull/1153#issuecomment-1154247988
This commit is contained in:
		
							parent
							
								
									9b0b6a2c90
								
							
						
					
					
						commit
						fe1683c9c6
					
				| @ -317,7 +317,12 @@ searxng.ready(function () { | |||||||
| 
 | 
 | ||||||
|   function searchInputFocus () { |   function searchInputFocus () { | ||||||
|     window.scrollTo(0, 0); |     window.scrollTo(0, 0); | ||||||
|     document.querySelector('#q').focus(); |     var q = document.querySelector('#q'); | ||||||
|  |     q.focus(); | ||||||
|  |     if (q.setSelectionRange) { | ||||||
|  |       var len = q.value.length; | ||||||
|  |       q.setSelectionRange(len, len); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function openResult (newTab) { |   function openResult (newTab) { | ||||||
|  | |||||||
| @ -3,17 +3,10 @@ | |||||||
| (function (w, d, searxng) { | (function (w, d, searxng) { | ||||||
|   'use strict'; |   'use strict'; | ||||||
| 
 | 
 | ||||||
|   var firstFocus = true, qinput_id = "q", qinput; |   var qinput_id = "q", qinput; | ||||||
| 
 | 
 | ||||||
|   const isMobile = window.matchMedia("only screen and (max-width: 50em)").matches; |   const isMobile = window.matchMedia("only screen and (max-width: 50em)").matches; | ||||||
| 
 | 
 | ||||||
|   function placeCursorAtEnd (element) { |  | ||||||
|     if (element.setSelectionRange) { |  | ||||||
|       var len = element.value.length; |  | ||||||
|       element.setSelectionRange(len, len); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   function submitIfQuery () { |   function submitIfQuery () { | ||||||
|     if (qinput.value.length  > 0) { |     if (qinput.value.length  > 0) { | ||||||
|       var search = document.getElementById('search'); |       var search = document.getElementById('search'); | ||||||
| @ -45,15 +38,6 @@ | |||||||
|   searxng.ready(function () { |   searxng.ready(function () { | ||||||
|     qinput = d.getElementById(qinput_id); |     qinput = d.getElementById(qinput_id); | ||||||
| 
 | 
 | ||||||
|     function placeCursorAtEndOnce () { |  | ||||||
|       if (firstFocus) { |  | ||||||
|         placeCursorAtEnd(qinput); |  | ||||||
|         firstFocus = false; |  | ||||||
|       } else { |  | ||||||
|         // e.preventDefault();
 |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (qinput !== null) { |     if (qinput !== null) { | ||||||
|       // clear button
 |       // clear button
 | ||||||
|       createClearButton(qinput); |       createClearButton(qinput); | ||||||
| @ -84,8 +68,6 @@ | |||||||
|         }, "#" + qinput_id); |         }, "#" + qinput_id); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       qinput.addEventListener('focus', placeCursorAtEndOnce, false); |  | ||||||
| 
 |  | ||||||
|       if (!isMobile && document.querySelector('.index_endpoint')) { |       if (!isMobile && document.querySelector('.index_endpoint')) { | ||||||
|         qinput.focus(); |         qinput.focus(); | ||||||
|       } |       } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user