electron-drag-plus 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  import { BrowserWindow } from 'electron';
2
- export declare function initializeDragPlus(win: BrowserWindow): void;
2
+ export interface DragCallbacks {
3
+ onDragStart?: (window: BrowserWindow) => void;
4
+ onDragEnd?: (window: BrowserWindow) => void;
5
+ }
6
+ export declare function initializeDragPlus(win: BrowserWindow, callbacks?: DragCallbacks): void;
3
7
  export default initializeDragPlus;
package/dist/index.js CHANGED
@@ -4,14 +4,19 @@ exports.initializeDragPlus = initializeDragPlus;
4
4
  const electron_1 = require("electron");
5
5
  let currentWindow = null;
6
6
  let dragData = null;
7
- function initializeDragPlus(win) {
7
+ let currentCallbacks = null;
8
+ function initializeDragPlus(win, callbacks) {
8
9
  if (!win) {
9
10
  throw new Error('窗口实例不能为空');
10
11
  }
12
+ if (callbacks) {
13
+ currentCallbacks = callbacks;
14
+ }
11
15
  win.on('closed', () => {
12
16
  if (currentWindow === win) {
13
17
  currentWindow = null;
14
18
  dragData = null;
19
+ currentCallbacks = null;
15
20
  }
16
21
  });
17
22
  }
@@ -21,19 +26,23 @@ electron_1.ipcMain.on('electron-drag:start', (event, _) => {
21
26
  return;
22
27
  const winBounds = win.getBounds();
23
28
  const cursorScreenPoint = electron_1.screen.getCursorScreenPoint();
24
- const startDisplay = electron_1.screen.getDisplayNearestPoint(cursorScreenPoint);
25
29
  currentWindow = win;
26
30
  dragData = {
27
31
  isDragging: true,
28
- startMouseX: cursorScreenPoint.x,
29
- startMouseY: cursorScreenPoint.y,
30
- windowStartX: winBounds.x,
31
- windowStartY: winBounds.y,
32
+ offsetX: cursorScreenPoint.x - winBounds.x,
33
+ offsetY: cursorScreenPoint.y - winBounds.y,
32
34
  originalResizable: win.isResizable(),
33
- originalSize: [winBounds.width, winBounds.height],
34
- startScaleFactor: startDisplay.scaleFactor
35
+ originalSize: [winBounds.width, winBounds.height]
35
36
  };
36
37
  win.setResizable(false);
38
+ if (currentCallbacks?.onDragStart) {
39
+ try {
40
+ currentCallbacks.onDragStart(win);
41
+ }
42
+ catch (error) {
43
+ console.error('拖拽开始回调执行出错:', error);
44
+ }
45
+ }
37
46
  });
38
47
  electron_1.ipcMain.on('electron-drag:drag', (event, _) => {
39
48
  if (!currentWindow || !dragData || !dragData.isDragging)
@@ -47,12 +56,8 @@ electron_1.ipcMain.on('electron-drag:drag', (event, _) => {
47
56
  return;
48
57
  }
49
58
  const cursorScreenPoint = electron_1.screen.getCursorScreenPoint();
50
- const currentDisplay = electron_1.screen.getDisplayNearestPoint(cursorScreenPoint);
51
- const currentScaleFactor = currentDisplay.scaleFactor;
52
- const deltaX = (cursorScreenPoint.x - dragData.startMouseX) * (dragData.startScaleFactor / currentScaleFactor);
53
- const deltaY = (cursorScreenPoint.y - dragData.startMouseY) * (dragData.startScaleFactor / currentScaleFactor);
54
- const newX = dragData.windowStartX + deltaX;
55
- const newY = dragData.windowStartY + deltaY;
59
+ const newX = cursorScreenPoint.x - dragData.offsetX;
60
+ const newY = cursorScreenPoint.y - dragData.offsetY;
56
61
  currentWindow.setBounds({
57
62
  x: Math.round(newX),
58
63
  y: Math.round(newY)
@@ -90,6 +95,14 @@ electron_1.ipcMain.on('electron-drag:stop', () => {
90
95
  }
91
96
  }
92
97
  }
98
+ if (currentCallbacks?.onDragEnd) {
99
+ try {
100
+ currentCallbacks.onDragEnd(currentWindow);
101
+ }
102
+ catch (error) {
103
+ console.error('拖拽结束回调执行出错:', error);
104
+ }
105
+ }
93
106
  dragData = null;
94
107
  });
95
108
  exports.default = initializeDragPlus;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "electron-drag-plus",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "简单高效的Electron窗口拖拽库,支持自定义拖拽区域和交互元素,适用于无边框窗口应用",
5
5
  "main": "dist/index.js",
6
6
  "browser": "dist/renderer.js",