1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-03-13 10:29:35 +01:00

Merge pull request #8023 from facchinm/new_behaviour_osx_close

[macOS] Modify behaviour when last editor gets closed
This commit is contained in:
Martino Facchin 2018-11-23 12:41:01 +01:00 committed by GitHub
commit c311a94e7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 4 deletions

View File

@ -49,6 +49,7 @@ import processing.app.debug.TargetBoard;
import processing.app.debug.TargetPackage;
import processing.app.debug.TargetPlatform;
import processing.app.helpers.*;
import processing.app.helpers.OSUtils;
import processing.app.helpers.filefilters.OnlyDirs;
import processing.app.helpers.filefilters.OnlyFilesWithExtension;
import processing.app.javax.swing.filechooser.FileNameExtensionFilter;
@ -931,15 +932,14 @@ public class Base {
}
if (editors.size() == 1) {
editor.setVisible(false);
editors.remove(editor);
handleQuit();
} else {
// More than one editor window open,
// proceed with closing the current window.
editor.setVisible(false);
editor.dispose();
editors.remove(editor);
}
return true;
@ -974,7 +974,7 @@ public class Base {
// Save out the current prefs state
PreferencesData.save();
if (!OSUtils.hasMacOSStyleMenus()) {
if (!OSUtils.isMacOS()) {
// If this was fired from the menu or an AppleEvent (the Finder),
// then Mac OS X will send the terminate signal itself.
System.exit(0);

View File

@ -23,6 +23,8 @@
package processing.app.macosx;
import com.apple.eawt.*;
import com.apple.eawt.AppEvent.AppReOpenedEvent;
import processing.app.Base;
import processing.app.Editor;
@ -45,6 +47,20 @@ public class ThinkDifferent {
static public void init() {
Application application = Application.getApplication();
application.addAppEventListener(new AppReOpenedListener() {
@Override
public void appReOpened(AppReOpenedEvent aroe) {
try {
if (Base.INSTANCE.getEditors().size() == 0) {
Base.INSTANCE.handleNew();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
application.setAboutHandler(new AboutHandler() {
@Override
public void handleAbout(AppEvent.AboutEvent aboutEvent) {