From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#14616: 24.3.50; Excessive cursor movement on non-X Emacs Date: Mon, 05 Aug 2013 22:45:12 +0300 Message-ID: <83bo5bx6pj.fsf@gnu.org> References: <83y5a0ka99.fsf@gnu.org> <83ip10hlyr.fsf@gnu.org> <83hafqz8uo.fsf@gnu.org> <83wqo8vvyb.fsf@gnu.org> <83fvuuws3k.fsf@gnu.org> <83mwp1z7dm.fsf@gnu.org> <83a9l0yxom.fsf@gnu.org> <83ehaayk6d.fsf@gnu.org> <83fvuovuvx.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1375731979 10808 80.91.229.3 (5 Aug 2013 19:46:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Aug 2013 19:46:19 +0000 (UTC) Cc: 14616@debbugs.gnu.org To: Lars Magne Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 05 21:46:20 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1V6QjQ-0007B9-Q3 for geb-bug-gnu-emacs@m.gmane.org; Mon, 05 Aug 2013 21:46:17 +0200 Original-Received: from localhost ([::1]:36005 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6QjQ-0003BH-6X for geb-bug-gnu-emacs@m.gmane.org; Mon, 05 Aug 2013 15:46:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36451) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6QjH-00032Z-IO for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2013 15:46:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V6QjC-0006xN-AD for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2013 15:46:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:47377) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V6QjC-0006xH-82 for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2013 15:46:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1V6QjB-0007ix-K0 for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2013 15:46:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Aug 2013 19:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14616 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 14616-submit@debbugs.gnu.org id=B14616.137573196029684 (code B ref 14616); Mon, 05 Aug 2013 19:46:01 +0000 Original-Received: (at 14616) by debbugs.gnu.org; 5 Aug 2013 19:46:00 +0000 Original-Received: from localhost ([127.0.0.1]:41693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1V6Qj9-0007ih-HB for submit@debbugs.gnu.org; Mon, 05 Aug 2013 15:46:00 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:35659) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1V6Qj4-0007iC-OV for 14616@debbugs.gnu.org; Mon, 05 Aug 2013 15:45:58 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MR200H00PCTP200@a-mtaout20.012.net.il> for 14616@debbugs.gnu.org; Mon, 05 Aug 2013 22:45:04 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MR200HRNPJ4BN90@a-mtaout20.012.net.il>; Mon, 05 Aug 2013 22:45:04 +0300 (IDT) In-reply-to: X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:76977 Archived-At: > From: Lars Magne Ingebrigtsen > Cc: 14616@debbugs.gnu.org > Date: Mon, 05 Aug 2013 21:21:22 +0200 > > Lars Magne Ingebrigtsen writes: > > > # > > # > > Hm. So... reading the code, it is really trying to switch between the > two frames, which then means that it has to redraw everything. The redrawing isn't supposed to happen. > But why is it trying to switch frames in the first place? > > I'm probably reading this wrong, but it's waiting for process output > (check), but that means that it wants to switch frames. Which I don't > understand why it'd want to... Because prepare_menu_bars, called as part of redisplay, loops over all the frames. > 0x0000000000420725 in do_switch_frame (frame=12659685, track=1, for_deletion=0, norecord=12571250) at frame.c:844 > 844 SET_FRAME_VISIBLE (XFRAME (frame), 1); > #0 0x0000000000420725 in do_switch_frame (frame=12659685, track=1, for_deletion=0, norecord=12571250) at frame.c:844 > #1 0x0000000000420829 in Fselect_frame (frame=12659685, norecord=12571250) at frame.c:883 > #2 0x00000000004454ac in unwind_format_mode_line (vector=17901885) at xdisp.c:11002 > #3 0x00000000005ad565 in unbind_to (count=6, value=12571202) at eval.c:3337 > #4 0x0000000000445936 in x_consider_frame_title (frame=48936325) at xdisp.c:11133 > #5 0x0000000000445a34 in prepare_menu_bars () at xdisp.c:11185 > #6 0x00000000004497f6 in redisplay_internal () at xdisp.c:13051 > #7 0x000000000044ac22 in redisplay_preserve_echo_area (from_where=11) at xdisp.c:13643 > #8 0x00000000005f7d4f in wait_reading_process_output (time_limit=30, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=12571202, > wait_proc=0x0, just_wait_proc=0) at process.c:4459 Here: /* Prepare for redisplay by updating menu-bar item lists when appropriate. This can call eval. */ void prepare_menu_bars (void) { int all_windows; struct gcpro gcpro1, gcpro2; struct frame *f; Lisp_Object tooltip_frame; #ifdef HAVE_WINDOW_SYSTEM tooltip_frame = tip_frame; #else tooltip_frame = Qnil; #endif /* Update all frame titles based on their buffer names, etc. We do this before the menu bars so that the buffer-menu will show the up-to-date frame titles. */ #ifdef HAVE_WINDOW_SYSTEM if (windows_or_buffers_changed || update_mode_lines) { Lisp_Object tail, frame; FOR_EACH_FRAME (tail, frame) <<<<<<<<<<<<<<<<<<<<<<<<<<<<< { f = XFRAME (frame); if (!EQ (frame, tooltip_frame) && (FRAME_VISIBLE_P (f) || FRAME_ICONIFIED_P (f))) x_consider_frame_title (frame); } } #endif /* HAVE_WINDOW_SYSTEM */ Hmmm... maybe we should have here something special for TTY frames. I will take a look. Thanks.