diff options
| author | Glenn Morris | 2016-02-27 11:05:10 -0800 |
|---|---|---|
| committer | Glenn Morris | 2016-02-27 11:05:10 -0800 |
| commit | 4e461281317f4d542af18a701cf2e4c5a3205dd3 (patch) | |
| tree | 8030d3a1c55d825dd5d56c3ee626d2c11eca80f5 | |
| parent | 9e078e592f02108c3b27c66513da4696b09e8125 (diff) | |
| download | emacs-4e461281317f4d542af18a701cf2e4c5a3205dd3.tar.gz emacs-4e461281317f4d542af18a701cf2e4c5a3205dd3.zip | |
* nextstep/WISHLIST: Merge into etc/TODO and remove.
* etc/TODO: Merge in items from nextstep/WISHLIST.
* nextstep/README: Update for this change.
| -rw-r--r-- | etc/TODO | 243 | ||||
| -rw-r--r-- | nextstep/README | 4 | ||||
| -rw-r--r-- | nextstep/WISHLIST | 247 |
3 files changed, 239 insertions, 255 deletions
| @@ -675,15 +675,242 @@ from the emacsclient process. | |||
| 675 | 675 | ||
| 676 | ** NeXTstep port | 676 | ** NeXTstep port |
| 677 | 677 | ||
| 678 | *** Missing features | ||
| 679 | |||
| 680 | This sections contains features found in other official Emacs ports. | ||
| 681 | |||
| 682 | **** Support for "xwidget" | ||
| 683 | |||
| 684 | Emacs 25 has support for "xwidgets", a system to include operating | ||
| 685 | system components into an Emacs buffer. The components range from | ||
| 686 | simple buttons to "webkit" (effectively, a web browser). | ||
| 687 | |||
| 688 | Currently, "xwidget" only works for the "gtk+" framework but it is | ||
| 689 | designed to be compatible with multiple Emacs ports. | ||
| 690 | |||
| 691 | **** Respect `frame-inhibit-implied-resize' | ||
| 692 | |||
| 693 | When the variable `frame-inhibit-implied-resize' is non-nil, frames | ||
| 694 | should not be resized when operations like changing font or toggling | ||
| 695 | the tool bar is performed. | ||
| 696 | |||
| 697 | Unfortunately, the tool bar (and possible other operations) always | ||
| 698 | resize the frame. | ||
| 699 | |||
| 700 | **** Support `proced' (implement `process-attributes') | ||
| 701 | |||
| 702 | Unfortunately, a user-level process like Emacs does not have the | ||
| 703 | privileges to get information about other processes under OS X. | ||
| 704 | |||
| 705 | There are other ways to do this: | ||
| 706 | |||
| 707 | 1) Spawn "ps" and parse the output ("ps" has superuser privileges). | ||
| 708 | |||
| 709 | 2) Sign Emacs as part of the distribution process. | ||
| 710 | |||
| 711 | 3) Ask the user to self-sign Emacs, if this feature is of interest. | ||
| 712 | |||
| 713 | Anders Lindgren <andlind@gmail.com> has implemented | ||
| 714 | `process-attributes' for OS X, which currently only work when | ||
| 715 | running Emacs as root. | ||
| 716 | |||
| 717 | See this article by Bozhidar Batsov for an overview of Proced: | ||
| 718 | http://emacsredux.com/blog/2013/05/02/manage-processes-with-proced/ | ||
| 719 | |||
| 720 | **** Tooltip properties | ||
| 721 | |||
| 722 | Tooltip properties like the background color and font are hard-wired, | ||
| 723 | even though Emacs allows a user to customize such features. | ||
| 724 | |||
| 725 | *** New features | ||
| 726 | |||
| 727 | This section contains features unique to Nextstep and/or OS X. | ||
| 728 | |||
| 729 | **** PressAndHold for writing accented character | ||
| 730 | |||
| 731 | On OS X, many application support the press and hold pattern to | ||
| 732 | invoke a menu of accented characters. (See example at | ||
| 733 | https://support.apple.com/en-us/HT201586 .) | ||
| 734 | |||
| 735 | Currently, this doesn't work in Emacs. | ||
| 736 | |||
| 737 | Note that "ns-win.el" explicitly disables this. | ||
| 738 | |||
| 739 | Note: This feature might not be allowed to be implemented until also | ||
| 740 | implemented in Emacs for a free system. | ||
| 741 | |||
| 742 | **** Floating scroll bars | ||
| 743 | |||
| 744 | In modern OS X applications, the scroll bar often floats over the | ||
| 745 | content, and is invisible unless actually used. This makes the user | ||
| 746 | interface less cluttered and more area could be used to contain text. | ||
| 747 | |||
| 748 | With floating scroll bars, the user interface would look like it does | ||
| 749 | when they are disabled today. However, they will be made visible when | ||
| 750 | a scroll action is initiated, e.g. by putting two fingers on a | ||
| 751 | trackpad. | ||
| 752 | |||
| 753 | Note: This feature might not be allowed to be implemented until also | ||
| 754 | implemented in Emacs for a free system. | ||
| 755 | |||
| 756 | *** Features from the "mac" port | ||
| 757 | |||
| 758 | This section contains features available in the "mac" Emacs port. | ||
| 759 | |||
| 760 | As the "mac" port (as of this writing) isn't an official Emacs port, | ||
| 761 | it might contain features not following the FSF rule "must exist on | ||
| 762 | free systems". | ||
| 763 | |||
| 764 | The "mac" port is based on the Emacs 22 C-based Carbon interface. | ||
| 765 | It has been maintained in parallel to the official Cocoa-based NS | ||
| 766 | interface. The Carbon interface has been enhanced, and a number of the | ||
| 767 | features of that interface could be implemented NS. | ||
| 768 | |||
| 769 | **** Smooth scrolling -- maybe not a good idea | ||
| 770 | |||
| 771 | Today, by default, scrolling with a trackpad makes the text move in | ||
| 772 | steps of five lines. (Scrolling with SHIFT scrolls one line at a time.) | ||
| 773 | |||
| 774 | The "mac" port provides smooth, pixel-based, scrolling. This is a very | ||
| 775 | popular features. However, there are drawbacks to this method: what | ||
| 776 | happens if only a fraction of a line is visible at the top of a | ||
| 777 | window, is the partially visible text considered part of the window or | ||
| 778 | not? (Technically, what should `window-start' return.) | ||
| 779 | |||
| 780 | An alternative would be to make one-line scrolling the default on NS | ||
| 781 | (or in Emacs in general). | ||
| 782 | |||
| 783 | Note: This feature might not be allowed to be implemented until also | ||
| 784 | implemented in Emacs for a free system. | ||
| 785 | |||
| 786 | **** Mouse gestures | ||
| 787 | |||
| 788 | The "mac" port defines the gestures `swipe-left/right/up/down', | ||
| 789 | `magnify-up/down', and `rotate-left/right'. | ||
| 790 | |||
| 791 | It also binds the magnification commands to change the font | ||
| 792 | size. (This should be not be done in a specific interface, instead | ||
| 793 | Emacs should do this binding globally.) | ||
| 794 | |||
| 795 | Note: This feature might not be allowed to be implemented until also | ||
| 796 | implemented in Emacs for a free system. | ||
| 797 | |||
| 798 | **** Synthesize bold fonts | ||
| 799 | |||
| 800 | *** Open issues | ||
| 801 | |||
| 802 | This section contains issues where there is an ongoing debate. | ||
| 803 | |||
| 804 | **** Key bindings of CMD and ALT | ||
| 805 | |||
| 806 | Currently in the "ns" port, ALT is bound to Meta and CMD is bound to | ||
| 807 | Super -- allowing the user to use typical OS X commands like CMD-A to | ||
| 808 | mark everything. | ||
| 809 | |||
| 810 | Unfortunately, when using an international keyboard, you can't type | ||
| 811 | normal characters like "(" etc. | ||
| 812 | |||
| 813 | There are many alternative key bindings. One solution is to bind CMD | ||
| 814 | to Meta and pass ALT to the system. In fact, this is what Emacs did up | ||
| 815 | to, and including, version 22. Also, this is how the "mac" port binds | ||
| 816 | the keys. | ||
| 817 | |||
| 818 | One could envision asymmetrical variants as well, however, this is | ||
| 819 | inappropriate for the default setting. | ||
| 820 | |||
| 821 | See the discussion on emacs-devel: | ||
| 822 | https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01575.html | ||
| 823 | https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00008.html | ||
| 824 | |||
| 825 | *** Internal development features | ||
| 826 | |||
| 827 | **** Regression test system (or at least a checklist) | ||
| 828 | |||
| 829 | Today, after each change to the user interface, Emacs must be manually | ||
| 830 | tested. Often, small details are overlooked ("Oh, I didn't test | ||
| 831 | toggling the tool-bar in one of the full screen modes, when multiple | ||
| 832 | frame were open -- silly me.") | ||
| 833 | |||
| 834 | It would be an enormous help if this could be tested automatically. | ||
| 835 | Many features are generic, however, the NS interface provides a number | ||
| 836 | of unique features. | ||
| 837 | |||
| 838 | **** Existing packages | ||
| 839 | |||
| 840 | Note that there is a generic UI test named frame-test.el, see | ||
| 841 | http://debbugs.gnu.org/21415#284 . | ||
| 842 | The NS interface passes this, with the exception of two toolbar-related errors. | ||
| 843 | |||
| 844 | **** Anders frame test | ||
| 845 | |||
| 846 | Anders Lindgren <andlind@gmail.com> has implemented some (very basic) | ||
| 847 | tests for full screen, toolbar, and auto-hiding the menu bar. | ||
| 848 | |||
| 849 | **** Make sure all build variants work | ||
| 850 | |||
| 851 | Emacs can be build in a number of different ways. For each feature, | ||
| 852 | consider if is really is "NS" specific, or if it should be applied to | ||
| 853 | all build versions. | ||
| 854 | |||
| 855 | - With the "NS" interface. This is the normal way to build Emacs on OS X. | ||
| 856 | |||
| 857 | - With the "X11" interface. On OS X, this is mainly of interest to | ||
| 858 | developers of Emacs to get a "reference" interface implementations. | ||
| 859 | However, it might be of interest for people working remotely, as X11 | ||
| 860 | applications can be used over a network connection. | ||
| 861 | |||
| 862 | - Console only. | ||
| 863 | |||
| 678 | *** Bugs | 864 | *** Bugs |
| 679 | 865 | ||
| 866 | **** Incorrect translation of Super modifier with Ctrl or Meta on OS X | ||
| 867 | |||
| 868 | When pressing `M-s-a', Emacs replies "M-s-å is undefined". What | ||
| 869 | happened is a mix of Emacs view that Meta and Super has been pressed, | ||
| 870 | and OS X view that ALT-a should yield "å". | ||
| 871 | |||
| 872 | The bug reports suggests two different patched, unfortunately, none | ||
| 873 | work properly. For example: | ||
| 874 | |||
| 875 | Use a Swedish keyboard layout | ||
| 876 | |||
| 877 | (setq ns-alternate-modifier nil) | ||
| 878 | |||
| 879 | "CMD-ALT-9" | ||
| 880 | |||
| 881 | Today, this correctly yields that s-] is undefined. With the either | ||
| 882 | of the two patches, Emacs responds that s-9 was pressed. | ||
| 883 | |||
| 884 | More investigation is needed to fix this problem. | ||
| 885 | |||
| 886 | Links: | ||
| 887 | - http://debbugs.gnu.org/19977 | ||
| 888 | - http://debbugs.gnu.org/21330 | ||
| 889 | - http://debbugs.gnu.org/21551 | ||
| 890 | |||
| 891 | **** Toggling the toolbar in fullheight or maximized modes | ||
| 892 | |||
| 893 | The toolbar, in the NS interface, is not considered part of the text | ||
| 894 | area. When it is toggled, the Emacs frame change height accordingly. | ||
| 895 | |||
| 896 | Unfortunately, this also occurs when the frame is in fullheight or | ||
| 897 | maximized modes (N.B. this is not the same as "fullscreen"). The | ||
| 898 | effect is that the full frame size either increases (stretching down | ||
| 899 | below the lower edge of the screen) or decreases (leaving space | ||
| 900 | between the lower edge of the frame and the lower edge of the screen). | ||
| 901 | |||
| 902 | A better solution would be for the frame to retain its size, | ||
| 903 | i.e. change the text area. | ||
| 904 | |||
| 905 | This is related to the `frame-inhibit-implied-resize' issue. | ||
| 906 | |||
| 680 | **** The event loop does not redraw. | 907 | **** The event loop does not redraw. |
| 681 | A problem is that redraw don't happen during resize, | 908 | A problem is that redraw don't happen during resize, |
| 682 | because we can't break out from the NSapp loop during resize. | 909 | because we can't break out from the NSapp loop during resize. |
| 683 | There was a special trick to detect mouse press in the lower right | 910 | There was a special trick to detect mouse press in the lower right |
| 684 | corner and track mouse movements, but this did not work well, and was | 911 | corner and track mouse movements, but this did not work well, and was |
| 685 | not scalable to the new Lion "resize on every window edge" behavior. | 912 | not scalable to the new Lion "resize on every window edge" behavior. |
| 686 | [As of trunk r109635, 2012-08-15, the event loop no longer polls.] | 913 | [As of trunk r109635, 2012-08-15, the event loop no longer polls.] |
| 687 | 914 | ||
| 688 | **** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back | 915 | **** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back |
| 689 | up on top of all others (probably fixed in bug#17439) | 916 | up on top of all others (probably fixed in bug#17439) |
| @@ -1329,3 +1556,7 @@ GNU General Public License for more details. | |||
| 1329 | 1556 | ||
| 1330 | You should have received a copy of the GNU General Public License | 1557 | You should have received a copy of the GNU General Public License |
| 1331 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | 1558 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
| 1559 | |||
| 1560 | ;; Local Variables: | ||
| 1561 | ;; coding: utf-8 | ||
| 1562 | ;; End: | ||
diff --git a/nextstep/README b/nextstep/README index 7724afa43bf..026a048e9d4 100644 --- a/nextstep/README +++ b/nextstep/README | |||
| @@ -101,5 +101,5 @@ interface. | |||
| 101 | 101 | ||
| 102 | The INSTALL file in this directory for compilation instructions. | 102 | The INSTALL file in this directory for compilation instructions. |
| 103 | 103 | ||
| 104 | The WISHLIST file in this directory for a list of ideas for future | 104 | The Nextstep section in the etc/TODO file for a list of ideas for |
| 105 | development of the NS interface. | 105 | future development. |
diff --git a/nextstep/WISHLIST b/nextstep/WISHLIST deleted file mode 100644 index 1c4b9e2deb4..00000000000 --- a/nextstep/WISHLIST +++ /dev/null | |||
| @@ -1,247 +0,0 @@ | |||
| 1 | -*- org -*- | ||
| 2 | |||
| 3 | Wish list for the "NS" OS X Emacs port | ||
| 4 | -------------------------------------- | ||
| 5 | |||
| 6 | Note: This document is written using "org-mode", a plain-text | ||
| 7 | format supporting outlines. To expand a heading, press TAB. To | ||
| 8 | expand all headings and subheadings, press S-TAB until Emacs | ||
| 9 | responds "SHOW ALL". | ||
| 10 | |||
| 11 | * Introduction | ||
| 12 | |||
| 13 | This is a wishlist for future development of the "NS" Emacs user | ||
| 14 | interface whose primary use is the official Emacs version on OS X. | ||
| 15 | |||
| 16 | This list should be seen as a complement to the bug- and wishlist on | ||
| 17 | [[http://debbugs.gnu.org/cgi/pkgreport.cgi?package%3Demacs][debbugs]], the Emacs bug tracker. | ||
| 18 | |||
| 19 | * Missing features | ||
| 20 | |||
| 21 | This sections contains features found in other official Emacs ports. | ||
| 22 | |||
| 23 | ** Support for "xwidget" | ||
| 24 | |||
| 25 | Emacs 25 has support for "xwidgets", a system to include operating | ||
| 26 | system components into an Emacs buffer. The components range from | ||
| 27 | simple buttons to "webkit" (effectively, a web browser). | ||
| 28 | |||
| 29 | Currently, "xwidget" only works for the "gtk+" framework but it is | ||
| 30 | designed to be compatible with multiple Emacs ports. | ||
| 31 | |||
| 32 | ** Respect `frame-inhibit-implied-resize' | ||
| 33 | |||
| 34 | When the variable `frame-inhibit-implied-resize' is non-nil, frames | ||
| 35 | should not be resized when operations like changing font or toggling | ||
| 36 | the tool bar is performed. | ||
| 37 | |||
| 38 | Unfortunately, the tool bar (and possible other operations) always | ||
| 39 | resize the frame. | ||
| 40 | |||
| 41 | ** Support `proced' (implement `process-attributes') | ||
| 42 | |||
| 43 | Unfortunately, a user-level process like Emacs does not have the | ||
| 44 | privileges to get information about other processes under OS X. | ||
| 45 | |||
| 46 | There are other ways to do this: | ||
| 47 | |||
| 48 | 1) Spawn "ps" and parse the output ("ps" has superuser privileges). | ||
| 49 | |||
| 50 | 2) Sign Emacs as part of the distribution process. | ||
| 51 | |||
| 52 | 3) Ask the user to self-sign Emacs, if this feature is of interest. | ||
| 53 | |||
| 54 | Anders Lindgren <andlind@gmail.com> has implemented | ||
| 55 | `process-attributes' for OS X -- which currently only work when | ||
| 56 | running Emacs as root. | ||
| 57 | |||
| 58 | [[http://emacsredux.com/blog/2013/05/02/manage-processes-with-proced/][See this article by Bozhidar Batsov for an overview of Proced.]] | ||
| 59 | |||
| 60 | ** Tooltip properties | ||
| 61 | |||
| 62 | Tooltip properties like the background color and font are hard wired, | ||
| 63 | even though Emacs allow a user to customize such features. | ||
| 64 | |||
| 65 | * New features | ||
| 66 | |||
| 67 | This section contains features unique to the NS and/or OS X. | ||
| 68 | |||
| 69 | ** PressAndHold for writing accented character | ||
| 70 | |||
| 71 | On OS X, many application supports the press and hold pattern to | ||
| 72 | invoke a menu of accented characters. (See example at [[https://support.apple.com/en-us/HT201586][Apple]].) | ||
| 73 | |||
| 74 | Currently, this doesn't work in Emacs. | ||
| 75 | |||
| 76 | Note that "ns-win.el" explicitly disables this. | ||
| 77 | |||
| 78 | Note: This feature might not be allowed to be implemented until also | ||
| 79 | implemented in Emacs for a free system. | ||
| 80 | |||
| 81 | ** Floating scroll bars | ||
| 82 | |||
| 83 | In modern OS X applications, the scroll bar often float over the | ||
| 84 | content, and is invisible unless actually used. This makes user | ||
| 85 | interface less cluttered and more area could be used to contain text. | ||
| 86 | |||
| 87 | With floating scroll bars, the user interface would look like it does | ||
| 88 | when they are disabled today. However, they will be made visible when | ||
| 89 | a scroll action is initiated, e.g. by putting two fingers on a | ||
| 90 | trackpad. | ||
| 91 | |||
| 92 | Note: This feature might not be allowed to be implemented until also | ||
| 93 | implemented in Emacs for a free system. | ||
| 94 | |||
| 95 | * Features from the "mac" port | ||
| 96 | |||
| 97 | This section contains features available in the "mac" Emacs port. | ||
| 98 | |||
| 99 | As the "mac" port (as of this writing) isn't an official Emacs port, | ||
| 100 | it might contain features not following the FSF rule "must exist on | ||
| 101 | free systems". | ||
| 102 | |||
| 103 | The "mac" port is based on the Emacs 22 C-based Carbon interface. It | ||
| 104 | has been maintained in parallel to the official Cocoa-based NS | ||
| 105 | interface. The Carbon interface has been enhanced, and a number of the | ||
| 106 | features of that interface could be implemented NS. | ||
| 107 | |||
| 108 | ** Smooth scrolling -- maybe not a good idea | ||
| 109 | |||
| 110 | Today, by default, scrolling with a trackpad makes the text move in | ||
| 111 | steps of five lines. (Scrolling with SHIFT scrolls one line at a | ||
| 112 | time.) | ||
| 113 | |||
| 114 | The "mac" port provides smooth, pixel-based, scrolling. This is a very | ||
| 115 | popular features. However, there are drawbacks to this method: what | ||
| 116 | happens if only a fraction of a line is visible at the top of a | ||
| 117 | window, is the partially visible text considered part of the window or | ||
| 118 | not? (Technically, what should `window-start' return.) | ||
| 119 | |||
| 120 | An alternative would be to make one-line scrolling the default on NS | ||
| 121 | (or in Emacs in general). | ||
| 122 | |||
| 123 | Note: This feature might not be allowed to be implemented until also | ||
| 124 | implemented in Emacs for a free system. | ||
| 125 | |||
| 126 | ** Mouse gestures | ||
| 127 | |||
| 128 | The "mac" port defines the gestures `swipe-left/right/up/down', | ||
| 129 | `magnify-up/down', and `rotate-left/right'. | ||
| 130 | |||
| 131 | It also binds the magnification commands to change the font | ||
| 132 | size. (This should be not be done in a specific interface, instead | ||
| 133 | Emacs should do this binding globally.) | ||
| 134 | |||
| 135 | Note: This feature might not be allowed to be implemented until also | ||
| 136 | implemented in Emacs for a free system. | ||
| 137 | |||
| 138 | ** Synthesize bold fonts | ||
| 139 | |||
| 140 | * Open issues | ||
| 141 | |||
| 142 | This section contains issues where there is an ongoing debate. | ||
| 143 | |||
| 144 | ** Key bindings of CMD and ALT | ||
| 145 | |||
| 146 | Currently in the "ns" port, ALT is bound to Meta and CMD is bound to | ||
| 147 | Super -- allowing the user to use typical OS X commands like CMD-A to | ||
| 148 | mark everything. | ||
| 149 | |||
| 150 | Unfortunately, when using an international keyboard, you can't type | ||
| 151 | normal characters like "(" etc. | ||
| 152 | |||
| 153 | There are many alternative key bindings. One solution is to bind CMD | ||
| 154 | to Meta and pass ALT to the system. In fact, this is what Emacs did up | ||
| 155 | to, and including, version 22. Also, this is how the "mac" port binds | ||
| 156 | the keys. | ||
| 157 | |||
| 158 | One could envision asymmetrical variants as well, however, this is | ||
| 159 | inappropriate for the default setting. | ||
| 160 | |||
| 161 | See the discussion on emacs-devel [[https://lists.gnu.org/archive/html/emacs-devel/2015-12/msg01575.html][part 1]] and [[https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00008.html][part 2]]. | ||
| 162 | |||
| 163 | * Bugs | ||
| 164 | |||
| 165 | This sections contains a small selection of bugs which are hard to | ||
| 166 | fix. For other bugs, see the official bug tracker debbugs.gnu.org. | ||
| 167 | |||
| 168 | ** Incorrect translation of Super modifier with Ctrl or Meta on OS X | ||
| 169 | |||
| 170 | When pressing `M-s-a', Emacs replies "M-s-å is undefined". What | ||
| 171 | happened is a mix of Emacs view that Meta and Super has been pressed, | ||
| 172 | and OS X view that ALT-a should yield "å". | ||
| 173 | |||
| 174 | The bug reports suggests two different patched, unfortunately, none | ||
| 175 | work properly. For example: | ||
| 176 | |||
| 177 | Use a Swedish keyboard layout | ||
| 178 | |||
| 179 | (setq ns-alternate-modifier nil) | ||
| 180 | |||
| 181 | "CMD-ALT-9" | ||
| 182 | |||
| 183 | Today, this correctly yields that s-] is undefined. With the either | ||
| 184 | of the two patches, Emacs responds that s-9 was pressed. | ||
| 185 | |||
| 186 | More investigation is needed to fix this problem. | ||
| 187 | |||
| 188 | Links: | ||
| 189 | - [[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D19977][bug#19977]] | ||
| 190 | - [[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D21330][bug#21330]] | ||
| 191 | - [[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D21551][bug#21551]] | ||
| 192 | |||
| 193 | ** Toggline the toolbar in fullheight or maximized modes | ||
| 194 | |||
| 195 | The toolbar, in the NS interface, is not considered part of the text | ||
| 196 | area. When it is toggled, the Emacs frame change height accordingly. | ||
| 197 | |||
| 198 | Unfortunately, this also occurs when the frame is in fullheight or | ||
| 199 | maximized modes (N.B. this is not the same as "fullscreen"). The | ||
| 200 | effect is that the full frame size either increases (stretching down | ||
| 201 | below the lower edge of the screen) or decreases (leaving space | ||
| 202 | between the lower edge of the frame and the lower edge of the screen). | ||
| 203 | |||
| 204 | A better solution would be for the frame to retain its size, | ||
| 205 | i.e. change the text area. | ||
| 206 | |||
| 207 | This is related to the `frame-inhibit-implied-resize' issue. | ||
| 208 | |||
| 209 | * Internal development features | ||
| 210 | |||
| 211 | ** Regression test system (or at least a checklist) | ||
| 212 | |||
| 213 | Today, after each change to the user interface, Emacs must be manually | ||
| 214 | tested. Often, small details are overlooked ("Oh, I didn't test | ||
| 215 | toggling the tool-bar in one of the full screen modes, when multiple | ||
| 216 | frame were open -- silly me.") | ||
| 217 | |||
| 218 | It would be an enormous help if this could be tested automatically. | ||
| 219 | Many features are generic, however, the NS interface provides a number | ||
| 220 | of unique features. | ||
| 221 | |||
| 222 | *** Existing packages | ||
| 223 | |||
| 224 | Note that there is a generic UI test named "[[http://debbugs.gnu.org/cgi/bugreport.cgi?bug%3D21415#284][frame-test.el]]". The NS | ||
| 225 | interface pass this, with the exception of two toolbar related | ||
| 226 | errors. | ||
| 227 | |||
| 228 | *** Anders frame test | ||
| 229 | |||
| 230 | Anders Lindgren <andlind@gmail.com> has implemented some (very basic) | ||
| 231 | tests for full screen, toolbar, and auto-hiding the menu bar. | ||
| 232 | |||
| 233 | ** Make sure all build variants work | ||
| 234 | |||
| 235 | Emacs can be build in a number of different ways. For each feature, | ||
| 236 | consider if is really is "NS" specific, or if it should be applied to | ||
| 237 | all build versions. | ||
| 238 | |||
| 239 | - With the "NS" interface. This is the normal way to build Emacs on | ||
| 240 | OS X. | ||
| 241 | |||
| 242 | - With the "X11" interface. On OS X, this is mainly of interest to | ||
| 243 | developers of Emacs to get a "reference" interface implementations. | ||
| 244 | However, it might be of interest for people working remotely, as X11 | ||
| 245 | applications can be used over a network connection. | ||
| 246 | |||
| 247 | - Console only. | ||