[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: |
Eli Zaretskii |
Subject: |
bug#6609: 23.2; Cursor becomes invisible when put over some faces |
Date: |
Mon, 12 Jul 2010 13:35:16 +0300 |
> From: Deniz Dogan <deniz.a.m.dogan@gmail.com>
> Date: Mon, 12 Jul 2010 10:09:04 +0200
> Cc: 6609@debbugs.gnu.org
>
> 2010/7/12 Eli Zaretskii <eliz@gnu.org>:
> >> From: Deniz Dogan <deniz.a.m.dogan@gmail.com>
> >> Date: Sun, 11 Jul 2010 21:49:12 +0200
> >> Cc: 6609@debbugs.gnu.org
> >>
> >> 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))
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, (continued)
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Eli Zaretskii, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Eli Zaretskii, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Eli Zaretskii, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/11
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Eli Zaretskii, 2010/07/12
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/12
- bug#6609: 23.2; Cursor becomes invisible when put over some faces,
Eli Zaretskii <=
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Deniz Dogan, 2010/07/12
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Eli Zaretskii, 2010/07/12
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Juanma Barranquero, 2010/07/13
- bug#6609: 23.2; Cursor becomes invisible when put over some faces, Eli Zaretskii, 2010/07/14