Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
insync / usr / lib / insync / ideskui / html / js / drag.js
Size: Mime:
'use strict';

/*
  Transpiled to es2015 using https://babeljs.io/repl syntax since some of our targets doesn't support es2016
*/

var scrollTop = -1;
var scrollLeft = -1; // Drag handling: windows are only draggable by the custom title bar.

function isValidDragTarget(target) {
  var cls = target.className; // we need this check so SVGs dont throw errors

  return cls.indexOf && cls.indexOf('window-drag-handle') >= 0;
}

function hasScrolled(target) {
  return scrollTop !== target.scrollTop || scrollLeft !== target.scrollLeft;
}

function startDrag() {
  window.callPy('js_start_drag');
}

function stopDrag() {
  scrollTop = -1;
  scrollLeft = -1;
  window.callPy('js_stop_drag');
}

document.onmousedown = function(event) {
  var _event$target = event.target;
  var top = _event$target.scrollTop;
  var left = _event$target.scrollLeft;

  if (isValidDragTarget(event.target)) {
    scrollTop = top;
    scrollLeft = left;
  } else {
    stopDrag();
  }
};

document.onmousemove = function(event) {
  if (scrollTop === -1 && scrollLeft === -1) {
    // A mousedown hasn't been captured  yet.
  } else if (hasScrolled(event.target)) {
    // The event is over a scrollbar.
  } else {
    startDrag();
  }
};

document.onmouseup = stopDrag;