Mercurial > emacs
changeset 103198:f63bce93c7a1
* gtkutil.c (xg_frame_set_char_size): Set frame pixel width/height to
what we expect to get in the next ConfigureNotify event.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Mon, 11 May 2009 06:42:45 +0000 |
parents | 0c6730c52151 |
children | 3b14cedd241f |
files | src/ChangeLog src/gtkutil.c |
diffstat | 2 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Mon May 11 06:15:14 2009 +0000 +++ b/src/ChangeLog Mon May 11 06:42:45 2009 +0000 @@ -1,3 +1,8 @@ +2009-05-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * gtkutil.c (xg_frame_set_char_size): Set frame pixel width/height to + what we expect to get in the next ConfigureNotify event. + 2009-05-07 David Reitter <david.reitter@gmail.com> * nsfns.m (Fx_display_planes): Compute bitplanes using
--- a/src/gtkutil.c Mon May 11 06:15:14 2009 +0000 +++ b/src/gtkutil.c Mon May 11 06:42:45 2009 +0000 @@ -736,6 +736,29 @@ x_wm_size_hint_off (f); gtk_window_resize (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), pixelwidth, pixelheight); + + /* Now, strictly speaking, we can't be sure that this is accurate, + but the window manager will get around to dealing with the size + change request eventually, and we'll hear how it went when the + ConfigureNotify event gets here. + + We could just not bother storing any of this information here, + and let the ConfigureNotify event set everything up, but that + might be kind of confusing to the Lisp code, since size changes + wouldn't be reported in the frame parameters until some random + point in the future when the ConfigureNotify event arrives. + + We pass 1 for DELAY since we can't run Lisp code inside of + a BLOCK_INPUT. */ + change_frame_size (f, rows, cols, 0, 1, 0); + FRAME_PIXEL_WIDTH (f) = pixelwidth; + FRAME_PIXEL_HEIGHT (f) = pixelheight; + + /* We've set {FRAME,PIXEL}_{WIDTH,HEIGHT} to the values we hope to + receive in the ConfigureNotify event; if we get what we asked + for, then the event won't cause the screen to become garbaged, so + we have to make sure to do it here. */ + SET_FRAME_GARBAGED (f); flush_and_sync (f); x_wm_set_size_hint (f, 0, 0); }