[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 55e9d729ca: Fix Motif DND after atom ownership is lost due to fra
From: |
Po Lu |
Subject: |
master 55e9d729ca: Fix Motif DND after atom ownership is lost due to frame destruction |
Date: |
Thu, 16 Jun 2022 02:01:02 -0400 (EDT) |
branch: master
commit 55e9d729ca34c4dd05bfb0d606425b8fc27d53ca
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix Motif DND after atom ownership is lost due to frame destruction
* src/xterm.c (xm_get_drag_atom_1): Record owner.
(x_free_frame_resources): Clear drag atom if owner was freed.
* src/xterm.h (struct x_display_info): New field
`motif_drag_atom_owner'.
---
src/xterm.c | 7 +++++++
src/xterm.h | 3 +++
2 files changed, 10 insertions(+)
diff --git a/src/xterm.c b/src/xterm.c
index cc47427a9d..04e3223478 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -2281,6 +2281,7 @@ xm_get_drag_atom_1 (struct x_display_info *dpyinfo,
}
dpyinfo->motif_drag_atom_time = dpyinfo->last_user_time;
+ dpyinfo->motif_drag_atom_owner = source_frame;
XUngrabServer (dpyinfo->display);
return atom;
@@ -25310,6 +25311,12 @@ x_free_frame_resources (struct frame *f)
g_object_unref (FRAME_OUTPUT_DATA (f)->scrollbar_foreground_css_provider);
#endif
+ if (f == dpyinfo->motif_drag_atom_owner)
+ {
+ dpyinfo->motif_drag_atom_owner = NULL;
+ dpyinfo->motif_drag_atom = None;
+ }
+
if (f == dpyinfo->x_focus_frame)
dpyinfo->x_focus_frame = 0;
if (f == dpyinfo->x_focus_event_frame)
diff --git a/src/xterm.h b/src/xterm.h
index 119382c73c..ad0df6bff9 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -576,6 +576,9 @@ struct x_display_info
/* When it was owned. */
Time motif_drag_atom_time;
+ /* The frame that currently owns `motif_drag_atom'. */
+ struct frame *motif_drag_atom_owner;
+
/* Extended window manager hints, Atoms supported by the window manager and
atoms for setting the window type. */
Atom Xatom_net_supported, Xatom_net_supporting_wm_check;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 55e9d729ca: Fix Motif DND after atom ownership is lost due to frame destruction,
Po Lu <=