[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-windows
Subject:    Re: Review Request 115137: Provide information about the active screen in KWindowSystem
From:       Martin_Gräßlin <mgraesslin () kde ! org>
Date:       2014-01-21 7:31:03
Message-ID: 20140121073103.17755.7664 () probe ! kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On Jan. 20, 2014, 6 p.m., Thomas Lübking wrote:
> > given the ratio by this property is set (often) and read (rarely), i wonder \
> > whether we could establish a semi-async functionality, where the client sends a \
> > message to have the property updated, then syncs, reads and returns the updated \
> > property? 
> > reg. screen ./. output terminology:
> > we've "active screen" everywhere and we can probably not expose the screen/output \
> > problem to end users. Also Qt talks of screen in this regard.
> > I'd suggest to keep activeScreen and specify the meaning in the comment.
> > 

> i wonder whether we could establish a semi-async functionality, where the client \
> sends a message to have the property updated, then syncs, reads and returns the \
> updated property?

That would be different to how all the other methods in KWindowSystem works. What \
could be considered is not having a signal to not wake up the clients or only emit \
the signal if connect-notify is called.

> Also Qt talks of screen in this regard.

This was the reason why I went with screen in the first place. The class is called \
QScreen and not QOutput. Calling it output didn't occur to me at all. I don't mind \
how it is called and from a technical perspective (especially considering XRandR) I \
agree with Fredrik. But from a user point of view I think screen is the better name \
due to the QScreen anology. What could be done is using output in the NET class to be \
closer to the X11 world, but keep the name screen in the abstraction. I don't know \
whether output makes sense on Windows or Mac (in case they ever implement it).


- Martin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/115137/#review47824
-----------------------------------------------------------


On Jan. 20, 2014, 2:14 p.m., Martin Gräßlin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/115137/
> -----------------------------------------------------------
> 
> (Updated Jan. 20, 2014, 2:14 p.m.)
> 
> 
> Review request for KDE Frameworks, kdewin and kwin.
> 
> 
> Repository: kwindowsystem
> 
> 
> Description
> -------
> 
> The rational for these changes is based on the discussion in \
> http://article.gmane.org/gmane.comp.kde.devel.plasma/27579/ 
> Plasma needs to know which is the active screen and so far only KWin knows it, so \
> we need to make everybody aware of it. 
> ---
> Add convenient wrapper for active screen to KWindowSystem
> 
> A method is added to get the identifier of the active screen as a
> QString and a signal whenever the active screen changes. This method
> is only provided for X11, on Windows and Mac a null QString is returned
> as the identifier.
> 
> Add an active screen property to NETRootInfo
> 
> The active screen is intended to be set by KWin to the active screen
> it's using. This can be used by a Client to manually position e.g.
> override redirect windows on the active screen. It's intended as a help
> for multi-screen setups where a Client can only do guesses on where to
> position e.g. a notification window.
> 
> It's a KDE specific extension as property _KDE_NET_ACTIVE_SCREEN and
> announced in the supported properties.
> 
> 
> Diffs
> -----
> 
> autotests/netrootinfotestwm.cpp 120fbee92d0b22862d8ce746b3b30891ecd9f056 
> src/kwindowsystem.h 5bcfd062dcca42d282b70d0683d4ee1da88cc814 
> src/kwindowsystem_mac.cpp 8bd2ac763fa26ba49e7733fc3ba93e755383928c 
> src/kwindowsystem_win.cpp 96148b2d808396a3046204e55fd19d767db017c5 
> src/kwindowsystem_x11.cpp 8634240cabc708a608277b34f21c41cee295e48a 
> src/netwm.h aee6cea5e3b65cf6252b50515e4920cb9c96f240 
> src/netwm.cpp 266afccaf111e6707493b18dad1d9c03dde1d912 
> src/netwm_def.h 8b1ccb8bd731aefb9559c8f2b450337b0312ed4d 
> src/netwm_p.h 41792b330f7405034f4d51fb31a4de5dd674b6d0 
> 
> Diff: https://git.reviewboard.kde.org/r/115137/diff/
> 
> 
> Testing
> -------
> 
> * wm part of NETWM is unit tested
> * KWindowSystem is only compile tested (unit testing is difficult as we need a \
> window manager which supports this property which is at the moment of this writing: \
>                 none)
> * Windows and Mac is not even compile tested, that's why kdewin is included in the \
> review. If you have the time for it, please do a compile test. 
> 
> Thanks,
> 
> Martin Gräßlin
> 
> 


[Attachment #5 (text/html)]

<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;">  <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/115137/">https://git.reviewboard.kde.org/r/115137/</a>
  </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On January 20th, 2014, 6 p.m. CET, <b>Thomas \
Lübking</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  <pre style="white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">given the ratio by this property is set (often) and read (rarely), i \
wonder whether we could establish a semi-async functionality, where the client sends \
a message to have the property updated, then syncs, reads and returns the updated \
property?

reg. screen ./. output terminology:
we&#39;ve &quot;active screen&quot; everywhere and we can probably not expose the \
screen/output problem to end users. Also Qt talks of screen in this regard.
I&#39;d suggest to keep activeScreen and specify the meaning in the comment.
</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">&gt; i wonder whether we \
could establish a semi-async functionality, where the client sends a message to have \
the property updated, then syncs, reads and returns the updated property?

That would be different to how all the other methods in KWindowSystem works. What \
could be considered is not having a signal to not wake up the clients or only emit \
the signal if connect-notify is called.

&gt; Also Qt talks of screen in this regard.

This was the reason why I went with screen in the first place. The class is called \
QScreen and not QOutput. Calling it output didn&#39;t occur to me at all. I don&#39;t \
mind how it is called and from a technical perspective (especially considering \
XRandR) I agree with Fredrik. But from a user point of view I think screen is the \
better name due to the QScreen anology. What could be done is using output in the NET \
class to be closer to the X11 world, but keep the name screen in the abstraction. I \
don&#39;t know whether output makes sense on Windows or Mac (in case they ever \
implement it).</pre> <br />










<p>- Martin</p>


<br />
<p>On January 20th, 2014, 2:14 p.m. CET, Martin Gräßlin wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;">  <tr>
  <td>

<div>Review request for KDE Frameworks, kdewin and kwin.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated Jan. 20, 2014, 2:14 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kwindowsystem
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">The rational for these changes is based on the discussion in \
http://article.gmane.org/gmane.comp.kde.devel.plasma/27579/

Plasma needs to know which is the active screen and so far only KWin knows it, so we \
need to make everybody aware of it.

---
Add convenient wrapper for active screen to KWindowSystem

A method is added to get the identifier of the active screen as a
QString and a signal whenever the active screen changes. This method
is only provided for X11, on Windows and Mac a null QString is returned
as the identifier.

Add an active screen property to NETRootInfo

The active screen is intended to be set by KWin to the active screen
it&#39;s using. This can be used by a Client to manually position e.g.
override redirect windows on the active screen. It&#39;s intended as a help
for multi-screen setups where a Client can only do guesses on where to
position e.g. a notification window.

It&#39;s a KDE specific extension as property _KDE_NET_ACTIVE_SCREEN and
announced in the supported properties.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
                break-word;">* wm part of NETWM is unit tested
* KWindowSystem is only compile tested (unit testing is difficult as we need a window \
                manager which supports this property which is at the moment of this \
                writing: none)
* Windows and Mac is not even compile tested, that&#39;s why kdewin is included in \
the review. If you have the time for it, please do a compile test.</pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>autotests/netrootinfotestwm.cpp <span style="color: \
grey">(120fbee92d0b22862d8ce746b3b30891ecd9f056)</span></li>

 <li>src/kwindowsystem.h <span style="color: \
grey">(5bcfd062dcca42d282b70d0683d4ee1da88cc814)</span></li>

 <li>src/kwindowsystem_mac.cpp <span style="color: \
grey">(8bd2ac763fa26ba49e7733fc3ba93e755383928c)</span></li>

 <li>src/kwindowsystem_win.cpp <span style="color: \
grey">(96148b2d808396a3046204e55fd19d767db017c5)</span></li>

 <li>src/kwindowsystem_x11.cpp <span style="color: \
grey">(8634240cabc708a608277b34f21c41cee295e48a)</span></li>

 <li>src/netwm.h <span style="color: \
grey">(aee6cea5e3b65cf6252b50515e4920cb9c96f240)</span></li>

 <li>src/netwm.cpp <span style="color: \
grey">(266afccaf111e6707493b18dad1d9c03dde1d912)</span></li>

 <li>src/netwm_def.h <span style="color: \
grey">(8b1ccb8bd731aefb9559c8f2b450337b0312ed4d)</span></li>

 <li>src/netwm_p.h <span style="color: \
grey">(41792b330f7405034f4d51fb31a4de5dd674b6d0)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/115137/diff/" style="margin-left: \
3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>



_______________________________________________
Kde-windows mailing list
Kde-windows@kde.org
https://mail.kde.org/mailman/listinfo/kde-windows


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic