]> code.delx.au - gnu-emacs/commitdiff
* xterm.c (x_new_font): Call change_frame_size before calling
authorJan Djärv <jan.h.d@swipnet.se>
Tue, 15 Sep 2009 18:49:56 +0000 (18:49 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Tue, 15 Sep 2009 18:49:56 +0000 (18:49 +0000)
x_set_window_size, in case frame size won't change.

* frame.c (x_set_font): Remove dead code.

src/ChangeLog
src/frame.c
src/xterm.c

index bdbb03e389fdf4cd3708f15d67579e3417689728..22fc6507cc7e0e14cabd32e7d341b626aa0603e4 100644 (file)
@@ -1,3 +1,10 @@
+2009-09-15  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * xterm.c (x_new_font): Call change_frame_size before calling
+       x_set_window_size, in case frame size won't change.
+
+       * frame.c (x_set_font): Remove dead code.
+
 2009-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * lread.c (Fload): Also run do-after-load-evaluation while dumping.
index 166a9a9db31b414c53d6e5d84152521592275962..dbcd67f0603791bd8de100df38c708a69c74901b 100644 (file)
@@ -3407,9 +3407,6 @@ x_set_font (f, arg, oldval)
     return;
 
   
-  lval = Fassq (Qfullscreen, f->param_alist);
-  if (CONSP (lval)) lval = CDR (lval);
-
   x_new_font (f, font_object, fontset);
   store_frame_param (f, Qfont, arg);
   /* Recalculate toolbar height.  */
index a2af7894cc20af82cd0dc00bed84d5543e24d557..72aea94e8b394ac69b884f76994d0496aa02a156 100644 (file)
@@ -8026,7 +8026,20 @@ x_new_font (f, font_object, fontset)
         doing it because it's done in Fx_show_tip, and it leads to
         problems because the tip frame has no widget.  */
       if (NILP (tip_frame) || XFRAME (tip_frame) != f)
-       x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
+        {
+          /* When the frame is maximized/fullscreen or running under for
+             example Xmonad, x_set_window_size will be a no-op.
+             In that case, the right thing to do is extend rows/cols to
+             the current frame size.  We do that first if x_set_window_size
+             turns out to not be a no-op (there is no way to know).
+             The size will be adjusted again if the frame gets a
+             ConfigureNotify event as a result of x_set_window_size.  */
+          int rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f,
+                                                       FRAME_PIXEL_HEIGHT (f));
+          int cols = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, FRAME_PIXEL_WIDTH (f));
+          change_frame_size (f, rows, cols, 0, 1, 0);
+          x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
+        }
     }
 
 #ifdef HAVE_X_I18N