From 2465372bd4de91649b8eb12714818bddd9547ed7 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Tue, 3 Apr 2012 16:34:01 -0700 Subject: [PATCH 1/6] Multi-cursor scrolling is based on the last created cursor --- spec/app/editor-spec.coffee | 4 ++-- src/app/cursor.coffee | 2 +- src/app/editor.coffee | 4 ---- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index ffbebd862..c3496b671 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -677,8 +677,8 @@ describe "Editor", -> setEditorWidthInChars(editor, 20) setEditorHeightInChars(editor, 10) editor.setCursorBufferPosition([11,0]) - editor.addCursorAtBufferPosition([0,0]) editor.addCursorAtBufferPosition([6,50]) + editor.addCursorAtBufferPosition([0,0]) window.advanceClock() scrollHandler = spyOn(editor, 'scrollVertically') @@ -701,7 +701,7 @@ describe "Editor", -> editor.moveCursorRight() window.advanceClock() - position = editor.pixelPositionForScreenPosition([0,1]) + position = editor.pixelPositionForScreenPosition([6,1]) expect(scrollHandler).toHaveBeenCalledWith(position) describe "auto indent/outdent", -> diff --git a/src/app/cursor.coffee b/src/app/cursor.coffee index df0353841..6f61da400 100644 --- a/src/app/cursor.coffee +++ b/src/app/cursor.coffee @@ -136,5 +136,5 @@ class Cursor extends View position = @editor.pixelPositionForScreenPosition(screenPosition) @css(position) - if @editor.getCursors().length == 1 or @editor.screenPositionInBounds(screenPosition) + if this == _.last(@editor.getCursors()) @editor.scrollTo(position) diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 045209419..61360caa0 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -37,7 +37,6 @@ class Editor extends View autoIndent: null lineCache: null isFocused: false - isScrolling: false initialize: ({buffer}) -> requireStylesheet 'editor.css' @@ -481,10 +480,7 @@ class Editor extends View @buffer.getMode() scrollTo: (position) -> - return if @isScrolling - @isScrolling = true _.defer => - @isScrolling = false @scrollVertically(position) @scrollHorizontally(position) From 37a9d88b48300d93a93608fb182aaa6455ea3b15 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Tue, 3 Apr 2012 17:20:48 -0700 Subject: [PATCH 2/6] Spec helper uses window's keymap --- spec/spec-helper.coffee | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/spec/spec-helper.coffee b/spec/spec-helper.coffee index 71940d5f6..1ec1e852f 100644 --- a/spec/spec-helper.coffee +++ b/spec/spec-helper.coffee @@ -13,10 +13,7 @@ beforeEach -> afterEach -> $('#jasmine-content').empty() -specsKeymap = new Keymap -specsKeymap.bindDefaultKeys() -$(window).on 'keydown', (e) -> specsKeymap.handleKeyEvent(e) -specsKeymap.bindKeys '*', 'meta-w': 'close' +window.keymap.bindKeys '*', 'meta-w': 'close' $(document).on 'close', -> window.close() # Use underscore's definition of equality for toEqual assertions From 6dc4d9bb059c5f804101635fd8a9ccaff86c3e2f Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Tue, 3 Apr 2012 17:21:13 -0700 Subject: [PATCH 3/6] Don't let atom spec bind default keys again --- spec/app/atom-spec.coffee | 5 ++--- src/app/atom.coffee | 4 ---- src/app/keymap.coffee | 4 ---- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/spec/app/atom-spec.coffee b/spec/app/atom-spec.coffee index 57b761cec..3949863c3 100644 --- a/spec/app/atom-spec.coffee +++ b/spec/app/atom-spec.coffee @@ -7,6 +7,8 @@ describe "Atom", -> waitsFor "there to be no windows", -> atom.windows.length == 0 + beforeEach -> + spyOn(Atom.prototype, "setUpKeymap") describe ".open(path)", -> beforeEach -> @@ -39,9 +41,6 @@ describe "Atom", -> beforeEach -> atom = new Atom - afterEach -> - atom.destroy() - it "adds the window to the windows array if it isn't already present", -> atom.windowOpened window atom.windowOpened window diff --git a/src/app/atom.coffee b/src/app/atom.coffee index 846376994..8f3187857 100644 --- a/src/app/atom.coffee +++ b/src/app/atom.coffee @@ -24,10 +24,6 @@ class Atom $(document).on 'keydown', @handleKeyEvent @keymap.bindDefaultKeys() - destroy: -> - $(document).off 'keydown', @handleKeyEvent - @keymap.unbindDefaultKeys() - open: (path) -> $native.open path diff --git a/src/app/keymap.coffee b/src/app/keymap.coffee index 07459f45b..9d02c540d 100644 --- a/src/app/keymap.coffee +++ b/src/app/keymap.coffee @@ -23,10 +23,6 @@ class Keymap path = $native.openDialog() atom.open(path) if path - unbindDefaultKeys: -> - $(document).unbind 'new-window', @_newWindow - $(document).unbind 'open', @_open - bindKeys: (selector, bindings) -> @bindingSets.unshift(new BindingSet(selector, bindings)) From 8667628623b2914c00d20a6f6ec806b1156ee032 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Wed, 4 Apr 2012 08:44:36 -0700 Subject: [PATCH 4/6] Remove unused array --- Atom/src/native_handler.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Atom/src/native_handler.mm b/Atom/src/native_handler.mm index cdf9d86f2..3b9fe605c 100644 --- a/Atom/src/native_handler.mm +++ b/Atom/src/native_handler.mm @@ -90,7 +90,7 @@ bool NativeHandler::Execute(const CefString& name, bool recursive = arguments[1]->GetBoolValue(); NSFileManager *fm = [NSFileManager defaultManager]; - NSArray *relativePaths = [NSArray array]; + NSArray *relativePaths = nil; NSError *error = nil; if (recursive) { @@ -140,7 +140,7 @@ bool NativeHandler::Execute(const CefString& name, bool recursive = arguments[1]->GetBoolValue(); NSFileManager *fm = [NSFileManager defaultManager]; - NSArray *relativePaths = [NSArray array]; + NSArray *relativePaths = nil; NSError *error = nil; if (recursive) { From 5d90b902c33b0384019c51d986735451240ab857 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Wed, 4 Apr 2012 09:15:24 -0700 Subject: [PATCH 5/6] Less noise --- Atom/src/client_handler.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Atom/src/client_handler.mm b/Atom/src/client_handler.mm index b0046f985..203fe0fd5 100755 --- a/Atom/src/client_handler.mm +++ b/Atom/src/client_handler.mm @@ -211,7 +211,7 @@ bool ClientHandler::OnConsoleMessage(CefRefPtr browser, { REQUIRE_UI_THREAD(); - std::cout << std::string(message) << "\n\t" << std::string(source) << ":" << line; + std::cout << std::string(message) << "\n"; return true; } From 7e22d47256b57c5de9c08d888baea4098439c148 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Wed, 4 Apr 2012 09:44:53 -0700 Subject: [PATCH 6/6] Close the dev-tools when reloading reduces memory leaks (by a lot) --- Atom/src/AtomController.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/Atom/src/AtomController.mm b/Atom/src/AtomController.mm index 880ecd06d..a4c515b82 100644 --- a/Atom/src/AtomController.mm +++ b/Atom/src/AtomController.mm @@ -88,6 +88,7 @@ isAfterJavaScript:(bool)isAfterJavaScript { if (isAfterJavaScript && type == KEYEVENT_RAWKEYDOWN && modifiers == KEY_META && code == 'R') { + _clientHandler->GetBrowser()->CloseDevTools(); _clientHandler->GetBrowser()->ReloadIgnoreCache(); return YES; }