changeset 112065:95ad5a35063d

* xterm.c (x_check_fullscreen): Fix pixel/character mixup.
author Jan D. <jan.h.d@swipnet.se>
date Fri, 24 Dec 2010 11:14:44 +0100
parents f04d713b43e1
children 4c862bc17cdb 72501dc91d7c
files src/ChangeLog src/xterm.c
diffstat 2 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Dec 24 10:07:39 2010 +0100
+++ b/src/ChangeLog	Fri Dec 24 11:14:44 2010 +0100
@@ -1,3 +1,7 @@
+2010-12-24  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* xterm.c (x_check_fullscreen): Fix pixel/character mixup.
+
 2010-12-17  Eli Zaretskii  <eliz@gnu.org>
 
 	* xdisp.c (Fformat_mode_line): Fix last change.
--- a/src/xterm.c	Fri Dec 24 10:07:39 2010 +0100
+++ b/src/xterm.c	Fri Dec 24 11:14:44 2010 +0100
@@ -8764,9 +8764,13 @@
   if (f->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window)
     return; /* Only fullscreen without WM or with EWM hints (above). */
 
+  /* Setting fullscreen to nil doesn't do anything.  We could save the
+     last non-fullscreen size and restore it, but it seems like a
+     lot of work for this unusual case (no window manager running).  */
+
   if (f->want_fullscreen != FULLSCREEN_NONE)
     {
-      int width = FRAME_COLS (f), height = FRAME_LINES (f);
+      int width = FRAME_PIXEL_WIDTH (f), height = FRAME_PIXEL_HEIGHT (f);
       struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
 
       switch (f->want_fullscreen)
@@ -8783,13 +8787,9 @@
         case FULLSCREEN_HEIGHT:
           height = x_display_pixel_height (dpyinfo);
         }
-      
-      if (FRAME_COLS (f) != width || FRAME_LINES (f) != height)
-        {
-          change_frame_size (f, height, width, 0, 1, 0);
-          SET_FRAME_GARBAGED (f);
-          cancel_mouse_face (f);
-        }
+
+      XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
+                     width, height);
     }
 }