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:
commit
c311a94e7b
@ -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);
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user