GNU bug report logs - #13426
Frame parameter fullscreen and maximized

Previous Next

Package: emacs;

Reported by: Juri Linkov <juri <at> jurta.org>

Date: Sun, 13 Jan 2013 10:18:02 UTC

Severity: normal

Done: Juri Linkov <juri <at> jurta.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> jurta.org>
To: bug-gnu-emacs <at> gnu.org
Subject: Frame parameter fullscreen and maximized
Date: Sun, 13 Jan 2013 12:16:23 +0200
There are two problems discovered at
http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00203.html

1. On non-GTK builds when the Gnome system key M-f10 maximizes the frame,
   Emacs doesn't reflect this change in the frame parameter `fullscreen'.

   The test case that demonstrates this problem:

   1. emacs -Q
   2. Eval (frame-parameter nil 'fullscreen) => nil
   3. Maximize the frame using Gnome system keys.
   4. Eval (frame-parameter nil 'fullscreen) => nil
   5. Maximize the frame using `M-x toggle-frame-maximized RET'
   6. Eval (frame-parameter nil 'fullscreen) => 'maximized

   Running xprop on the maximized frame outputs:
   _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ

2. On GTK builds there is another problem: evaluating

   (set-frame-parameter nil 'fullscreen 'fullscreen)

   modifies the frame parameter `fullscreen' to `fullboth',
   not to `fullscreen' as requested.  In this case xprop outputs:
   _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN

   Second call of (set-frame-parameter nil 'fullscreen 'fullscreen)
   modifies the frame parameter `fullscreen' from `fullboth' to `fullscreen'.

   So to go to `fullscreen' requires two calls of
   (set-frame-parameter nil 'fullscreen 'fullscreen)

   Maybe the second problem could be fixed with a patch like below where
   `toggle-frame-fullscreen' checks for `fullboth' as an alias for `fullscreen':

=== modified file 'lisp/frame.el'
--- lisp/frame.el	2013-01-03 00:36:36 +0000
+++ lisp/frame.el	2013-01-13 10:13:09 +0000
@@ -1666,7 +1666,7 @@ (defun toggle-frame-maximized ()
 after disabling fullscreen mode.
 See also `toggle-frame-fullscreen'."
   (interactive)
-  (if (eq (frame-parameter nil 'fullscreen) 'fullscreen)
+  (if (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth))
       (modify-frame-parameters
        nil
        `((maximized
@@ -1690,10 +1690,10 @@ (defun toggle-frame-fullscreen ()
   (modify-frame-parameters
    nil
    `((maximized
-      . ,(unless (eq (frame-parameter nil 'fullscreen) 'fullscreen)
+      . ,(unless (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth))
 	   (frame-parameter nil 'fullscreen)))
      (fullscreen
-      . ,(if (eq (frame-parameter nil 'fullscreen) 'fullscreen)
+      . ,(if (memq (frame-parameter nil 'fullscreen) '(fullscreen fullboth))
 	     (if (eq (frame-parameter nil 'maximized) 'maximized)
 		 'maximized)
 	   'fullscreen)))))





This bug report was last modified 10 years and 137 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.