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

List:       kwin
Subject:    Re: Review Request: Move ScreenEdge configuration from Workspace to ScreenEdge
From:       Thomas_Lübking <thomas.luebking () web ! de>
Date:       2013-01-04 20:18:55
Message-ID: 20130104201855.25557.2779 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


> On Jan. 3, 2013, 5:09 p.m., Martin Gr=C3=A4=C3=9Flin wrote:
> > If nobody complains I'm going to push this branch on Monday morning

heretic thought: if VDManager wasn't a singleton, one could offer different=
 implementations and by this have a Desktop stack and a panning canvas and =
... different behaviors?


- Thomas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107493/#review24590
-----------------------------------------------------------


On Jan. 3, 2013, 5:06 p.m., Martin Gr=C3=A4=C3=9Flin wrote:
> =

> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/107493/
> -----------------------------------------------------------
> =

> (Updated Jan. 3, 2013, 5:06 p.m.)
> =

> =

> Review request for kwin.
> =

> =

> Description
> -------
> =

> Move ScreenEdge configuration from Workspace to ScreenEdge
> =

> Main motivation for this change except the fact that it doesn't belong
> into Workspace is that the screen edges got updated from within setting
> the desktop layout which got removed with the introduction of the
> VirtualDesktopManager.
> =

> The ScreenEdge now keeps some state to be able to correctly unreserve the
> electric borders when changes in the configuration are performed. There
> is still room for improvement as there are still some deep function calls
> from within reconfiguring in Workspace.
> =

> Move Desktop Chain management from Workspace into own class
> =

> Most recently used virtual desktop chain is only used in the context of
> TabBox and therefore moved into this namespace. KWin uses one desktop
> chain for each activity. This is mapped by having multiple DesktopChains.
> In addition there is a DesktopChainManager which contains all those
> chains which are identified by a QString.
> =

> The manager gets connected to the signals emitted by VirtualDesktopManager
> for changes in virtual desktops and to signals related to Activities
> emitted by Workspace. This means the manager is rather generic as it does
> not depend on any other components.
> =

> Move handling of Virtual Desktops into a VirtualDesktopManager
> =

> The ownership for virtual desktops is moved from Workspace into a new
> VirtualDesktopManager. The manager is responsible for providing the count
> of virtual desktops and keeping track of the currently used virtual
> desktop.
> =

> All methods related to moving between desktops are also moved from
> Workspace to the new manager, though all methods related to Clients on
> Virtual Desktops remain in Workspace for the time being. This is to have
> the new manager as independent from KWin core as possible.
> =

> An rather important change for the handling of virtual desktops is that
> the count and the id of a desktop is now an unsinged integer instead of
> an integer. The reason for that is that we cannot have a negative count
> of desktops as well as it is not possible to be on a desktop with a
> negative identifier.
> =

> In that regard it is important to remember that a Client can be on a
> desktop with a negative identifier. The special value for a Client being
> on all desktops is handled by using -1 as a desktop. For the time being
> this is not adjusted but instead of comparing the virtual desktop ids one
> should prefer to use the convenient methods like isOnDesktop and
> isOnAllDesktops. This would allow in future to internally change the
> representation for on all desktops.
> =

> =

> Diffs
> -----
> =

>   kwin/CMakeLists.txt 62e9964a60783456dd11958f7a105e9d4df110c2 =

>   kwin/activation.cpp a3c050cd5fab02e9a21d58c9e5fb93995332a309 =

>   kwin/bridge.cpp d54f0592870ddad0cf611b2f407db9716d40c862 =

>   kwin/client.cpp 43296b3a062df556a1c8d6e4a4a5da42d9c05c35 =

>   kwin/composite.cpp a19eccd64860ac8fcec2f4ec2a3b70be03c0378a =

>   kwin/dbusinterface.cpp abee120e8f086b6cb9241902ce36aeb015509f6b =

>   kwin/desktoplayout.cpp f275782e9e98cf13ae1d764d1c7edb2e97d07036 =

>   kwin/effects.cpp eaab46ff32f2b5aad5a1d5f0bebe5c62854a75ec =

>   kwin/effects/desktopgrid/desktopgrid.h f968fc18354f4c1d5cd3c9050afceee7=
7cdac151 =

>   kwin/effects/desktopgrid/desktopgrid.cpp 53532ccff72d2a1f303265a898fd7b=
1fc7ea35a6 =

>   kwin/events.cpp 281f9e708d4488c504b8fc5eba3de5757a59c915 =

>   kwin/geometry.cpp 00471655237ebb0edfa1b3201cf0196edaba301f =

>   kwin/kwinbindings.cpp b6fb09b8a0be114bff9dd9803f9943fbc6505649 =

>   kwin/layers.cpp 5104e19d1df83c897e25872d64f27aff556996e8 =

>   kwin/libkwineffects/kwineffects.h aa5d9e8b67c60b158e7ffb08dfcf3e8d2a16d=
cd7 =

>   kwin/manage.cpp bda9821f2d235384ce062f1cfbbc9e53a2689f0f =

>   kwin/options.h 87917f917a420ab0b073a61372ef4e56ce7d4936 =

>   kwin/options.cpp a49ff922c24e1c56c704874a05288f98b20c6540 =

>   kwin/placement.cpp ff75e6cc1ca3cb7037c2bd8ea00a8e263eedc688 =

>   kwin/screenedge.h b2cda7b545ed37e8feef41b9403b983f469cf3bb =

>   kwin/screenedge.cpp a1507c3543877477e564bba368feaa31bc44655e =

>   kwin/scripting/workspace_wrapper.h 56648ef272f32c8d2b69d0fe4d394ac4d223=
2ba9 =

>   kwin/scripting/workspace_wrapper.cpp 0fdfcc576ffa2cf925b6e5c89368bdac8c=
02a59b =

>   kwin/sm.cpp c6350d162dc1a5168cacdeeadd62bb6329b266af =

>   kwin/tabbox/desktopchain.h PRE-CREATION =

>   kwin/tabbox/desktopchain.cpp PRE-CREATION =

>   kwin/tabbox/tabbox.h 73d83df406af103e71144cbd6499c78b5f118177 =

>   kwin/tabbox/tabbox.cpp 825a4a70d29f3b10b89d33ec042b2ad79108c871 =

>   kwin/tabbox/tests/CMakeLists.txt 9b40836350d2a6fc22839d1bf6e04589740ad3=
99 =

>   kwin/tabbox/tests/test_desktopchain.cpp PRE-CREATION =

>   kwin/tests/CMakeLists.txt 8bb2b47539d574bcabd78e372b5511b766fe1d15 =

>   kwin/tests/test_virtual_desktops.cpp PRE-CREATION =

>   kwin/toplevel.h 869da563615860311dac1e1283acc9fe2a35221b =

>   kwin/useractions.cpp 3617d2938cfd2483a0fb7591ffbce102db482b61 =

>   kwin/virtualdesktops.h PRE-CREATION =

>   kwin/virtualdesktops.cpp PRE-CREATION =

>   kwin/workspace.h 3efc240177b0423576c0d31295c510bcc216482c =

>   kwin/workspace.cpp df0b043cd3d10c6da6e321555d3b413d60269bde =

> =

> Diff: http://git.reviewboard.kde.org/r/107493/diff/
> =

> =

> Testing
> -------
> =

> works fine so far, but not yet tested in detail. I plan to add some unit =
tests at least for the VirtualDesktopManager - let's see how bored I am tom=
orrow during the flight and how long the battery lasts ;-)
> =

> =

> Thanks,
> =

> Martin Gr=C3=A4=C3=9Flin
> =

>


[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="http://git.reviewboard.kde.org/r/107493/">http://git.reviewboard.kde.org/r/107493/</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 3rd, 2013, 5:09 p.m., <b>Martin \
Gräßlin</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;">If nobody complains I&#39;m going to push this branch on Monday \
morning</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;">heretic thought: if \
VDManager wasn&#39;t a singleton, one could offer different implementations and by \
this have a Desktop stack and a panning canvas and ... different behaviors?</pre> <br \
/>








<p>- Thomas</p>


<br />
<p>On January 3rd, 2013, 5:06 p.m., Martin Gräßlin wrote:</p>






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

<div>Review request for kwin.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated Jan. 3, 2013, 5:06 p.m.</i></p>






<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;">Move ScreenEdge configuration from Workspace to ScreenEdge

Main motivation for this change except the fact that it doesn&#39;t belong
into Workspace is that the screen edges got updated from within setting
the desktop layout which got removed with the introduction of the
VirtualDesktopManager.

The ScreenEdge now keeps some state to be able to correctly unreserve the
electric borders when changes in the configuration are performed. There
is still room for improvement as there are still some deep function calls
from within reconfiguring in Workspace.

Move Desktop Chain management from Workspace into own class

Most recently used virtual desktop chain is only used in the context of
TabBox and therefore moved into this namespace. KWin uses one desktop
chain for each activity. This is mapped by having multiple DesktopChains.
In addition there is a DesktopChainManager which contains all those
chains which are identified by a QString.

The manager gets connected to the signals emitted by VirtualDesktopManager
for changes in virtual desktops and to signals related to Activities
emitted by Workspace. This means the manager is rather generic as it does
not depend on any other components.

Move handling of Virtual Desktops into a VirtualDesktopManager

The ownership for virtual desktops is moved from Workspace into a new
VirtualDesktopManager. The manager is responsible for providing the count
of virtual desktops and keeping track of the currently used virtual
desktop.

All methods related to moving between desktops are also moved from
Workspace to the new manager, though all methods related to Clients on
Virtual Desktops remain in Workspace for the time being. This is to have
the new manager as independent from KWin core as possible.

An rather important change for the handling of virtual desktops is that
the count and the id of a desktop is now an unsinged integer instead of
an integer. The reason for that is that we cannot have a negative count
of desktops as well as it is not possible to be on a desktop with a
negative identifier.

In that regard it is important to remember that a Client can be on a
desktop with a negative identifier. The special value for a Client being
on all desktops is handled by using -1 as a desktop. For the time being
this is not adjusted but instead of comparing the virtual desktop ids one
should prefer to use the convenient methods like isOnDesktop and
isOnAllDesktops. This would allow in future to internally change the
representation for on all desktops.</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;">works fine so far, but not yet tested in detail. I plan to add some unit \
tests at least for the VirtualDesktopManager - let&#39;s see how bored I am tomorrow \
during the flight and how long the battery lasts ;-)</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>kwin/CMakeLists.txt <span style="color: \
grey">(62e9964a60783456dd11958f7a105e9d4df110c2)</span></li>

 <li>kwin/activation.cpp <span style="color: \
grey">(a3c050cd5fab02e9a21d58c9e5fb93995332a309)</span></li>

 <li>kwin/bridge.cpp <span style="color: \
grey">(d54f0592870ddad0cf611b2f407db9716d40c862)</span></li>

 <li>kwin/client.cpp <span style="color: \
grey">(43296b3a062df556a1c8d6e4a4a5da42d9c05c35)</span></li>

 <li>kwin/composite.cpp <span style="color: \
grey">(a19eccd64860ac8fcec2f4ec2a3b70be03c0378a)</span></li>

 <li>kwin/dbusinterface.cpp <span style="color: \
grey">(abee120e8f086b6cb9241902ce36aeb015509f6b)</span></li>

 <li>kwin/desktoplayout.cpp <span style="color: \
grey">(f275782e9e98cf13ae1d764d1c7edb2e97d07036)</span></li>

 <li>kwin/effects.cpp <span style="color: \
grey">(eaab46ff32f2b5aad5a1d5f0bebe5c62854a75ec)</span></li>

 <li>kwin/effects/desktopgrid/desktopgrid.h <span style="color: \
grey">(f968fc18354f4c1d5cd3c9050afceee77cdac151)</span></li>

 <li>kwin/effects/desktopgrid/desktopgrid.cpp <span style="color: \
grey">(53532ccff72d2a1f303265a898fd7b1fc7ea35a6)</span></li>

 <li>kwin/events.cpp <span style="color: \
grey">(281f9e708d4488c504b8fc5eba3de5757a59c915)</span></li>

 <li>kwin/geometry.cpp <span style="color: \
grey">(00471655237ebb0edfa1b3201cf0196edaba301f)</span></li>

 <li>kwin/kwinbindings.cpp <span style="color: \
grey">(b6fb09b8a0be114bff9dd9803f9943fbc6505649)</span></li>

 <li>kwin/layers.cpp <span style="color: \
grey">(5104e19d1df83c897e25872d64f27aff556996e8)</span></li>

 <li>kwin/libkwineffects/kwineffects.h <span style="color: \
grey">(aa5d9e8b67c60b158e7ffb08dfcf3e8d2a16dcd7)</span></li>

 <li>kwin/manage.cpp <span style="color: \
grey">(bda9821f2d235384ce062f1cfbbc9e53a2689f0f)</span></li>

 <li>kwin/options.h <span style="color: \
grey">(87917f917a420ab0b073a61372ef4e56ce7d4936)</span></li>

 <li>kwin/options.cpp <span style="color: \
grey">(a49ff922c24e1c56c704874a05288f98b20c6540)</span></li>

 <li>kwin/placement.cpp <span style="color: \
grey">(ff75e6cc1ca3cb7037c2bd8ea00a8e263eedc688)</span></li>

 <li>kwin/screenedge.h <span style="color: \
grey">(b2cda7b545ed37e8feef41b9403b983f469cf3bb)</span></li>

 <li>kwin/screenedge.cpp <span style="color: \
grey">(a1507c3543877477e564bba368feaa31bc44655e)</span></li>

 <li>kwin/scripting/workspace_wrapper.h <span style="color: \
grey">(56648ef272f32c8d2b69d0fe4d394ac4d2232ba9)</span></li>

 <li>kwin/scripting/workspace_wrapper.cpp <span style="color: \
grey">(0fdfcc576ffa2cf925b6e5c89368bdac8c02a59b)</span></li>

 <li>kwin/sm.cpp <span style="color: \
grey">(c6350d162dc1a5168cacdeeadd62bb6329b266af)</span></li>

 <li>kwin/tabbox/desktopchain.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kwin/tabbox/desktopchain.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>kwin/tabbox/tabbox.h <span style="color: \
grey">(73d83df406af103e71144cbd6499c78b5f118177)</span></li>

 <li>kwin/tabbox/tabbox.cpp <span style="color: \
grey">(825a4a70d29f3b10b89d33ec042b2ad79108c871)</span></li>

 <li>kwin/tabbox/tests/CMakeLists.txt <span style="color: \
grey">(9b40836350d2a6fc22839d1bf6e04589740ad399)</span></li>

 <li>kwin/tabbox/tests/test_desktopchain.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>kwin/tests/CMakeLists.txt <span style="color: \
grey">(8bb2b47539d574bcabd78e372b5511b766fe1d15)</span></li>

 <li>kwin/tests/test_virtual_desktops.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>

 <li>kwin/toplevel.h <span style="color: \
grey">(869da563615860311dac1e1283acc9fe2a35221b)</span></li>

 <li>kwin/useractions.cpp <span style="color: \
grey">(3617d2938cfd2483a0fb7591ffbce102db482b61)</span></li>

 <li>kwin/virtualdesktops.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kwin/virtualdesktops.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kwin/workspace.h <span style="color: \
grey">(3efc240177b0423576c0d31295c510bcc216482c)</span></li>

 <li>kwin/workspace.cpp <span style="color: \
grey">(df0b043cd3d10c6da6e321555d3b413d60269bde)</span></li>

</ul>

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




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








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



_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin


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

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