mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 12:19:38 +08:00
68 lines
2.0 KiB
JavaScript
68 lines
2.0 KiB
JavaScript
/*
|
|
_ __ _ __
|
|
| | / /___ _(_) /____
|
|
| | /| / / __ `/ / / ___/
|
|
| |/ |/ / /_/ / / (__ )
|
|
|__/|__/\__,_/_/_/____/
|
|
The lightweight framework for web-like apps
|
|
(c) Lea Anthony 2019-present
|
|
*/
|
|
/* jshint esversion: 6 */
|
|
|
|
/**
|
|
* Initialises platform specific code
|
|
*/
|
|
|
|
// import * as common from './common';
|
|
const common = require('./common');
|
|
|
|
export const System = {
|
|
...common,
|
|
Platform: () => "darwin",
|
|
}
|
|
|
|
export function SendMessage(message) {
|
|
window.webkit.messageHandlers.external.postMessage(message);
|
|
}
|
|
|
|
export function Init() {
|
|
|
|
// Setup drag handler
|
|
// Based on code from: https://github.com/patr0nus/DeskGap
|
|
window.addEventListener('mousedown', function (e) {
|
|
let currentElement = e.target;
|
|
while (currentElement != null) {
|
|
if (currentElement.hasAttribute('data-wails-no-drag')) {
|
|
break;
|
|
} else if (currentElement.hasAttribute('data-wails-drag')) {
|
|
window.webkit.messageHandlers.windowDrag.postMessage(null);
|
|
break;
|
|
}
|
|
currentElement = currentElement.parentElement;
|
|
}
|
|
});
|
|
|
|
// Setup context menu hook
|
|
window.addEventListener('contextmenu', function (e) {
|
|
let currentElement = e.target;
|
|
let contextMenuId;
|
|
while (currentElement != null) {
|
|
contextMenuId = currentElement.dataset['wails-context-menu-id'];
|
|
if (contextMenuId != null) {
|
|
break;
|
|
}
|
|
currentElement = currentElement.parentElement;
|
|
}
|
|
if (contextMenuId != null || window.disableWailsDefaultContextMenu) {
|
|
e.preventDefault();
|
|
}
|
|
if( contextMenuId != null ) {
|
|
let contextData = currentElement.dataset['wails-context-menu-data'];
|
|
let message = {
|
|
id: contextMenuId,
|
|
data: contextData || "",
|
|
};
|
|
window.webkit.messageHandlers.contextMenu.postMessage(JSON.stringify(message));
|
|
}
|
|
});
|
|
} |