electron-drag-plus 1.0.5 → 1.0.7

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.js CHANGED
@@ -19,12 +19,16 @@ electron_1.ipcMain.on('electron-drag:start', (event, { x, y }) => {
19
19
  const win = electron_1.BrowserWindow.fromWebContents(event.sender);
20
20
  if (!win)
21
21
  return;
22
+ const winBounds = win.getBounds();
22
23
  currentWindow = win;
23
24
  dragData = {
24
25
  isDragging: true,
25
26
  startX: x,
26
27
  startY: y,
27
- originalResizable: win.isResizable()
28
+ windowStartX: winBounds.x,
29
+ windowStartY: winBounds.y,
30
+ originalResizable: win.isResizable(),
31
+ originalSize: [winBounds.width, winBounds.height]
28
32
  };
29
33
  win.setResizable(false);
30
34
  });
@@ -32,12 +36,18 @@ electron_1.ipcMain.on('electron-drag:drag', (event, { x, y }) => {
32
36
  if (!currentWindow || !dragData || !dragData.isDragging)
33
37
  return;
34
38
  try {
35
- const winBounds = currentWindow.getBounds();
36
- const newX = winBounds.x + (x - dragData.startX);
37
- const newY = winBounds.y + (y - dragData.startY);
38
- currentWindow.setPosition(newX, newY, false);
39
- dragData.startX = x;
40
- dragData.startY = y;
39
+ const deltaX = x - dragData.startX;
40
+ const deltaY = y - dragData.startY;
41
+ const newX = dragData.windowStartX + deltaX;
42
+ const newY = dragData.windowStartY + deltaY;
43
+ currentWindow.setBounds({
44
+ x: newX,
45
+ y: newY,
46
+ width: dragData.originalSize[0],
47
+ height: dragData.originalSize[1]
48
+ }, true);
49
+ dragData.windowStartX = newX;
50
+ dragData.windowStartY = newY;
41
51
  }
42
52
  catch (error) {
43
53
  console.error('拖拽移动出错:', error);
@@ -46,8 +56,28 @@ electron_1.ipcMain.on('electron-drag:drag', (event, { x, y }) => {
46
56
  electron_1.ipcMain.on('electron-drag:stop', () => {
47
57
  if (!currentWindow || !dragData)
48
58
  return;
49
- if (dragData.originalResizable !== undefined) {
50
- currentWindow.setResizable(dragData.originalResizable);
59
+ const currentBounds = currentWindow.getBounds();
60
+ try {
61
+ currentWindow.setBounds({
62
+ x: currentBounds.x,
63
+ y: currentBounds.y,
64
+ width: dragData.originalSize[0],
65
+ height: dragData.originalSize[1]
66
+ }, true);
67
+ if (dragData.originalResizable !== undefined) {
68
+ currentWindow.setResizable(dragData.originalResizable);
69
+ }
70
+ }
71
+ catch (error) {
72
+ console.error('恢复窗口状态出错:', error);
73
+ if (dragData.originalResizable !== undefined) {
74
+ try {
75
+ currentWindow.setResizable(dragData.originalResizable);
76
+ }
77
+ catch (retryError) {
78
+ console.error('恢复窗口可调整状态失败:', retryError);
79
+ }
80
+ }
51
81
  }
52
82
  dragData = null;
53
83
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAmBA,gDAYC;AA/BD,uCAAkD;AAGlD,IAAI,aAAa,GAAyB,IAAI,CAAC;AAU/C,IAAI,QAAQ,GAAoB,IAAI,CAAC;AAMrC,SAAgB,kBAAkB,CAAC,GAAkB;IACnD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAGD,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;YAC1B,aAAa,GAAG,IAAI,CAAC;YACrB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,kBAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;IAEpD,MAAM,GAAG,GAAG,wBAAa,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG;QAAE,OAAO;IAGjB,aAAa,GAAG,GAAG,CAAC;IACpB,QAAQ,GAAG;QACT,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE;KACrC,CAAC;IAGF,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAGH,kBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;IACnD,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO;IAEhE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QAG5C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAGjD,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAG7C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC,CAAC;AAGH,kBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ;QAAE,OAAO;IAGxC,IAAI,QAAQ,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC7C,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAGD,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC,CAAC,CAAC;AAGH,kBAAe,kBAAkB,CAAC"}
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.5",
3
+ "version": "1.0.7",
4
4
  "description": "简单高效的Electron窗口拖拽库,支持自定义拖拽区域和交互元素,适用于无边框窗口应用",
5
5
  "main": "dist/index.js",
6
6
  "browser": "dist/renderer.js",