mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
[WIP] Fix context menu freezing newIDE rendering
This commit is contained in:
@@ -94,8 +94,8 @@ var Event = React.createClass({
|
||||
}
|
||||
|
||||
if (!event.isFolded()) {
|
||||
// eslint-disable-next-line
|
||||
elements.push(
|
||||
// eslint-disable-next-line
|
||||
React.createElement(EventsList, {
|
||||
eventsList: event.getSubEvents(),
|
||||
key: 'subEvents',
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import React, { Component } from 'react';
|
||||
import React from 'react';
|
||||
import Menu from 'material-ui/Menu';
|
||||
import Popover from 'material-ui/Popover';
|
||||
import ElectronMenuImplementation from './ElectronMenuImplementation';
|
||||
|
@@ -3,23 +3,21 @@ const electron = optionalRequire('electron');
|
||||
|
||||
export default class ElectronMenuImplementation {
|
||||
buildFromTemplate(template) {
|
||||
if (!electron) return;
|
||||
|
||||
const { Menu } = electron.remote;
|
||||
this.menu = Menu.buildFromTemplate(template);
|
||||
|
||||
this.menuTemplate = template;
|
||||
return undefined;
|
||||
}
|
||||
|
||||
showMenu(dimensions) {
|
||||
if (!electron) return;
|
||||
if (this.menu) {
|
||||
setTimeout(() =>
|
||||
this.menu.popup(
|
||||
Math.round(dimensions.left),
|
||||
Math.round(dimensions.top + dimensions.height)
|
||||
));
|
||||
}
|
||||
|
||||
const { Menu } = electron.remote;
|
||||
const browserWindow = electron.remote.getCurrentWindow();
|
||||
this.menu = Menu.buildFromTemplate(this.menuTemplate);
|
||||
this.menu.popup(browserWindow, {
|
||||
x: Math.round(dimensions.left),
|
||||
y: Math.round(dimensions.top + dimensions.height),
|
||||
async: true, // Ensure the UI is not blocked on macOS.
|
||||
});
|
||||
}
|
||||
|
||||
getMenuProps() {
|
||||
|
@@ -1,7 +1,5 @@
|
||||
import React, { Component } from 'react';
|
||||
import IconMenu from 'material-ui/IconMenu';
|
||||
import MenuItem from 'material-ui/MenuItem';
|
||||
import Divider from 'material-ui/Divider';
|
||||
import ReactDOM from 'react-dom';
|
||||
import ElectronMenuImplementation from './ElectronMenuImplementation';
|
||||
import MaterialUIMenuImplementation from './MaterialUIMenuImplementation';
|
||||
@@ -37,7 +35,9 @@ export default class GDIconMenu extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
_onTouchTap = () => {
|
||||
_onTouchTap = (e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if (!this.iconMenu) return;
|
||||
|
||||
const node = ReactDOM.findDOMNode(this.iconMenu);
|
||||
|
@@ -20,12 +20,16 @@ export default class Window {
|
||||
}
|
||||
|
||||
const browserWindow = electron.remote.getCurrentWindow();
|
||||
try {
|
||||
browserWindow.setBounds({
|
||||
x: Math.round(x / scaleFactor),
|
||||
y: Math.round(y / scaleFactor),
|
||||
width: Math.round(width / scaleFactor),
|
||||
height: Math.round(height / scaleFactor),
|
||||
});
|
||||
} catch(err) {
|
||||
console.warn("Unable to change window bounds", err);
|
||||
}
|
||||
this.show();
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
var app = require('electron').app; // Module to control application life.
|
||||
var BrowserWindow = require('electron').BrowserWindow; // Module to create native browser window.
|
||||
var electron = require('electron');
|
||||
var app = electron.app; // Module to control application life.
|
||||
var BrowserWindow = electron.BrowserWindow; // Module to create native browser window.
|
||||
var parseArgs = require('minimist');
|
||||
var isDev = require('electron-is').dev();
|
||||
|
||||
@@ -70,4 +71,4 @@ app.on('ready', function() {
|
||||
// when you should delete the corresponding element.
|
||||
mainWindow = null;
|
||||
});
|
||||
});
|
||||
});
|
@@ -17,7 +17,7 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "1.4.16",
|
||||
"electron": "1.6.8",
|
||||
"electron-builder": "16.8.2",
|
||||
"minimist": "^1.2.0",
|
||||
"shelljs": "^0.7.7"
|
||||
|
Reference in New Issue
Block a user