bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#6609: 23.2; Cursor becomes invisible when put over some faces


From: Deniz Dogan
Subject: bug#6609: 23.2; Cursor becomes invisible when put over some faces
Date: Mon, 12 Jul 2010 12:47:15 +0200

2010/7/12 Eli Zaretskii <address@hidden>:
>> From: Deniz Dogan <address@hidden>
>> Date: Mon, 12 Jul 2010 10:09:04 +0200
>> Cc: address@hidden
>>
>> 2010/7/12 Eli Zaretskii <address@hidden>:
>> >> From: Deniz Dogan <address@hidden>
>> >> Date: Sun, 11 Jul 2010 21:49:12 +0200
>> >> Cc: address@hidden
>> >>
>> >> Terribly sorry about that. I did mean white foreground on black
>> >> background in the original report!
>> >
>> > A world of difference.  I do see this problem on XP as well, then.
>> >
>> > Can someone try this on GNU/Linux in a GUI session, please?  I'd like
>> > to know if this problem is specific to w32.
>> >
>> > To repeat the recipe:
>> >
>> >  emacs -Q
>> >
>> > Insert this in the *scratch* buffer:
>> >
>> >  (set-background-color "black")
>> >  (set-foreground-color "white")
>> >
>> > Evaluate these two lines.  Your cursor will now become invisible.  You
>> > can only see it (a) when it is on some text of a non-default color, or
>> > (b) when the Emacs frame does not have focus, and the cursor is
>> > displayed as a hollow rectangle.
>> >
>> > "M-x set-face-background RET cursor RET white RET" fixes the problem.
>> > So my first guess would be that we don't do that automatically as part
>> > of changing the default face, for some reason.
>> >
>>
>> I have tried this on GNU/Linux as well (Bazaar version from some time
>> in June) and the problem does not appear there. I can't remember it
>> ever happening on GNU/Linux actually.
>
> Can you please try the patch below?  If it works for you, I will
> commit it to the emacs-23 branch.
>
> === modified file 'src/w32fns.c'
> --- src/w32fns.c        2010-07-10 18:52:53 +0000
> +++ src/w32fns.c        2010-07-12 10:31:49 +0000
> @@ -1333,7 +1333,10 @@ x_set_foreground_color (struct frame *f,
>   if (FRAME_W32_WINDOW (f) != 0)
>     {
>       if (x->cursor_pixel == old_fg)
> -       x->cursor_pixel = fg;
> +       {
> +         x->cursor_pixel = fg;
> +         x->cursor_gc->background = fg;
> +       }
>
>       update_face_from_frame_parameter (f, Qforeground_color, arg);
>       if (FRAME_VISIBLE_P (f))
>
>

I don't build my Emacs on Windows, only on GNU/Linux. Could someone
else running Windows try it? Thanks.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]