From a7fd626eb0bb850bc792c1cbbb179a952db8673e Mon Sep 17 00:00:00 2001 From: Bjorn Winckler Date: Sat, 25 Aug 2007 20:08:26 +0000 Subject: [PATCH] git-svn-id: http://macvim.googlecode.com/svn/trunk@196 96c4425d-ca35-0410-94e5-3396d5c13a8f --- README | 25 +++++++++++++++---------- TODO | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/README b/README index 241dfb592a..54115e773a 100644 --- a/README +++ b/README @@ -36,9 +36,9 @@ Weirdness: - The way delegate messages from the tab bar are handled are based on lots of assumptions on how the code works. See comments in tabView:... delegate messages in MMWindowController. -- The insertion point is automatically moved to wherever changes are made in - the text storage. To set the position manually (via setSelectedRange:), - first call endEditing on the text storage. +- [obsolete] The insertion point is automatically moved to wherever changes are + made in the text storage. To set the position manually (via + setSelectedRange:), first call endEditing on the text storage. - Delegate messages from the tab view need to be able to differentiate whether the message was sent due to the user clicking a tab with the mouse, or if the vim task initiated the change. To facilitate this, flags must be set @@ -65,13 +65,18 @@ Weirdness: sent to Vim asking it to change the "shell size". Otherwise, a message asking Vim to change the shell size might get lost and Vim and MacVim will have inconsistent states. -- gui_mch_browse() is a blocking call, but you can't put up dialogs in Cocoa - which block until the user dismisses them (it uses callbacks). This - complicates the browsing somewhat. +- gui_mch_browse() and gui_mch_dialog() are blocking calls, but you can't put + up dialogs in Cocoa which block until the user dismisses them (it uses + callbacks). This complicates the browsing somewhat. - When binding menus to :action note that that action will be used for all modes. The reason for this is that MacVim needs to be able to execute such menu items even when no windows are open (e.g. newVimWindow:) and the default menu action relies on Vim to deal with it. +- The 'help' key is treated as a special key by Cocoa; when the user presses + this key the mouse cursor changes to a question mark and the application is + put into 'context help mode'. The key down event is never sent down the + responder chain. To get around this problem we are forced to subclass + NSApplication and look for the 'help' key in sendEvent: (see MMApplication). Design decisions: @@ -120,7 +125,7 @@ Keyboard stuff: returns 1, charactersIgnoringModifiers returns . - (2) handles: Ctrl+key, enter, backspace, escape. same note on translation of Ctrl+key as above holds true. -- (3) handles: Cmd+key, arrow keys, function keys +- (3) handles: Cmd+key, arrow keys, function keys, help key - and are two different characters (the former is 0xa0) @@ -152,8 +157,8 @@ Features (!supp indicates that a feature is not supported): - Cocoa input protocols: input managers, character palette input etc. supported, marked text !supp, cocoa key bindings (DefaultKeyBinding.dict) are disabled -- Mouse: resize (vim) windows, selection, different mouse cursors !supp, - autoscrolling whilst selecting works poorly +- Mouse: resize (vim) windows, selection, different mouse cursors, + autoscrolling whilst selecting (horizontal autoscroll !supp) - Drag and Drop: drag files onto dock icon to open in tabs, drag text and files onto text view - Zoom: Command-click to zoom to fill window, otherwise only zoom height, @@ -162,6 +167,7 @@ Features (!supp indicates that a feature is not supported): higher than can fit the screen (no such restrictions on width at the moment) - Pasteboard: star-register works with the mac os x pasteboard - Open/Save dialog: use with :browse +- Gui dialogs - Fonts: bold/italic/underline traits supported, font changes with ':set gfn', or use font panel - File type associations: add more associations by editing Info.plist @@ -170,7 +176,6 @@ Features (!supp indicates that a feature is not supported): - Wide characters: but composed characters !supp - Printing: !supp - Find/Replace dialog: !supp -- Gui dialogs: !supp - External editor protocol: !supp - Services menu: some simple minded provider entries - Encodings: !supp (enc, tenc always set to utf-8) diff --git a/TODO b/TODO index 026bed2295..6168eddf67 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,5 @@ Active: -- Hollow insertion point drawing does not always work - Insertion point blinking - Build Vim (make) from Xcode project - Cmd-W in about box sends vimMenuAction: instead of performClose: @@ -54,6 +53,7 @@ Active: Pending: +- Hollow insertion point drawing does not always work - cursor in replace mode - should ignore action message if is called too often (e.g. in addNewTab:) - application:openFiles: should open in tabs in current window instead of in a