aboutsummaryrefslogtreecommitdiffstats
path: root/src/frame.c
diff options
context:
space:
mode:
authorMartin Rudalics2020-04-06 09:22:36 +0200
committerMartin Rudalics2020-04-06 09:22:36 +0200
commitc49d379f17bcb0ce82604def2eaa04bda00bd5ec (patch)
treee33f6534413fb16a198739c0ca3f160a28a5edd3 /src/frame.c
parent6de20c7eab0dd8360e78d744dbf62aecc7f78281 (diff)
downloademacs-c49d379f17bcb0ce82604def2eaa04bda00bd5ec.tar.gz
emacs-c49d379f17bcb0ce82604def2eaa04bda00bd5ec.zip
Fix some problems with moving and resizing child frames
(1) Provide new option 'x-gtk-resize-child-frames' which allows to either hide a child frame during resizing or asks GTK to resize it "immediately". This is needed because desktops like GNOME shell otherwise won't allow resizing child frames at all. (2) Do not try to synchronize the position of a child frame after moving it. Needed because the present implementation introduces a 0.5 secs delay which makes dragging child frames virtually impossible with Lucid and Motif toolkits on desktops like GNOME shell that use invisible outer frame borders. For further information see the thread starting with https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00343.html * src/frame.c (syms_of_frame): New symbol Qxg_frame_set_char_size_4. * src/gtkutil.c (xg_frame_set_char_size): Hide child frame during resizing when 'x-gtk-resize-child-frames' equals 'hide'. * src/xfns.c (x_set_parent_frame, Fx_create_frame): Set gtk_container_resize_mode to GTK_RESIZE_IMMEDIATE for child frames when'x-gtk-resize-child-frames' equals 'resize-mode'. (Fx_gtk_debug): New function to toggle interactive GTK debugging from within Emacs. (syms_of_xfns): New symbols Qhide and Qresize_mode. (x-gtk-resize-child-frames): New option that allows to resize child frames on desktops like GNOME shell (with the mutter WM) that otherwise refuse to resize them. * src/xterm.c (x_set_offset): Don't x_sync_with_move for child frames, it makes moving child frames virtually impossible with the Lucid and Motif toolkits.
Diffstat (limited to 'src/frame.c')
-rw-r--r--src/frame.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/frame.c b/src/frame.c
index ecf175f4f99..4dd8bb18041 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -5943,6 +5943,7 @@ syms_of_frame (void)
5943 DEFSYM (Qxg_frame_set_char_size_1, "xg-frame-set-char-size-1"); 5943 DEFSYM (Qxg_frame_set_char_size_1, "xg-frame-set-char-size-1");
5944 DEFSYM (Qxg_frame_set_char_size_2, "xg-frame-set-char-size-2"); 5944 DEFSYM (Qxg_frame_set_char_size_2, "xg-frame-set-char-size-2");
5945 DEFSYM (Qxg_frame_set_char_size_3, "xg-frame-set-char-size-3"); 5945 DEFSYM (Qxg_frame_set_char_size_3, "xg-frame-set-char-size-3");
5946 DEFSYM (Qxg_frame_set_char_size_4, "xg-frame-set-char-size-4");
5946 DEFSYM (Qx_set_window_size_1, "x-set-window-size-1"); 5947 DEFSYM (Qx_set_window_size_1, "x-set-window-size-1");
5947 DEFSYM (Qx_set_window_size_2, "x-set-window-size-2"); 5948 DEFSYM (Qx_set_window_size_2, "x-set-window-size-2");
5948 DEFSYM (Qx_set_window_size_3, "x-set-window-size-3"); 5949 DEFSYM (Qx_set_window_size_3, "x-set-window-size-3");