emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r117711: Avoid overwriting the reversed_p flags in t


From: Eli Zaretskii
Subject: [Emacs-diffs] trunk r117711: Avoid overwriting the reversed_p flags in the glyph matrices.
Date: Sun, 17 Aug 2014 14:59:17 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117711
revision-id: address@hidden
parent: address@hidden
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sun 2014-08-17 17:58:04 +0300
message:
  Avoid overwriting the reversed_p flags in the glyph matrices.
  
   Avoid overwriting the reversed_p flags in the glyph matrices when
   init_iterator or start_display are called.
  
   src/xdisp.c (init_iterator): Don't initialize the reversed_p flag of
   the glyph row here.
   (tool_bar_height, redisplay_tool_bar, try_window)
   (try_window_reusing_current_matrix, try_window_id)
   (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
   reversed_p flag of the iterator's glyph row where the glyph row
   is going to be redrawn.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-08-16 16:10:50 +0000
+++ b/src/ChangeLog     2014-08-17 14:58:04 +0000
@@ -1,3 +1,15 @@
+2014-08-17  Eli Zaretskii  <address@hidden>
+
+       Avoid overwriting the reversed_p flags in the glyph matrices when
+       init_iterator or start_display are called.
+       * xdisp.c (init_iterator): Don't initialize the reversed_p flag of
+       the glyph row here.
+       (tool_bar_height, redisplay_tool_bar, try_window)
+       (try_window_reusing_current_matrix, try_window_id)
+       (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
+       reversed_p flag of the iterator's glyph row where the glyph row
+       is going to be redrawn.
+
 2014-08-16  Paul Eggert  <address@hidden>
 
        * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local.

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-08-16 16:10:50 +0000
+++ b/src/xdisp.c       2014-08-17 14:58:04 +0000
@@ -2971,10 +2971,6 @@
   it->glyph_row = row;
   it->area = TEXT_AREA;
 
-  /* Forget any previous info about this row being reversed.  */
-  if (it->glyph_row)
-    it->glyph_row->reversed_p = 0;
-
   /* Get the dimensions of the display area.  The display area
      consists of the visible window area plus a horizontally scrolled
      part to the left of the window.  All x-values are relative to the
@@ -12294,6 +12290,7 @@
   /* Initialize an iterator for iteration over
      F->desired_tool_bar_string in the tool-bar window of frame F.  */
   init_iterator (&it, w, -1, -1, temp_row, TOOL_BAR_FACE_ID);
+  temp_row->reversed_p = false;
   it.first_visible_x = 0;
   it.last_visible_x = WINDOW_PIXEL_WIDTH (w);
   reseat_to_string (&it, NULL, f->desired_tool_bar_string, 0, 0, 0, -1);
@@ -12378,6 +12375,7 @@
   it.first_visible_x = 0;
   it.last_visible_x = WINDOW_PIXEL_WIDTH (w);
   row = it.glyph_row;
+  row->reversed_p = false;
 
   /* Build a string that represents the contents of the tool-bar.  */
   build_desired_tool_bar_string (f);
@@ -16898,6 +16896,7 @@
 
   /* Initialize iterator and info to start at POS.  */
   start_display (&it, w, pos);
+  it.glyph_row->reversed_p = false;
 
   /* Display all lines of W.  */
   while (it.current_y < it.last_visible_y)
@@ -17081,6 +17080,7 @@
              && it.current.dpvec_index < 0)
            break;
 
+         it.glyph_row->reversed_p = false;
          if (display_line (&it))
            last_text_row = it.glyph_row - 1;
 
@@ -18101,6 +18101,11 @@
   w->cursor.vpos = -1;
   last_text_row = NULL;
   overlay_arrow_seen = 0;
+  if (it.current_y < it.last_visible_y
+      && !f->fonts_changed
+      && (first_unchanged_at_end_row == NULL
+         || IT_CHARPOS (it) < stop_pos))
+    it.glyph_row->reversed_p = false;
   while (it.current_y < it.last_visible_y
         && !f->fonts_changed
         && (first_unchanged_at_end_row == NULL
@@ -18810,6 +18815,7 @@
 
   set_buffer_temp (buffer);
   init_iterator (&it, w, -1, -1, &scratch_glyph_row, DEFAULT_FACE_ID);
+  scratch_glyph_row.reversed_p = false;
   it.glyph_row->used[TEXT_AREA] = 0;
   SET_TEXT_POS (it.position, 0, 0);
 
@@ -21400,6 +21406,7 @@
       clear_glyph_row (row);
       row->enabled_p = true;
       row->full_width_p = 1;
+      row->reversed_p = false;
     }
 
   /* Display all items of the menu bar.  */


reply via email to

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