From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.devel,gmane.emacs.pretest.bugs Subject: Re: Contiguous redisplay of the menu and beeps Date: Mon, 28 May 2007 09:56:50 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: sea.gmane.org 1180313821 28616 80.91.229.12 (28 May 2007 00:57:01 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 28 May 2007 00:57:01 +0000 (UTC) Cc: emacs-pretest-bug@gnu.org, MIYOSHI Masanori , emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon May 28 02:57:00 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 1HsTXf-0006yr-F1 for ged-emacs-devel@m.gmane.org; Mon, 28 May 2007 02:56:59 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HsTXe-0007mc-Sq for ged-emacs-devel@m.gmane.org; Sun, 27 May 2007 20:56:58 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HsTXb-0007m9-9i for emacs-devel@gnu.org; Sun, 27 May 2007 20:56:55 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HsTXZ-0007lx-UL for emacs-devel@gnu.org; Sun, 27 May 2007 20:56:55 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HsTXZ-0007lu-N0; Sun, 27 May 2007 20:56:53 -0400 Original-Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HsTXY-00050U-7y; Sun, 27 May 2007 20:56:52 -0400 Original-Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 453F82C40; Mon, 28 May 2007 09:56:50 +0900 (JST) In-Reply-To: User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.0.990 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) X-detected-kernel: NetBSD 3.0 (DF) 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:71862 gmane.emacs.pretest.bugs:19015 Archived-At: >>>>> On Sun, 27 May 2007 19:21:28 -0400, Richard Stallman said: > Where is the actual call to `current_column' for which you > specifically want to bind this? Could you bind > Qinhibit_point_motion_hooks for just that? I meant the only direct call to `current_column' from redisplay_internal: /* If %c is in the mode line, update it if needed. */ if (!NILP (w->column_number_displayed) /* This alternative quickly identifies a common case where no change is needed. */ && !(PT == XFASTINT (w->last_point) && XFASTINT (w->last_modified) >= MODIFF && XFASTINT (w->last_overlay_modified) >= OVERLAY_MODIFF) && (XFASTINT (w->column_number_displayed) != (int) current_column ())) /* iftc */ w->update_mode_line = Qt; and as I said, binding Qinhibit_point_motion_hooks just around this part as the following patch also works for me on Mac OS X. Could someone check if this works on Windows for the original problem? Index: src/xdisp.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v retrieving revision 1.1149.2.2 diff -c -p -r1.1149.2.2 xdisp.c *** src/xdisp.c 24 May 2007 23:21:32 -0000 1.1149.2.2 --- src/xdisp.c 28 May 2007 00:33:00 -0000 *************** redisplay_internal (preserve_echo_area) *** 10836,10842 **** int must_finish = 0; struct text_pos tlbufpos, tlendpos; int number_of_visible_frames; ! int count; struct frame *sf; int polling_stopped_here = 0; --- 10836,10842 ---- int must_finish = 0; struct text_pos tlbufpos, tlendpos; int number_of_visible_frames; ! int count, count1; struct frame *sf; int polling_stopped_here = 0; *************** redisplay_internal (preserve_echo_area) *** 10974,10979 **** --- 10974,10983 ---- update_mode_lines++; } + /* Avoid invocation of point motion hooks by `current_column' below. */ + count1 = SPECPDL_INDEX (); + specbind (Qinhibit_point_motion_hooks, Qt); + /* If %c is in the mode line, update it if needed. */ if (!NILP (w->column_number_displayed) /* This alternative quickly identifies a common case *************** redisplay_internal (preserve_echo_area) *** 10985,10990 **** --- 10989,10996 ---- != (int) current_column ())) /* iftc */ w->update_mode_line = Qt; + unbind_to (count1, Qnil); + FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1; /* The variable buffer_shared is set in redisplay_window and > Or what about binding it in `current_column_1'? Maybe that is the > right thing to do. Sorry, I'm afraid I'm not familiar enough with this matter. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp