anchor.diff:        VK_PRIOR: MoveCursorVerticallyNUpdateSelections(-GetVisibleRows);
         VK_NEXT:  MoveCursorVerticallyNUpdateSelections(GetVisibleRows);
         VK_LEFT:  begin
  -                  OldCursorPos := CursorPos;
  +                  oldCursorPos := CursorPos;
                     CursorPos := CursorPos - 1;
  -                  UpdateSelection(OldCursorPos);
  +                  UpdateSelection(oldCursorPos);
                   end;
         VK_RIGHT: begin
  -                  OldCursorPos := CursorPos;
  +                  oldCursorPos := CursorPos;
                     CursorPos := CursorPos + 1;
  -                  UpdateSelection(OldCursorPos);
  +                  UpdateSelection(oldCursorPos);
                   end;
         VK_HOME:  begin
  -                  OldCursorPos := CursorPos;
  +                  oldCursorPos := CursorPos;
                     CursorPos := GetMinCursorPosInRow;
  -                  UpdateSelection(OldCursorPos);
  +                  UpdateSelection(oldCursorPos);
                   end;
         VK_END:   begin
  -                  OldCursorPos := CursorPos;
  +                  oldCursorPos := CursorPos;
                     CursorPos := GetMaxCursorPosInRow;
  -                  UpdateSelection(OldCursorPos);
  +                  UpdateSelection(oldCursorPos);
                   end;
       end
     else
  
positive.code: ﻿unit KM_Controls;
  {$I KaM_Remake.inc}
  interface
  uses
  
negative.code:   // Update Focus now, because we need to focus on MouseDown, not on MouseUp as by default for all controls
    MasterParent.fMasterControl.UpdateFocus(Self);
  
    oldCursorPos := CursorPos;
    CursorPos := GetCursorPosAt(X, Y);
  
    if Focusable then
    begin
      //Try select on Shift + LMB click
      if (oldCursorPos <> -1) and (Shift = [ssLeft, ssShift]) then
        UpdateSelection(oldCursorPos)
      else begin
        ResetSelection;
      end;
  