Fossil

Check-in [36ba7ec9]
Login

Check-in [36ba7ec9]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Another fix for the JS to dynamically load extra diff context: when coalescing multiple pending Up/Down events into a single Fill Gap event, make sure the event queue isn't truncated too eagerly.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | diff-js-fixes
Files: files | file ages | folders
SHA3-256: 36ba7ec968a76dc3c6c4d1b72e697599d39e15bd4fc5501698c683ae5bcfae1f
User & Date: florian 2021-10-06 06:03:00
Context
2021-10-06
06:07
Merge the latest diff context loading fix. ... (check-in: 4b1cf8d8 user: florian tags: trunk)
06:03
Another fix for the JS to dynamically load extra diff context: when coalescing multiple pending Up/Down events into a single Fill Gap event, make sure the event queue isn't truncated too eagerly. ... (Closed-Leaf check-in: 36ba7ec9 user: florian tags: diff-js-fixes)
02:37
/chat: a potential fix to stop *some* builds of Firefox from pasting formatted content into the edit field. (Some builds, same version, do not do so.) ... (check-in: 498bc071 user: stephan tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/fossil.diff.js.

278
279
280
281
282
283
284
285

286
287
288
289
290
291
292
293
       of the diff, only between two diff chunks.
    */
    maybeReplaceButtons: function(){
      if(this.pos.next && this.pos.prev
         && (this.pos.endLhs - this.pos.startLhs <= Diff.config.chunkLoadLines)){
        D.clearElement(this.e.btnWrapper);
        D.append(this.e.btnWrapper, this.createButton(this.FetchType.FillGap));
        if( this.$fetchQueue && this.$fetchQueue.length>0 ){

          this.$fetchQueue = [this.FetchType.FillGap];
        }
      }
      return this;
    },

    /**
       Callack for /jchunk responses.







|
>
|







278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
       of the diff, only between two diff chunks.
    */
    maybeReplaceButtons: function(){
      if(this.pos.next && this.pos.prev
         && (this.pos.endLhs - this.pos.startLhs <= Diff.config.chunkLoadLines)){
        D.clearElement(this.e.btnWrapper);
        D.append(this.e.btnWrapper, this.createButton(this.FetchType.FillGap));
        if( this.$fetchQueue && this.$fetchQueue.length>1 ){
          this.$fetchQueue[1] = this.FetchType.FillGap;
          this.$fetchQueue.length = 2;
        }
      }
      return this;
    },

    /**
       Callack for /jchunk responses.
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
          up.from = this.pos.prev.endLhs + 1;
          fetchType = this.FetchType.FillGap;
        }
      }
      //console.debug("fetchChunk(",fetchType,")",up);
      fOpt.onerror = function(err){
        self.msg(true,err.message);
        self.$fetchQueue = [];
      };
      Diff.fetchArtifactChunk(fOpt);
      return this;
    }
  };

  /**







|







577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
          up.from = this.pos.prev.endLhs + 1;
          fetchType = this.FetchType.FillGap;
        }
      }
      //console.debug("fetchChunk(",fetchType,")",up);
      fOpt.onerror = function(err){
        self.msg(true,err.message);
        self.$fetchQueue.length = 0;
      };
      Diff.fetchArtifactChunk(fOpt);
      return this;
    }
  };

  /**