all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#13426: Frame parameter fullscreen and maximized
@ 2013-01-13 10:16 Juri Linkov
  2015-01-04 18:09 ` martin rudalics
  0 siblings, 1 reply; 4+ messages in thread
From: Juri Linkov @ 2013-01-13 10:16 UTC (permalink / raw
  To: 13426

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)))))






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13426: Frame parameter fullscreen and maximized
  2013-01-13 10:16 bug#13426: Frame parameter fullscreen and maximized Juri Linkov
@ 2015-01-04 18:09 ` martin rudalics
  2015-01-11 20:57   ` Juri Linkov
  0 siblings, 1 reply; 4+ messages in thread
From: martin rudalics @ 2015-01-04 18:09 UTC (permalink / raw
  To: Juri Linkov, 13426

Hi Juri

 > 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':

Are these issues still valid?  There have been lots of changes in this
area.

martin






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13426: Frame parameter fullscreen and maximized
  2015-01-04 18:09 ` martin rudalics
@ 2015-01-11 20:57   ` Juri Linkov
  2015-01-12  7:37     ` martin rudalics
  0 siblings, 1 reply; 4+ messages in thread
From: Juri Linkov @ 2015-01-11 20:57 UTC (permalink / raw
  To: martin rudalics; +Cc: 13426-done

> Are these issues still valid?  There have been lots of changes in this
> area.

Both issues are fixed.

However, now I see another related problem: having this code in ~/.emacs,

  (add-hook 'after-init-hook
            (lambda ()
              (toggle-frame-maximized))
            t)

I get a maximized frame visually, but internally with unmaximized dimensions,
i.e. mouse avoidance moves the mouse pointer to the middle of the frame instead
of the edges (because it uses frame dimensions from unmaximized frame), etc.
This is a recent bug that breaks frame dimensions after desktop frame restore.
If you already know about this problem, could you please point me to the
existing bug report, or should I create a new one?





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#13426: Frame parameter fullscreen and maximized
  2015-01-11 20:57   ` Juri Linkov
@ 2015-01-12  7:37     ` martin rudalics
  0 siblings, 0 replies; 4+ messages in thread
From: martin rudalics @ 2015-01-12  7:37 UTC (permalink / raw
  To: Juri Linkov; +Cc: 13426-done

 > Both issues are fixed.

Fine.

 > However, now I see another related problem: having this code in ~/.emacs,
 >
 >    (add-hook 'after-init-hook
 >              (lambda ()
 >                (toggle-frame-maximized))
 >              t)
 >
 > I get a maximized frame visually, but internally with unmaximized dimensions,
 > i.e. mouse avoidance moves the mouse pointer to the middle of the frame instead
 > of the edges (because it uses frame dimensions from unmaximized frame), etc.

Works normally on Windows here.  What does `window--dump-frame' produce
on such a frame?  Do you get the same behavior when you add (fullscreen
. maximized) to `initial-frame-alist' or `default-frame-alist'?

 > This is a recent bug that breaks frame dimensions after desktop frame restore.

Hmmm...  How recent?  Does desktop frame restore use `toggle-frame-maximized'?

 > If you already know about this problem, could you please point me to the
 > existing bug report, or should I create a new one?

Please create a new one.

martin





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-01-12  7:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-13 10:16 bug#13426: Frame parameter fullscreen and maximized Juri Linkov
2015-01-04 18:09 ` martin rudalics
2015-01-11 20:57   ` Juri Linkov
2015-01-12  7:37     ` martin rudalics

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.