If no one has any other comments, could someone (Lubos?) get this committed to 
the spec? Thanks!


grant


Grant Patterson wrote:
> No more comments for a few days--here's the latest revision. If no one 
> else has comments before, say, Friday, could we go ahead with adding 
> this to the spec?
> 
> 
>     <sect2>
>         <title>_NET_WM_FULLSCREEN_MONITORS</title>
>         <programlisting><![CDATA[
> _NET_WM_FULLSCREEN_MONITORS, CARDINAL[4]/32
> ]]></programlisting>
>       <para>
> A read-only list of 4 monitor indices indicating the top, bottom, left, and
> right edges of the window when the fullscreen state is enabled. The indices
> are from the set returned by the Xinerama extension.
>       </para>
>       <para>
> Windows transient for the window with _NET_WM_FULLSCREEN_MONITORS set, 
> such as
> those with type _NEW_WM_WINDOW_TYPE_DIALOG, are generally expected to be
> positioned (e.g. centered) with respect to only one of the monitors. This
> might be the monitor containing the mouse pointer or the monitor 
> containing the
> non-full-screen window.
>       </para>
>       <para>
> A Client wishing to change this list MUST send a 
> _NET_WM_FULLSCREEN_MONITORS
> client message to the root window. The Window Manager MUST
> keep this list updated to reflect the current state of the window.
>       </para>
> <programlisting><![CDATA[
>   window  = the respective client window
>   message_type = _NET_WM_FULLSCREEN_MONITORS
>   format = 32
>   data.l[0] = the monitor whose top edge defines the top edge of the 
> fullscreen window
>   data.l[1] = the monitor whose bottom edge defines the bottom edge of 
> the fullscreen window
>   data.l[2] = the monitor whose left edge defines the left edge of the 
> fullscreen window
>   data.l[3] = the monitor whose right edge defines the right edge of the 
> fullscreen window
>   data.l[4] = source indication
> ]]></programlisting>
>       <para>
> See <xref linkend="sourceindication"/> for details on the source 
> indication.
>       </para>
>       <para>
> Virtual machine software may use this hint to have a virtual operating 
> system
> instance that sees multiple monitors. The application window stretches over
> several monitors, giving the appearance that these monitors have been taken
> over by the guest virtual machine.
>       </para>
>       <para>
> This hint might also be used by a movie or presentation application 
> allowing
> users to display the media spanned over several monitors.
>       </para>
>       <para>
> In both cases, the application would have some user interface allowing 
> users
> to configure which monitors the application fullscreens to. The window 
> manager
> need not provide such an interface, though it could.
>       </para>
>       <para>
> In the event of a change in monitor configuration, the application is
> responsible for re-computing the monitors on which it wants to appear.
> The window manager may continue using the same monitor indices as before
> or simply clear the list, returning to "normal" fullscreen.
>       </para>
>        </sect2>
> 
> 
> Grant Patterson wrote:
>> Your hurt-shins argument convinces me, someone who's new to the OSS 
>> world and could use all the consistency he can get! I can't see 
>> anything on the horizon that would warrant leaving extra space in the 
>> message, and the worst-case scenario (we'll have to add another client 
>> message later) isn't that bad. So 32-bit all around?
>>
>> Nathaniel Smith wrote:
>>> On Thu, Mar 06, 2008 at 07:04:32PM -0500, Dana Jansens wrote:
>>>> On 3/4/08, Nathaniel Smith <[EMAIL PROTECTED]> wrote:
>>>>> On Tue, Mar 04, 2008 at 06:55:25PM -0800, Grant Patterson wrote:
>>>>>  > Dana Jansens wrote:
>>>>>  > >There are no other data.l[] elements, only 5.  That said, the 
>>>>> data.s[]
>>>>>  > > elements should be more than enough and allow for more things 
>>>>> to be
>>>>>  > > added in the future, but I realize every other hint 
>>>>> exclusively uses
>>>>>  > > data.l[].  Anyone else have an opinion about this?
>>>>>  > >
>>>>>  > I like the idea of using the 16-bit elements so there's room for 
>>>>> expansion.
>>>>>  > While I can't see any reason for this now, there might be some 
>>>>> flags an app
>>>>>  > would want to set to further define window manager behavior. 
>>>>> Changed.
>>>>>
>>>>>
>>>>> Oh, please don't, there are enough bizarre and surprising
>>>>>  inconsistencies in the X world as it is.  (And this would require a
>>>>>  whole new special case in at least my code.)
>>>>>
>>>>>  If you want future expandability, without using a new atom, then 
>>>>> do it
>>>>>  properly -- mark some fields as "if this field is non-zero, then
>>>>>  discard the event" and some as "if this field is non-zero, then
>>>>>  pretend the field is zero anyway", all that complex cruft.
>>>>>  Alternatively, just accept that the way we do future expansion is by
>>>>>  adding a new, extended atom, a la _NET_WM_STRUT{,_PARTIAL}...
>>>> This change was for the client message, which cannot be expanded in
>>>> the future.  The property itself would remain CARDINAL 32bit typed.
>>> Yes, that is one of the inconsistencies I was referring to.  (The
>>> other is that every other message in the spec uses format=32.)
>>>
>>>> It sounds to me like you misunderstood what was being made 16bit
>>>> fields.
>>> I don't *think* I did, and nothing you've said has made me think
>>> otherwise?  I am using "expandability" in the general sense of "adding
>>> new capabilities to the spec", not in the narrow sense of "adding more
>>> bytes at the end of a property".
>>>
>>> Ultimately either approach works, of course, and I don't expect my
>>> having to write extra code in my event handling routine[1] to weigh
>>> *very* heavily on others (though it does seem to be the only data
>>> point being advanced ATM).  But someone has to speak up in the name of
>>> taste and consistency; it's not like X has such an abundance of it to
>>> spare.  (At the very least, if we do make it a 16-bit message
>>> can we put a capital-letter warning in the spec pointing this out?
>>> Implementors are just going to bark their shins on it otherwise, and
>>> setting people up for hurt shins seems mean to me.)
>>>
>>> [1] The code I have now can only handle client messages with format 32
>>> because, well, that's the only sort of client message that actually
>>> exists in the wild ATM.
>>>
>>> -- Nathaniel
>>>
>> _______________________________________________
>> wm-spec-list mailing list
>> wm-spec-list@gnome.org
>> http://mail.gnome.org/mailman/listinfo/wm-spec-list
> 
> ------------------------------------------------------------------------
> 
> --- ../wm-spec-old.xml        2007-10-19 13:52:44.773627000 -0700
> +++ wm-spec-1.4.xml   2008-03-11 11:22:19.418173000 -0700
> @@ -1629,6 +1629,63 @@
>  window.
>               </para>
>       </sect2>
> +    <sect2>
> +             <title>_NET_WM_FULLSCREEN_MONITORS</title>
> +             <programlisting><![CDATA[
> +_NET_WM_FULLSCREEN_MONITORS, CARDINAL[4]/32
> +]]></programlisting>
> +      <para>
> +A read-only list of 4 monitor indices indicating the top, bottom, left, and
> +right edges of the window when the fullscreen state is enabled. The indices
> +are from the set returned by the Xinerama extension.
> +      </para>
> +      <para>
> +Windows transient for the window with _NET_WM_FULLSCREEN_MONITORS set, such 
> as
> +those with type _NEW_WM_WINDOW_TYPE_DIALOG, are generally expected to be
> +positioned (e.g. centered) with respect to only one of the monitors. This
> +might be the monitor containing the mouse pointer or the monitor containing 
> the
> +non-full-screen window.
> +      </para>
> +      <para>
> +A Client wishing to change this list MUST send a _NET_WM_FULLSCREEN_MONITORS
> +client message to the root window. The Window Manager MUST
> +keep this list updated to reflect the current state of the window.
> +      </para>
> +<programlisting><![CDATA[
> +  window  = the respective client window
> +  message_type = _NET_WM_FULLSCREEN_MONITORS
> +  format = 32
> +  data.l[0] = the monitor whose top edge defines the top edge of the 
> fullscreen window
> +  data.l[1] = the monitor whose bottom edge defines the bottom edge of the 
> fullscreen window
> +  data.l[2] = the monitor whose left edge defines the left edge of the 
> fullscreen window
> +  data.l[3] = the monitor whose right edge defines the right edge of the 
> fullscreen window
> +  data.l[4] = source indication
> +]]></programlisting>
> +      <para>
> +See <xref linkend="sourceindication"/> for details on the source indication.
> +      </para>
> +      <para>
> +Virtual machine software may use this hint to have a virtual operating system
> +instance that sees multiple monitors. The application window stretches over
> +several monitors, giving the appearance that these monitors have been taken
> +over by the guest virtual machine.
> +      </para>
> +      <para>
> +This hint might also be used by a movie or presentation application allowing
> +users to display the media spanned over several monitors.
> +      </para>
> +      <para>
> +In both cases, the application would have some user interface allowing users
> +to configure which monitors the application fullscreens to. The window 
> manager
> +need not provide such an interface, though it could.
> +      </para>
> +      <para>
> +In the event of a change in monitor configuration, the application is
> +responsible for re-computing the monitors on which it wants to appear.
> +The window manager may continue using the same monitor indices as before
> +or simply clear the list, returning to "normal" fullscreen.
> +      </para>
> +     </sect2>
>  </sect1>
>  
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> wm-spec-list mailing list
> wm-spec-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/wm-spec-list
_______________________________________________
wm-spec-list mailing list
wm-spec-list@gnome.org
http://mail.gnome.org/mailman/listinfo/wm-spec-list

Reply via email to