From: Jan Djärv Date: Fri, 24 Dec 2010 10:14:44 +0000 (+0100) Subject: * xterm.c (x_check_fullscreen): Fix pixel/character mixup. X-Git-Tag: emacs-pretest-23.2.92~42 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=84595ff0e36ef8dab302dc9104c923f5f6664a44;p=emacs.git * xterm.c (x_check_fullscreen): Fix pixel/character mixup. --- diff --git a/src/ChangeLog b/src/ChangeLog index f7022e4a350..8574622c187 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-12-24 Jan Djärv + + * xterm.c (x_check_fullscreen): Fix pixel/character mixup. + 2010-12-17 Eli Zaretskii * xdisp.c (Fformat_mode_line): Fix last change. diff --git a/src/xterm.c b/src/xterm.c index 22019e2279b..83dd4a4d83f 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -8764,9 +8764,13 @@ x_check_fullscreen (f) 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 @@ x_check_fullscreen (f) 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); } }