From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: mouse-autoselect-window raises frames Date: Thu, 11 Oct 2007 09:52:07 -0400 Message-ID: References: <470D3993.8040003@gmx.at> <470DE3B2.7010109@gmx.at> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1192110785 30813 80.91.229.12 (11 Oct 2007 13:53:05 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 11 Oct 2007 13:53:05 +0000 (UTC) Cc: emacs-devel@gnu.org To: martin rudalics Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 11 15:53:04 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IfySr-0004YP-PI for ged-emacs-devel@m.gmane.org; Thu, 11 Oct 2007 15:52:38 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IfySl-00086b-V6 for ged-emacs-devel@m.gmane.org; Thu, 11 Oct 2007 09:52:31 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IfySj-00085I-0a for emacs-devel@gnu.org; Thu, 11 Oct 2007 09:52:29 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IfySh-00082w-Dl for emacs-devel@gnu.org; Thu, 11 Oct 2007 09:52:28 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IfySh-00082n-AO for emacs-devel@gnu.org; Thu, 11 Oct 2007 09:52:27 -0400 Original-Received: from x-132-204-254-24.xtpr.umontreal.ca ([132.204.254.24] helo=ceviche.home) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IfySY-0000n8-VR for emacs-devel@gnu.org; Thu, 11 Oct 2007 09:52:27 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 6182AB41BB; Thu, 11 Oct 2007 09:52:07 -0400 (EDT) In-Reply-To: <470DE3B2.7010109@gmx.at> (martin rudalics's message of "Thu\, 11 Oct 2007 10\:49\:54 +0200") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux) X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:80605 Archived-At: >>>> I started to see frames raised while I was just moving my mouse. >>>> Placing `debug-on-entry' on `raise-frame' showed the problem to be: >>>> >>>> Debugger entered--entering a function: >>>> * raise-frame(#) >>>> select-frame-set-input-focus(#) >>>> handle-select-window((select-window (#))) >>>> call-interactively(handle-select-window nil nil) >>>> >>>> I think the problem is that handle-select-window shouldn't call >>>> select-frame-set-input-focus. It should maybe call x-focus-frame instead. >>> Would that really be less embarassing? >> I'm not sure I understand what you mean. > I thought you were embarassed by seeing frames raised and wanted to know > whether you find just focussing frames less embarassing. The way I've usually heard "embarrassing" used, is to mean "something of which you're ashamed". I guess you use it here more like "annoying"? >>> What are the values of `mouse-autoselect-window' and `focus-follows-mouse' >>> on your system? >> Both, but that's not relevant: handle-select-window should never call >> "raise-frame". > It calls `select-frame-set-input-focus' and the latter raises the frame. Right, which is why it shouldn't call select-frame-set-input-focus. > If you think it shouldn't, let's change `select-frame-set-input-focus' > to do exactly what its name says and look what happens. The docstring of select-frame-set-input-focus says pretty clearly that it raises the frame, so it's probably better to leave it unchanged. > (note that `x-focus-frame' is not available on Windows installs) Are you saying that under w32, you used select-frame + raise-frame (the only thing select-frame-set-input-focus does in this case) as a substitute for x-focus-frame? > I changed the behavior of mouse-autoselection because people started to > complain about modelines getting highlighted on frames that didn't get > the focus. When debugging this I found out that I couldn't schedule a > select_window event without also producing a switch_frame event. Hence > I had to deal somehow with selected frames that did not get the focus. Yes, I loosely followed that thread. > If you don't want the new behavior you currently can switch-off mouse > autoselection or set `focus-follows-mouse' to nil. I do want mouse autoselection. And changing focus-follows-mouse has no effect w.r.t this problem. The problem is very simple: select-window events (currently) are only generated by mouse movement and Emacs should *never* call raise-frame in response to a mouse-movement (except when asked very specifically, such as when the frame is marked auto-raise). > Inherently, > `focus-follows-mouse' should be able to distinguish window management > policies that shift input focus to another frame when the mouse enters > it and policies that addditionally raise the frame whenever the mouse > enters it. Hence, we could raise the frame in `handle-select-window' > iff `focus-follows-mouse' eqs some value 'raise and x-focus the frame > otherwise (I'm afraid the latter won't make any difference on Windows). > Otherwise, we could consider a new variable `mouse-autoselect-frame' to > customize the behavior of this. If the window-manager wants to raise the window in order to give it focus, that's "OK" (it would piss me off, but that's why I don't use such a window manager). But it's not OK for Emacs to do that. Stefan