summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/buffer.h10
-rw-r--r--src/w32fns.c8
-rw-r--r--src/window.h3
-rw-r--r--src/xfns.c8
4 files changed, 26 insertions, 3 deletions
diff --git a/src/buffer.h b/src/buffer.h
index 46c7c6e5ad6..ecd2360dbca 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -949,6 +949,16 @@ bset_display_count (struct buffer *b, Lisp_Object val)
b->display_count_ = val;
}
INLINE void
+bset_left_margin_cols (struct buffer *b, Lisp_Object val)
+{
+ b->left_margin_cols_ = val;
+}
+INLINE void
+bset_right_margin_cols (struct buffer *b, Lisp_Object val)
+{
+ b->right_margin_cols_ = val;
+}
+INLINE void
bset_display_time (struct buffer *b, Lisp_Object val)
{
b->display_time_ = val;
diff --git a/src/w32fns.c b/src/w32fns.c
index 43af1122fad..b81cd70e0a7 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -7346,6 +7346,7 @@ Text larger than the specified size is clipped. */)
ptrdiff_t count = SPECPDL_INDEX ();
ptrdiff_t count_1;
Lisp_Object window, size;
+ Lisp_Object tip_buf;
AUTO_STRING (tip, " *tip*");
specbind (Qinhibit_redisplay, Qt);
@@ -7503,7 +7504,12 @@ Text larger than the specified size is clipped. */)
tip_f = XFRAME (tip_frame);
window = FRAME_ROOT_WINDOW (tip_f);
- set_window_buffer (window, Fget_buffer_create (tip), false, false);
+ tip_buf = Fget_buffer_create (tip);
+ /* We will mark the tip window a "pseudo-window" below, and such
+ windows cannot have display margins. */
+ bset_left_margin_cols (XBUFFER (tip_buf), make_number (0));
+ bset_right_margin_cols (XBUFFER (tip_buf), make_number (0));
+ set_window_buffer (window, tip_buf, false, false);
w = XWINDOW (window);
w->pseudo_window_p = true;
diff --git a/src/window.h b/src/window.h
index 25c9686a9f0..563a6f6ff0d 100644
--- a/src/window.h
+++ b/src/window.h
@@ -370,7 +370,8 @@ struct window
bool_bf must_be_updated_p : 1;
/* Flag indicating that this window is not a real one.
- Currently only used for menu bar windows of frames. */
+ Currently only used for menu bar windows, for tool bar windows,
+ and for tooltips. */
bool_bf pseudo_window_p : 1;
/* True means fringes are drawn outside display margins.
diff --git a/src/xfns.c b/src/xfns.c
index bbe73aa7c28..044f14876e3 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -6623,6 +6623,7 @@ Text larger than the specified size is clipped. */)
ptrdiff_t count = SPECPDL_INDEX ();
ptrdiff_t count_1;
Lisp_Object window, size;
+ Lisp_Object tip_buf;
AUTO_STRING (tip, " *tip*");
specbind (Qinhibit_redisplay, Qt);
@@ -6787,7 +6788,12 @@ Text larger than the specified size is clipped. */)
tip_f = XFRAME (tip_frame);
window = FRAME_ROOT_WINDOW (tip_f);
- set_window_buffer (window, Fget_buffer_create (tip), false, false);
+ tip_buf = Fget_buffer_create (tip);
+ /* We will mark the tip window a "pseudo-window" below, and such
+ windows cannot have display margins. */
+ bset_left_margin_cols (XBUFFER (tip_buf), make_number (0));
+ bset_right_margin_cols (XBUFFER (tip_buf), make_number (0));
+ set_window_buffer (window, tip_buf, false, false);
w = XWINDOW (window);
w->pseudo_window_p = true;