Improve diff/fixup when diff is greedy at end of a diff.
[wiggle/upstream.git] / tests / contrib / xfaces / patch
blob814005d002c1a961b30eee4c6132e7c5fb1e8bd6
1 @@ -4503,29 +4508,45 @@
2        XSETFRAME (frame, f);
3        call1 (Qframe_update_face_colors, frame);
4  
5 -      lface = lface_from_face_name (f, Qdefault, 1);
6 +      face = Qdefault;
7 +      lface = lface_from_face_name (f, face, 1);
8        LFACE_BACKGROUND (lface) = (STRINGP (new_value)
9                                   ? new_value : Qunspecified);
10        realize_basic_faces (f);
11      }
12 -  if (EQ (param, Qborder_color))
13 +  else if (EQ (param, Qborder_color))
14      {
15 -      lface = lface_from_face_name (f, Qborder, 1);
16 +      face = Qborder;
17 +      lface = lface_from_face_name (f, face, 1);
18        LFACE_BACKGROUND (lface) = (STRINGP (new_value)
19                                   ? new_value : Qunspecified);
20      }
21    else if (EQ (param, Qcursor_color))
22      {
23 -      lface = lface_from_face_name (f, Qcursor, 1);
24 +      face = Qcursor;
25 +      lface = lface_from_face_name (f, face, 1);
26        LFACE_BACKGROUND (lface) = (STRINGP (new_value)
27                                   ? new_value : Qunspecified);
28      }
29    else if (EQ (param, Qmouse_color))
30      {
31 -      lface = lface_from_face_name (f, Qmouse, 1);
32 +      face = Qmouse;
33 +      lface = lface_from_face_name (f, face, 1);
34        LFACE_BACKGROUND (lface) = (STRINGP (new_value)
35                                   ? new_value : Qunspecified);
36      }
38 +  /* Changing a named face means that all realized faces depending on
39 +     that face are invalid.  Since we cannot tell which realized faces
40 +     depend on the face, make sure they are all removed.  This is done
41 +     by incrementing face_change_count.  The next call to
42 +     init_iterator will then free realized faces.  */
43 +  if (!NILP (face)
44 +      && NILP (Fget (face, Qface_no_inherit)))
45 +    {
46 +      ++face_change_count;
47 +      ++windows_or_buffers_changed;
48 +    }
49  }