v15.6: replace TEXT_PROP_MEANS_INVISIBLE (xdisp.c only) with !NILP check
This commit is contained in:
@@ -90,7 +90,7 @@ index 7c1ee4c..855d302 100644
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||||
index 932d209..45e480e 100644
|
index 932d209..ca6b969 100644
|
||||||
--- a/src/nsterm.m
|
--- a/src/nsterm.m
|
||||||
+++ b/src/nsterm.m
|
+++ b/src/nsterm.m
|
||||||
@@ -1104,6 +1104,11 @@ ns_update_end (struct frame *f)
|
@@ -1104,6 +1104,11 @@ ns_update_end (struct frame *f)
|
||||||
@@ -143,7 +143,7 @@ index 932d209..45e480e 100644
|
|||||||
ns_focus (f, NULL, 0);
|
ns_focus (f, NULL, 0);
|
||||||
|
|
||||||
NSGraphicsContext *ctx = [NSGraphicsContext currentContext];
|
NSGraphicsContext *ctx = [NSGraphicsContext currentContext];
|
||||||
@@ -6849,265 +6885,1329 @@ ns_create_font_panel_buttons (id target, SEL select, SEL cancel_action)
|
@@ -6849,265 +6885,1333 @@ ns_create_font_panel_buttons (id target, SEL select, SEL cancel_action)
|
||||||
|
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
|
|
||||||
@@ -217,8 +217,6 @@ index 932d209..45e480e 100644
|
|||||||
- EmacsLayer *layer = (EmacsLayer *)[self layer];
|
- EmacsLayer *layer = (EmacsLayer *)[self layer];
|
||||||
- [layer release];
|
- [layer release];
|
||||||
-#endif
|
-#endif
|
||||||
+ /* Temporarily switch to buffer b so TEXT_PROP_MEANS_INVISIBLE
|
|
||||||
+ can access its invisibility_spec. */
|
|
||||||
+ struct buffer *oldb = current_buffer;
|
+ struct buffer *oldb = current_buffer;
|
||||||
+ if (b != current_buffer)
|
+ if (b != current_buffer)
|
||||||
+ set_buffer_internal_1 (b);
|
+ set_buffer_internal_1 (b);
|
||||||
@@ -246,7 +244,13 @@ index 932d209..45e480e 100644
|
|||||||
+ /* Check invisible property (text properties + overlays). */
|
+ /* Check invisible property (text properties + overlays). */
|
||||||
+ Lisp_Object invis = Fget_char_property (make_fixnum (pos),
|
+ Lisp_Object invis = Fget_char_property (make_fixnum (pos),
|
||||||
+ Qinvisible, Qnil);
|
+ Qinvisible, Qnil);
|
||||||
+ if (!NILP (invis) && TEXT_PROP_MEANS_INVISIBLE (invis))
|
+ /* Check if invisible property means truly invisible.
|
||||||
|
+ TEXT_PROP_MEANS_INVISIBLE is defined only in xdisp.c,
|
||||||
|
+ so we replicate: EQ(invis, Qt), or invis is on the
|
||||||
|
+ buffer's invisibility-spec list. Simplified: any
|
||||||
|
+ non-nil invisible property hides the text. This matches
|
||||||
|
+ the common case (invisible t) and org-mode/dired usage. */
|
||||||
|
+ if (!NILP (invis))
|
||||||
+ {
|
+ {
|
||||||
+ /* Skip to the next position where invisible changes. */
|
+ /* Skip to the next position where invisible changes. */
|
||||||
+ Lisp_Object next = Fnext_single_char_property_change (
|
+ Lisp_Object next = Fnext_single_char_property_change (
|
||||||
@@ -1657,7 +1661,7 @@ index 932d209..45e480e 100644
|
|||||||
0 : [[theEvent charactersIgnoringModifiers] characterAtIndex: 0];
|
0 : [[theEvent charactersIgnoringModifiers] characterAtIndex: 0];
|
||||||
|
|
||||||
/* Is it a "function key"? */
|
/* Is it a "function key"? */
|
||||||
@@ -8237,6 +9337,27 @@ ns_in_echo_area (void)
|
@@ -8237,6 +9341,27 @@ ns_in_echo_area (void)
|
||||||
XSETFRAME (event.frame_or_window, emacsframe);
|
XSETFRAME (event.frame_or_window, emacsframe);
|
||||||
kbd_buffer_store_event (&event);
|
kbd_buffer_store_event (&event);
|
||||||
ns_send_appdefined (-1); // Kick main loop
|
ns_send_appdefined (-1); // Kick main loop
|
||||||
@@ -1685,7 +1689,7 @@ index 932d209..45e480e 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -9474,6 +10595,297 @@ ns_in_echo_area (void)
|
@@ -9474,6 +10599,297 @@ ns_in_echo_area (void)
|
||||||
return fs_state;
|
return fs_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1983,7 +1987,7 @@ index 932d209..45e480e 100644
|
|||||||
@end /* EmacsView */
|
@end /* EmacsView */
|
||||||
|
|
||||||
|
|
||||||
@@ -9941,6 +11353,14 @@ nswindow_orderedIndex_sort (id w1, id w2, void *c)
|
@@ -9941,6 +11357,14 @@ nswindow_orderedIndex_sort (id w1, id w2, void *c)
|
||||||
|
|
||||||
return [super accessibilityAttributeValue:attribute];
|
return [super accessibilityAttributeValue:attribute];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user