diff options
author | Po Lu <luangruo@yahoo.com> | 2022-06-05 13:03:55 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-06-05 13:05:56 +0800 |
commit | e4725ab688f0c64f79312b32ce6fb3bc7f0b4b51 (patch) | |
tree | 1335df50482b934425c8f557abbdca14425ec536 | |
parent | 7d7a6f6719ddf99a4afefe6ae44f7cba48707d45 (diff) | |
download | emacs-e4725ab688f0c64f79312b32ce6fb3bc7f0b4b51.tar.gz emacs-e4725ab688f0c64f79312b32ce6fb3bc7f0b4b51.tar.bz2 emacs-e4725ab688f0c64f79312b32ce6fb3bc7f0b4b51.zip |
Fix bug#55779
* src/xterm.c (x_update_opaque_region): Don't make GTK reset the
opaque region if F is a child frame.
-rw-r--r-- | src/xterm.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/xterm.c b/src/xterm.c index 3b60dba69bd..a6ef2bfd159 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -4349,11 +4349,16 @@ x_update_opaque_region (struct frame *f, XEvent *configure) (unsigned char *) &opaque_region, 4); else { - object_class = G_OBJECT_GET_CLASS (FRAME_GTK_OUTER_WIDGET (f)); - class = GTK_WIDGET_CLASS (object_class); + /* This causes child frames to not update correctly for an + unknown reason. (bug#55779) */ + if (!FRAME_PARENT_FRAME (f)) + { + object_class = G_OBJECT_GET_CLASS (FRAME_GTK_OUTER_WIDGET (f)); + class = GTK_WIDGET_CLASS (object_class); - if (class->style_updated) - class->style_updated (FRAME_GTK_OUTER_WIDGET (f)); + if (class->style_updated) + class->style_updated (FRAME_GTK_OUTER_WIDGET (f)); + } } #endif unblock_input (); |