emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proposal for a new API to fullscreen


From: Jan Djärv
Subject: Re: Proposal for a new API to fullscreen
Date: Tue, 19 Aug 2008 15:49:42 +0200
User-agent: Thunderbird 2.0.0.16 (Macintosh/20080707)



Tassilo Horn skrev:

In my opinion "size of the screen" != "size of the screen excluding
taskbar and stuff".  So I'd consider that w32 behavior a bug.
Well 'fullheight' does screen height minus taskbar in Gnome.

Hm, in KDE it's the same.  For fullwidth and fullheight this make sense,
because I don't think anyone wants to have a frame which doesn't use the
full screen but is on top of the task bar.

What is lacking is a way to specify "real" fullscreen (i.e. cover the whole screen) and also be able to specify maximized (i.e. with decorations and taskbar visible).

After looking at the code for many days, it could be simplified by
creating a new API for fullscreen that just DTRT on X, Mac and
Windows.

DTRT is always very good.  ;-) Now we only have to agree on TRT.  IMHO
there's no such thing as fullscreen width or fullscreen height, only
fullscreen as described by the NetWM spec.

It isn't called netwm-spec, it is called Extended Window Manager Hints:

_NET_WM_STATE:

"Possible atoms are:

_NET_WM_STATE_MODAL, ATOM
_NET_WM_STATE_STICKY, ATOM
_NET_WM_STATE_MAXIMIZED_VERT, ATOM
_NET_WM_STATE_MAXIMIZED_HORZ, ATOM
_NET_WM_STATE_SHADED, ATOM
_NET_WM_STATE_SKIP_TASKBAR, ATOM
_NET_WM_STATE_SKIP_PAGER, ATOM
_NET_WM_STATE_HIDDEN, ATOM
_NET_WM_STATE_FULLSCREEN, ATOM
_NET_WM_STATE_ABOVE, ATOM
_NET_WM_STATE_BELOW, ATOM
_NET_WM_STATE_DEMANDS_ATTENTION, ATOM
"

MAXIMIZED_VERT/HORZ exists. Setting both these is by convention to maximize. Setting FULLSCREEN does real fullscreen.



The other values the fullscreen frame parameter allows are indeed
vertical and horizontal maximizations, but they don't work correctly,
because you cannot un-maximize to the old size again.  A

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

followed by

  (set-frame-parameter nil 'fullscreen nil)

won't change the frame size anymore, at least not here.

That would be a bug, either in Emacs or the window manager. What WM are you running?

The API is easy to change, but we should keep the _NET_WM_STATE implementation. It is confusing if Emacs does things differently. Also, implementing and testing for many different window managers is quite an effort.


        Jan D.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]