projects
/
chise
/
xemacs-chise.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
XEmacs 21.2.47 (Zephir).
[chise/xemacs-chise.git]
/
src
/
redisplay.c
diff --git
a/src/redisplay.c
b/src/redisplay.c
index
a8a26c7
..
7967999
100644
(file)
--- a/
src/redisplay.c
+++ b/
src/redisplay.c
@@
-300,7
+300,7
@@
static Bytecount_dynarr *formatted_string_extent_end_dynarr;
/* #### probably temporary */
/* #### probably temporary */
-int cache_adjustment;
+Fixnum cache_adjustment;
/* This holds a string representing the text corresponding to a single
modeline % spec. */
/* This holds a string representing the text corresponding to a single
modeline % spec. */
@@
-315,10
+315,10
@@
int disable_preemption; /* Used for debugging redisplay and for
static int preemption_count;
/* Minimum pixel height of clipped bottom display line. */
static int preemption_count;
/* Minimum pixel height of clipped bottom display line. */
-int vertical_clip;
+Fixnum vertical_clip;
/* Minimum visible pixel width of clipped glyphs at right margin. */
/* Minimum visible pixel width of clipped glyphs at right margin. */
-int horizontal_clip;
+Fixnum horizontal_clip;
/* Nonzero means reading single-character input with prompt
so put cursor on minibuffer after the prompt. */
/* Nonzero means reading single-character input with prompt
so put cursor on minibuffer after the prompt. */
@@
-425,10
+425,10
@@
Lisp_Object Vglobal_mode_string;
/* The number of lines scroll a window by when point leaves the window; if
it is <=0 then point is centered in the window */
/* The number of lines scroll a window by when point leaves the window; if
it is <=0 then point is centered in the window */
-int scroll_step;
+Fixnum scroll_step;
/* Scroll up to this many lines, to bring point back on screen. */
/* Scroll up to this many lines, to bring point back on screen. */
-int scroll_conservatively;
+Fixnum scroll_conservatively;
/* Marker for where to display an arrow on top of the buffer text. */
Lisp_Object Voverlay_arrow_position;
/* Marker for where to display an arrow on top of the buffer text. */
Lisp_Object Voverlay_arrow_position;
@@
-451,7
+451,8
@@
Lisp_Object Vpre_redisplay_hook, Vpost_redisplay_hook;
Lisp_Object Qpre_redisplay_hook, Qpost_redisplay_hook;
#endif /* INHIBIT_REDISPLAY_HOOKS */
Lisp_Object Qpre_redisplay_hook, Qpost_redisplay_hook;
#endif /* INHIBIT_REDISPLAY_HOOKS */
-static int last_display_warning_tick, display_warning_tick;
+static Fixnum last_display_warning_tick;
+static Fixnum display_warning_tick;
Lisp_Object Qdisplay_warning_buffer;
int inhibit_warning_display;
Lisp_Object Qdisplay_warning_buffer;
int inhibit_warning_display;
@@
-464,8
+465,7
@@
int column_number_start_at_one;
Lisp_Object Qtop_bottom;
Lisp_Object Qtop_bottom;
-#define WINDOW_SCROLLED(w) \
-(w->hscroll > 0 || w->left_xoffset)
+#define WINDOW_SCROLLED(w) ((w)->hscroll > 0 || (w)->left_xoffset)
\f
/***************************************************************************/
\f
/***************************************************************************/
@@
-972,6
+972,8
@@
add_bufbyte_string_runes (pos_data *data, Bufbyte *c_string,
for (pos = c_string; pos < end;)
{
for (pos = c_string; pos < end;)
{
+ Bufbyte *old_pos = pos;
+
data->ch = charptr_emchar (pos);
prop = add_emchar_rune (data);
data->ch = charptr_emchar (pos);
prop = add_emchar_rune (data);
@@
-997,6
+999,9
@@
add_bufbyte_string_runes (pos_data *data, Bufbyte *c_string,
}
INC_CHARPTR (pos);
assert (pos <= end);
}
INC_CHARPTR (pos);
assert (pos <= end);
+ /* #### Duplicate code from add_string_to_fstring_db_runes
+ should we do more?*/
+ data->bytepos += pos - old_pos;
}
return NULL;
}
return NULL;
@@
-1659,7
+1664,7
@@
add_glyph_rune (pos_data *data, struct glyph_block *gb, int pos_type,
else
findex = get_builtin_face_cache_index (w, face);
else
findex = get_builtin_face_cache_index (w, face);
- instance = glyph_image_instance (gb->glyph, data->window,
+ instance = glyph_image_instance (gb->glyph, data->window,
ERROR_ME_NOT, 1);
if (TEXT_IMAGE_INSTANCEP (instance))
{
ERROR_ME_NOT, 1);
if (TEXT_IMAGE_INSTANCEP (instance))
{
@@
-3500,7
+3505,7
@@
generate_formatted_string_db (Lisp_Object format_str, Lisp_Object result_str,
/* result_str is nil when we're building a frame or icon title. Otherwise,
we're building a modeline, so the offset starts at the modeline
/* result_str is nil when we're building a frame or icon title. Otherwise,
we're building a modeline, so the offset starts at the modeline
- horizontal scrolling ammount */
+ horizontal scrolling amount */
if (! NILP (result_str))
offset = w->modeline_hscroll;
generate_fstring_runes (w, &data, 0, 0, -1, format_str, 0,
if (! NILP (result_str))
offset = w->modeline_hscroll;
generate_fstring_runes (w, &data, 0, 0, -1, format_str, 0,
@@
-4284,9
+4289,9
@@
create_string_text_block (struct window *w, Lisp_Object disp_string,
int truncate_win = b ? window_truncation_on (w) : 0;
int end_glyph_width = 0;
int truncate_win = b ? window_truncation_on (w) : 0;
int end_glyph_width = 0;
- /* we're going to ditch selective display for static text, its an
- FSF thing and invisble extents are the way to go
- here. Implementing it also relies on a number of buffer-specific
+ /* We're going to ditch selective display for static text, it's an
+ FSF thing and invisible extents are the way to go here.
+ Implementing it also relies on a number of buffer-specific
functions that we don't have the luxury of being able to use
here. */
functions that we don't have the luxury of being able to use
here. */
@@
-5989,7
+5994,7
@@
redisplay_window (Lisp_Object window, int skip_selected)
&& !(MINI_WINDOW_P (w) && f->buffers_changed)
&& !f->frame_changed
&& !truncation_changed
&& !(MINI_WINDOW_P (w) && f->buffers_changed)
&& !f->frame_changed
&& !truncation_changed
- /* check whether start is really at the begining of a line GE */
+ /* check whether start is really at the beginning of a line GE */
&& (!w->start_at_line_beg || beginning_of_line_p (b, startp))
)
{
&& (!w->start_at_line_beg || beginning_of_line_p (b, startp))
)
{
@@
-6331,12
+6336,15
@@
redisplay_frame (struct frame *f, int preemption_check)
if (f->clear)
f->frame_changed = 1;
if (f->clear)
f->frame_changed = 1;
- /* Invalidate the subwindow cache. We use subwindows_changed here to
- cause subwindows to get instantiated. This is because
+ /* Invalidate the subwindow caches. We use subwindows_changed here
+ to cause subwindows to get instantiated. This is because
subwindows_state_changed is less strict - dealing with things
like the clicked state of button. We have to do this before
redisplaying the gutters as subwindows get unmapped in the
process.*/
subwindows_state_changed is less strict - dealing with things
like the clicked state of button. We have to do this before
redisplaying the gutters as subwindows get unmapped in the
process.*/
+ if (f->frame_changed)
+ reset_frame_subwindow_instance_cache (f);
+
if (f->frame_changed || f->subwindows_changed)
{
/* we have to do this so the gutter gets regenerated. */
if (f->frame_changed || f->subwindows_changed)
{
/* we have to do this so the gutter gets regenerated. */
@@
-7530,7
+7538,7
@@
point_would_be_visible (struct window *w, Bufpos startp, Bufpos point)
displayed. The end of the last line is also know as the window end
position.
displayed. The end of the last line is also know as the window end
position.
- WARNING: It is possible that rediplay failed to layout any lines for the
+ WARNING: It is possible that redisplay failed to layout any lines for the
windows. Under normal circumstances this is rare. However it seems that it
does occur in the following situation: A mouse event has come in and we
need to compute its location in a window. That code (in
windows. Under normal circumstances this is rare. However it seems that it
does occur in the following situation: A mouse event has come in and we
need to compute its location in a window. That code (in
@@
-8890,7
+8898,7
@@
input and is guaranteed to proceed to completion.
redisplay_frame (f, 1);
redisplay_frame (f, 1);
- /* If we don't reset the global redisplay flafs here, subsequent
+ /* If we don't reset the global redisplay flags here, subsequent
changes to the display will not get registered by redisplay
because it thinks it already has registered changes. If you
really knew what you were doing you could confuse redisplay by
changes to the display will not get registered by redisplay
because it thinks it already has registered changes. If you
really knew what you were doing you could confuse redisplay by
@@
-9175,6
+9183,15
@@
init_redisplay (void)
}
#endif /* HAVE_X_WINDOWS */
}
#endif /* HAVE_X_WINDOWS */
+#ifdef HAVE_GTK
+ if (!strcmp (display_use, "gtk"))
+ {
+ Vwindow_system = Qgtk;
+ Vinitial_window_system = Qgtk;
+ return;
+ }
+#endif
+
#ifdef HAVE_MS_WINDOWS
if (!strcmp (display_use, "mswindows"))
{
#ifdef HAVE_MS_WINDOWS
if (!strcmp (display_use, "mswindows"))
{
@@
-9283,7
+9300,7
@@
See also `overlay-arrow-string'.
DEFVAR_LISP_MAGIC ("overlay-arrow-string", &Voverlay_arrow_string /*
String or glyph to display as an arrow. See also `overlay-arrow-position'.
DEFVAR_LISP_MAGIC ("overlay-arrow-string", &Voverlay_arrow_string /*
String or glyph to display as an arrow. See also `overlay-arrow-position'.
-(Note that despite the name of this variable, it can be set to a glyph as
+\(Note that despite the name of this variable, it can be set to a glyph as
well as a string.)
*/ ,
redisplay_variable_changed);
well as a string.)
*/ ,
redisplay_variable_changed);
@@
-9364,7
+9381,7
@@
Non-nil means put cursor in minibuffer, at end of any message there.
maybe a caret cursor, etc. */
DEFVAR_LISP ("bar-cursor", &Vbar_cursor /*
maybe a caret cursor, etc. */
DEFVAR_LISP ("bar-cursor", &Vbar_cursor /*
-Use vertical bar cursor if non-nil. If t width is 1 pixel, otherwise 2.
+*Use vertical bar cursor if non-nil. If t width is 1 pixel, otherwise 2.
*/ );
Vbar_cursor = Qnil;
*/ );
Vbar_cursor = Qnil;
@@
-9448,7
+9465,7
@@
This is a specifier; use `set-specifier' to change it.
offsetof (struct window, left_margin_width),
some_window_value_changed,
offsetof (struct frame, left_margin_width),
offsetof (struct window, left_margin_width),
some_window_value_changed,
offsetof (struct frame, left_margin_width),
- margin_width_changed_in_frame);
+ margin_width_changed_in_frame, 0);
DEFVAR_SPECIFIER ("right-margin-width", &Vright_margin_width /*
*Width of right margin.
DEFVAR_SPECIFIER ("right-margin-width", &Vright_margin_width /*
*Width of right margin.
@@
-9460,7
+9477,7
@@
This is a specifier; use `set-specifier' to change it.
offsetof (struct window, right_margin_width),
some_window_value_changed,
offsetof (struct frame, right_margin_width),
offsetof (struct window, right_margin_width),
some_window_value_changed,
offsetof (struct frame, right_margin_width),
- margin_width_changed_in_frame);
+ margin_width_changed_in_frame, 0);
DEFVAR_SPECIFIER ("minimum-line-ascent", &Vminimum_line_ascent /*
*Minimum ascent height of lines.
DEFVAR_SPECIFIER ("minimum-line-ascent", &Vminimum_line_ascent /*
*Minimum ascent height of lines.
@@
-9471,7
+9488,7
@@
This is a specifier; use `set-specifier' to change it.
set_specifier_caching (Vminimum_line_ascent,
offsetof (struct window, minimum_line_ascent),
some_window_value_changed,
set_specifier_caching (Vminimum_line_ascent,
offsetof (struct window, minimum_line_ascent),
some_window_value_changed,
- 0, 0);
+ 0, 0, 0);
DEFVAR_SPECIFIER ("minimum-line-descent", &Vminimum_line_descent /*
*Minimum descent height of lines.
DEFVAR_SPECIFIER ("minimum-line-descent", &Vminimum_line_descent /*
*Minimum descent height of lines.
@@
-9482,7
+9499,7
@@
This is a specifier; use `set-specifier' to change it.
set_specifier_caching (Vminimum_line_descent,
offsetof (struct window, minimum_line_descent),
some_window_value_changed,
set_specifier_caching (Vminimum_line_descent,
offsetof (struct window, minimum_line_descent),
some_window_value_changed,
- 0, 0);
+ 0, 0, 0);
DEFVAR_SPECIFIER ("use-left-overflow", &Vuse_left_overflow /*
*Non-nil means use the left outside margin as extra whitespace when
DEFVAR_SPECIFIER ("use-left-overflow", &Vuse_left_overflow /*
*Non-nil means use the left outside margin as extra whitespace when
@@
-9494,7
+9511,7
@@
This is a specifier; use `set-specifier' to change it.
set_specifier_caching (Vuse_left_overflow,
offsetof (struct window, use_left_overflow),
some_window_value_changed,
set_specifier_caching (Vuse_left_overflow,
offsetof (struct window, use_left_overflow),
some_window_value_changed,
- 0, 0);
+ 0, 0, 0);
DEFVAR_SPECIFIER ("use-right-overflow", &Vuse_right_overflow /*
*Non-nil means use the right outside margin as extra whitespace when
DEFVAR_SPECIFIER ("use-right-overflow", &Vuse_right_overflow /*
*Non-nil means use the right outside margin as extra whitespace when
@@
-9506,7
+9523,7
@@
This is a specifier; use `set-specifier' to change it.
set_specifier_caching (Vuse_right_overflow,
offsetof (struct window, use_right_overflow),
some_window_value_changed,
set_specifier_caching (Vuse_right_overflow,
offsetof (struct window, use_right_overflow),
some_window_value_changed,
- 0, 0);
+ 0, 0, 0);
DEFVAR_SPECIFIER ("text-cursor-visible-p", &Vtext_cursor_visible_p /*
*Non-nil means the text cursor is visible (this is usually the case).
DEFVAR_SPECIFIER ("text-cursor-visible-p", &Vtext_cursor_visible_p /*
*Non-nil means the text cursor is visible (this is usually the case).
@@
-9517,6
+9534,6
@@
This is a specifier; use `set-specifier' to change it.
set_specifier_caching (Vtext_cursor_visible_p,
offsetof (struct window, text_cursor_visible_p),
text_cursor_visible_p_changed,
set_specifier_caching (Vtext_cursor_visible_p,
offsetof (struct window, text_cursor_visible_p),
text_cursor_visible_p_changed,
- 0, 0);
+ 0, 0, 0);
}
}