From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dan Nicolaescu Newsgroups: gmane.emacs.devel Subject: Re: [Emacs.app dev]: ghost cursor problem is still there Date: Sat, 23 Aug 2008 10:30:39 -0700 Message-ID: <200808231730.m7NHUdUv018072@sallyv1.ics.uci.edu> References: <5f089c510807191428n349bdf55gebdff2e0ca668db7@mail.gmail.com> <7C93A2A7-54FD-43A9-BA1B-0B8502FFA5C6@gmail.com> <1AFEFF71-2AEA-4282-915E-B03050E98592@gmail.com> <8ED46157-6210-4767-A5AE-0DDE4C9DB1B3@gmail.com> <90AB958C-083A-4DA6-86B6-C63DB82776CE@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1219512766 32311 80.91.229.12 (23 Aug 2008 17:32:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 23 Aug 2008 17:32:46 +0000 (UTC) Cc: "emacs.app dev list" , Adrian Robert , Emacs-Devel devel To: David Reitter Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Aug 23 19:33:39 2008 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 1KWwzX-0008Fu-R0 for ged-emacs-devel@m.gmane.org; Sat, 23 Aug 2008 19:33:36 +0200 Original-Received: from localhost ([127.0.0.1]:42690 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KWwya-0003fH-2a for ged-emacs-devel@m.gmane.org; Sat, 23 Aug 2008 13:32:36 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KWwxe-0002b8-CL for emacs-devel@gnu.org; Sat, 23 Aug 2008 13:31:38 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KWwxd-0002aK-Jl for emacs-devel@gnu.org; Sat, 23 Aug 2008 13:31:37 -0400 Original-Received: from [199.232.76.173] (port=36226 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KWwxd-0002aA-Di for emacs-devel@gnu.org; Sat, 23 Aug 2008 13:31:37 -0400 Original-Received: from sallyv1.ics.uci.edu ([128.195.1.109]:60357) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1KWwxd-0006FW-6L for emacs-devel@gnu.org; Sat, 23 Aug 2008 13:31:37 -0400 X-ICS-MailScanner-Watermark: 1220117440.00107@oPpA8oftqP6ipVeYn4zYNg Original-Received: from mothra.ics.uci.edu (mothra.ics.uci.edu [128.195.6.93]) by sallyv1.ics.uci.edu (8.13.7+Sun/8.13.7) with ESMTP id m7NHUdUv018072; Sat, 23 Aug 2008 10:30:39 -0700 (PDT) In-Reply-To: <90AB958C-083A-4DA6-86B6-C63DB82776CE@gmail.com> (David Reitter's message of "Wed, 20 Aug 2008 01:22:38 -0400") Original-Lines: 72 X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam, SpamAssassin (score=-0.186, required 5, autolearn=disabled, ALL_TRUSTED -1.44, FM_MULTI_ODD2 1.10, TW_BJ 0.08, TW_LN 0.08) X-ICS-MailScanner-From: dann@mothra.ics.uci.edu X-detected-kernel: by monty-python.gnu.org: Solaris 10 (beta) 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:102875 Archived-At: David Reitter writes: > Adrian et al, > > On 22 Jul 2008, at 09:41, David Reitter wrote: > > > > The main changes are that we check cursor_type instead of cursorType > > and draw the text glyph rather than the cursor when erasing anything > > (`hl' variable). There's a range of steps that we do to ensure that > > the cursor area is actually visible; I'm not sure if they are really > > needed, but the corresponding X code does it, too. > > There is a good bit of guess-work involved, but I'm sure that > > testing will take care of any problems. > > OK, in my latest build, things work a lot better and the original > blink-cursor-mode appears to work fine now. (I don't quite understand > which change made the event mechanisms work better.) > > To repeat, these changes address the following issues: > > - frame background rather than the right glyph in the white-out phases > during blinking > - `cursor-type' variable as in core Emacs, rather than NS specific > solution > - with it, support for things like (box . 2) > - box/hollow cursors too narrow > - standard blink-cursor-mode with all its bells and whistles (whether > one needs them or not) > > I would also take the blink rate stuff out of the preferences (a patch > to the nib) - it doesn't work with the generic blinking code and I > believe it's there for historic reasons (because the NS port > implemented blinking separately) rather than because it would be very > important to have for users (one could think of much more important > settings that could be there). > > ns_set_cursor_type is now equivalent to the x_set_cursor_type (quasi) > generic. I left ns_set_cursor_color for you or someone else. > > The occasional ghost cursors seem to remain. > > Any objections? [snip] > + drawGlyph = 1; // just draw the Glyph > [FRAME_BACKGROUND_COLOR (f) set]; > ! > ! NSDisableScreenUpdates (); Unfortunately this breaks GNUStep: gcc -rdynamic `./prefix-args -Xlinker -z nocombreloc -L/usr/lib -L/usr/lib -lgnustep-gui -lgnustep-base -lobjc -lpthread` -o temacs dispnew.o frame.o scroll.o xdisp.o menu.o window.o charset.o coding.o category.o ccl.o character.o chartab.o cm.o term.o terminal.o xfaces.o emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o filelock.o insdel.o marker.o minibuf.o fileio.o dired.o filemode.o cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o alloc.o data.o doc.o editfns.o callint.o eval.o floatfns.o fns.o font.o print.o lread.o syntax.o unexelf.o bytecode.o process.o callproc.o region-cache.o sound.o atimer.o doprnt.o strftime.o intervals.o textprop.o composite.o md5.o nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o terminfo.o lastfile .o vm-limit.o -lncurses -lm nsterm.o: In function `ns_draw_window_cursor': /tmp/emacs/src/nsterm.m:2432: undefined reference to `NSDisableScreenUpdates' /tmp/emacs/src/nsterm.m:2417: undefined reference to `NSDisableScreenUpdates' /tmp/emacs/src/nsterm.m:2469: undefined reference to `NSEnableScreenUpdates' /tmp/emacs/src/nsterm.m:2432: undefined reference to `NSDisableScreenUpdates' collect2: ld returned 1 exit status make[1]: *** [temacs] Error 1 Also please make sure that your log entries are properly formatted: ---------------------------- revision 1.24 date: 2008-08-20 19:46:37 +0200; author: davidswelt; state: Exp; lines: +125 -150; commitid: c97vNELzQ5S6kyft; Clear cursor properly rather than redrawing the area. Respect width of bar cursors. remove ns-specific code for cursor blinking. ---------------------------- Like ChangeLog, it should contain the changed function name,