[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 8d0c19f: Lower xwidget views owned by parent when lowering frame
From: |
Po Lu |
Subject: |
master 8d0c19f: Lower xwidget views owned by parent when lowering frame |
Date: |
Tue, 16 Nov 2021 04:53:18 -0500 (EST) |
branch: master
commit 8d0c19fb0c368692f4b17728c0eaf3e16e0c70f7
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Lower xwidget views owned by parent when lowering frame
* src/xterm.c (x_lower_frame): Lower parent frame's xwidget
views as well.
* src/xwidget.h (lower_frame_xwidget_views):
* src/xwidget.c (lower_frame_xwidget_views): New function.
---
src/xterm.c | 7 +++++++
src/xwidget.c | 14 ++++++++++++++
src/xwidget.h | 1 +
3 files changed, 22 insertions(+)
diff --git a/src/xterm.c b/src/xterm.c
index 5988d3a..816b6dc 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -11723,6 +11723,13 @@ x_lower_frame (struct frame *f)
XFlush (FRAME_X_DISPLAY (f));
unblock_input ();
}
+#ifdef HAVE_XWIDGETS
+ /* Make sure any X windows owned by xwidget views of the parent
+ still display below the lowered frame. */
+
+ if (FRAME_PARENT_FRAME (f))
+ lower_frame_xwidget_views (FRAME_PARENT_FRAME (f));
+#endif
}
static void
diff --git a/src/xwidget.c b/src/xwidget.c
index 008eb07..650572a 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -2811,6 +2811,20 @@ xwidget_end_redisplay (struct window *w, struct
glyph_matrix *matrix)
#ifdef USE_GTK
void
+lower_frame_xwidget_views (struct frame *f)
+{
+ struct xwidget_view *xv;
+
+ for (Lisp_Object tail = internal_xwidget_view_list; CONSP (tail);
+ tail = XCDR (tail))
+ {
+ xv = XXWIDGET_VIEW (XCAR (tail));
+ if (xv->frame == f && xv->wdesc != None)
+ XLowerWindow (xv->dpy, xv->wdesc);
+ }
+}
+
+void
kill_frame_xwidget_views (struct frame *f)
{
Lisp_Object rem = Qnil;
diff --git a/src/xwidget.h b/src/xwidget.h
index df55dac..2f6d044 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -188,6 +188,7 @@ extern struct xwidget *xwidget_from_id (uint32_t id);
#ifdef HAVE_X_WINDOWS
struct xwidget_view *xwidget_view_from_window (Window wdesc);
void xwidget_expose (struct xwidget_view *xv);
+extern void lower_frame_xwidget_views (struct frame *f);
extern void kill_frame_xwidget_views (struct frame *f);
extern void xwidget_button (struct xwidget_view *, bool, int,
int, int, int, Time);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 8d0c19f: Lower xwidget views owned by parent when lowering frame,
Po Lu <=