X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_NEUTRAL X-Spam-Check-By: sourceware.org Message-ID: <5069FD14.8040705@cs.utoronto.ca> Date: Mon, 01 Oct 2012 16:29:08 -0400 From: Ryan Johnson User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: RFE: make non-x11 emacs mouse-aware References: <5069E59E DOT 606 AT cs DOT utoronto DOT ca> <5069ECE7 DOT 1030704 AT cornell DOT edu> In-Reply-To: <5069ECE7.1030704@cornell.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 01/10/2012 3:20 PM, Ken Brown wrote: > On 10/1/2012 2:49 PM, Ryan Johnson wrote: >> Hi all, esp. emacs maintainer(s), >> >> I'd like to request that the non-x11 emacs be made mouse aware. Right >> now, terminal mouse mode is broken in normal emacs because the emacs >> core doesn't recognize the resulting mouse events. You can use emacs-x11 >> in terminal mode as a heavyweight workaround, but it turns out that >> mouse awareness is controlled by the src/config.h file created by >> ./configure: >>> /* Define if you have mouse support. */ >>> /* #undef HAVE_MOUSE */ >> >> There doesn't seem to be an explicit configure switch for it (it's >> enabled indirectly by --with-x11 or --with-ns), but editing directly >> produced the desired results on a headless linux machine, with no >> undesirable side effects so far. I see no reason it shouldn't also work >> under cygwin. > > I'd be happy to do it if I could be sure there were no bad side > effects. But I never use emacs-nox, so it isn't easy for me to test > it on a long-term basis. Maybe you should build it yourself and > report back. As noted, I have tested on a headless linux machine, with no problems so far (several days). There seems to be a clean division between the window management and the mouse handling code. This makes sense, because the mouse events themselves are handled by keymaps and such, in elisp land, while the generation of those events is deeper and varies depending on their source (X11, NS, terminal). If you worry that cygwin might behave differently than linux, I could build emacs locally and test as well, but I don't expect any difference. > And can you be more specific about what you expect emacs to do with > mouse events when it's running in a terminal? I thought mintty > captured mouse events. In particular, when I run emacs-x11 under > mintty, C-h k produces no response; the cursor stays in > the minibuffer, and emacs continues to wait for me to press a key. > Running under X, however, emacs does see the mouse click in that same > situation. For another example, if I run emacs-x11 under mintty, I > can highlight text with the mouse and then paste it with > shift-insert. But again it's mintty doing the work, not emacs. On any emacs, xterm-mouse-mode puts the terminal in mouse-reporting mode and starts watching stdin for the xterm mouse escape sequences: left, right, scroll, modifier keys, anything the terminal makes available (most xterm-like terminals intercept shift + mouse, for example). You can peek in xt-mouse.el to see how mouse escapes are turned into appropriate mouse events, but that's not really important here. The issue is that emacs-nox doesn't know what to do with '' etc that it suddenly starts receiving. I suppose you could manually wire up all the various events by hand, but on emacs-x11 they're already there (even in terminal mode) and terminal-generated mouse events work out of the box. Ryan -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple