emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100273: Fix for 7412 (no cursor o


From: Jan D.
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100273: Fix for 7412 (no cursor on image) backported from trunk.
Date: Sun, 05 Dec 2010 11:33:48 +0100
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100273
committer: Jan D. <address@hidden>
branch nick: emacs-23
timestamp: Sun 2010-12-05 11:33:48 +0100
message:
  Fix for 7412 (no cursor on image) backported from trunk.
  
  * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
  with cursor color and draw a rectangle around the image.
modified:
  src/ChangeLog
  src/nsterm.m
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-12-05 00:32:32 +0000
+++ b/src/ChangeLog     2010-12-05 10:33:48 +0000
@@ -1,3 +1,8 @@
+2010-12-05  Jan Djärv  <address@hidden>
+
+       * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
+       with cursor color and draw a rectangle around the image (Bug#7412).
+
 2010-12-05  Chong Yidong  <address@hidden>
 
        * xdisp.c (try_scrolling): Avoid infloop if the first line is

=== modified file 'src/nsterm.m'
--- a/src/nsterm.m      2010-12-02 07:12:54 +0000
+++ b/src/nsterm.m      2010-12-05 10:33:48 +0000
@@ -2753,7 +2753,10 @@
   else
     face = FACE_FROM_ID (s->f, s->first_glyph->face_id);
 
-  [ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f) set];
+  if (s->hl == DRAW_CURSOR)
+      [FRAME_CURSOR_COLOR (s->f) set];
+  else
+    [ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f) set];
 
   if (bg_height > s->slice.height || s->img->hmargin || s->img->vmargin
       || s->img->mask || s->img->pixmap == 0 || s->width != 
s->background_width)
@@ -2816,6 +2819,16 @@
                       s->slice.x == 0,
                       s->slice.x + s->slice.width == s->img->width, s);
     }
+
+  /* If there is no mask, the background won't be seen,
+     so draw a rectangle on the image for the cursor.
+     Do this for all images, getting trancparency right is not reliable.  */
+  if (s->hl == DRAW_CURSOR)
+    {
+      int thickness = abs (s->img->relief);
+      if (thickness == 0) thickness = 1;
+      ns_draw_box (br, thickness, FRAME_CURSOR_COLOR (s->f), 1, 1);
+    }
 }
 
 


reply via email to

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