Skip to content

Commit

Permalink
Merge pull request #8023 from facchinm/new_behaviour_osx_close
Browse files Browse the repository at this point in the history
[macOS] Modify behaviour when last editor gets closed
  • Loading branch information
facchinm committed Nov 23, 2018
2 parents c1d9c58 + 36da22c commit c311a94
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
8 changes: 4 additions & 4 deletions app/src/processing/app/Base.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
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;
Expand Down Expand Up @@ -931,15 +932,14 @@ public boolean handleClose(Editor editor) {
}

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;
Expand Down Expand Up @@ -974,7 +974,7 @@ public boolean handleQuit() {
// 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);
Expand Down
16 changes: 16 additions & 0 deletions app/src/processing/app/macosx/ThinkDifferent.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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) {
Expand Down

0 comments on commit c311a94

Please sign in to comment.