fad9127b4977c8da308a4c972f4a3497dfd695dd
angie
  Fri Oct 27 16:09:39 2017 -0700
On load, don't reset position/search input value and add 'enter position, ...' watermark if the input is in focus, i.e. the user is already trying to type something there.  refs #20426

diff --git src/hg/js/autocomplete.js src/hg/js/autocomplete.js
index ddb181f..cd5e98d 100644
--- src/hg/js/autocomplete.js
+++ src/hg/js/autocomplete.js
@@ -47,44 +47,48 @@
     },
 
     updateFindMatches: function(val) {
         // highlight genes choosen from suggest list (#6330)
         if ($('#hgFindMatches').length) $('#hgFindMatches').val(val);
         else $('#positionInput').parents('form').append("<input type='hidden' id='hgFindMatches' name='hgFind.matches' " + "value='" + val + "'>");
     },
 
     initialized: false,
 
     init: function(db, assemblySupportsGeneSuggest, selectCallback, clickCallback) {
         // selectCallback(item): called when the user selects a new genomic position from the list
         // clickCallback(position): called when the user clicks on positionDisplay
         this.initialized = true;
         var lastSelected = null; // this is the last value entered by the user via a suggestion (used to distinguish manual entry in the same field)
+        var $posInput = $('#positionInput');
         var waterMark;
         if (assemblySupportsGeneSuggest) {
             if (db.match(/^hg[0-9]+/)) {
                 // Mention HGVS variant notation for human assemblies only, although it should work
                 // with any assembly that has refGene or ncbiRefSeq.
                 waterMark = "enter position, gene symbol, HGVS or search terms";
             } else {
                 waterMark = "enter position, gene symbol or search terms";
             }
         } else {
             waterMark = "enter position or search terms";
         }
-        $('#positionInput').val("");
-        $('#positionInput').Watermark(waterMark, '#686868');
+        if ($posInput[0] != document.activeElement) {
+            // Reset value before adding watermark -- only if user is not already typing here
+            $posInput.val("");
+        }
+        $posInput.Watermark(waterMark, '#686868');
         if (assemblySupportsGeneSuggest) {
             $('#positionInput').autocomplete({
                 delay: 500,
                 minLength: 2,
                 source: this.ajaxGet(db),
                 open: function(event, ui) {
                     var pos = $(this).offset().top + $(this).height();
                     if (!isNaN(pos)) {
                         var maxHeight = $(window).height() - pos - 30; // take off a little more because IE needs it
                         var auto = $('.ui-autocomplete');
                         var curHeight = $(auto).children().length * 21;
                         if (curHeight > maxHeight) $(auto).css({
                             maxHeight: maxHeight + 'px',
                             overflow: 'scroll',
                             zIndex: 12