From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: run_window_configuration_change_hook Date: Mon, 18 Apr 2011 15:15:54 +0200 Message-ID: <4DAC398A.204@gmx.at> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1303132573 14724 80.91.229.12 (18 Apr 2011 13:16:13 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 18 Apr 2011 13:16:13 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 18 15:16:08 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QBoJA-0005My-AI for ged-emacs-devel@m.gmane.org; Mon, 18 Apr 2011 15:16:04 +0200 Original-Received: from localhost ([::1]:44708 helo=lists2.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QBoJ9-0006hJ-HP for ged-emacs-devel@m.gmane.org; Mon, 18 Apr 2011 09:16:03 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:58094) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QBoJ6-0006gp-EB for emacs-devel@gnu.org; Mon, 18 Apr 2011 09:16:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QBoJ5-0005BV-DK for emacs-devel@gnu.org; Mon, 18 Apr 2011 09:16:00 -0400 Original-Received: from mailout-de.gmx.net ([213.165.64.23]:36695) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1QBoJ4-0005Am-WA for emacs-devel@gnu.org; Mon, 18 Apr 2011 09:15:59 -0400 Original-Received: (qmail invoked by alias); 18 Apr 2011 13:15:55 -0000 Original-Received: from 62-47-56-147.adsl.highway.telekom.at (EHLO [62.47.56.147]) [62.47.56.147] by mail.gmx.net (mp037) with SMTP; 18 Apr 2011 15:15:55 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1/pTPgFJuvppMljLd73e+LLTN2XwBCEjAMBa/XIqA VPWRItXXwREe8f User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) X-Y-GMX-Trusted: 0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 213.165.64.23 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:138545 Archived-At: With current trunk and emacs -Q evaluate the following code: (let* ((old-window (selected-window)) (new-frame (make-frame)) (new-window (frame-root-window new-frame))) (set-window-buffer new-window (other-buffer)) (select-window old-window) (let ((current-buffer (window-buffer new-window))) (split-window new-window) (cons current-buffer (current-buffer)))) From the return value I can deduce that `split-window' changes the current buffer. This would be incorrect. IIUC the behavior is due to the fact that run_window_configuration_change_hook if (SELECTED_FRAME () != f) { record_unwind_protect (select_frame_norecord, Fselected_frame ()); select_frame_norecord (frame); } /* Use the right buffer. Matters when running the local hooks. */ if (current_buffer != XBUFFER (Fwindow_buffer (Qnil))) { record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); Fset_buffer (Fwindow_buffer (Qnil)); } ... unbind_to (count, Qnil); first restores the current buffer and afterwards the selected frame which can make another buffer current. Inverting the order of the two clauses resolves the problem for me. martin