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

List:       kwin
Subject:    Re: Review Request 108513: Rewrite of KWin's Screen Edge Handling
From:       Martin_Gräßlin <mgraesslin () kde ! org>
Date:       2013-01-21 9:38:04
Message-ID: 20130121093804.9064.14446 () vidsolbach ! de
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


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



kwin/screenedge.cpp
<http://git.reviewboard.kde.org/r/108513/#comment19791>

    will migrate to xcb once the branch is merged which contains the Tree wrapper


- Martin Gräßlin


On Jan. 21, 2013, 10:37 a.m., Martin Gräßlin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/108513/
> -----------------------------------------------------------
> 
> (Updated Jan. 21, 2013, 10:37 a.m.)
> 
> 
> Review request for kwin and Arthur Arlt.
> 
> 
> Description
> -------
> 
> Rewrite of KWin's Screen Edge Handling
> 
> This rewrite is mostly motivated by the need to handle multi screen
> setups correctly. That is have edges per screen and not for the combined
> geometry. Also porting from XLib to XCB has been a motivation for the
> rewrite.
> 
> The design of the new ScreenEdge handling is described in the
> documentation of ScreenEdges in screenedge.h.
> 
> In addition the following changes have been performed:
> * move configuration from Options to ScreenEdge
> * add screen edge information to Workspace::supportInformation (obviously
>   replaces what had been read from Options)
> * have Workspace hold a pointer to ScreenEdges instead of an object
> * forward declaration of ScreenEdges in workspaces.h, this explains the
>   seemingly unrelated changes of just another include in some files
> 
> BUG: 290887
> FIXED-IN: 4.11
> 
> Do not update screen edges when compositing settings changes
> 
> The comment says it all: update all settings which can be done through
> the compositing KCM. Years ago screen edges was in the composite KCM, but
> it no longer is. So there is no need to update the edges when the
> compositing settings changes.
> 
> Remove interaction of quick tiling with ScreenEdges
> 
> Quick tiling/maximizing of Clients is completely independent of the
> screen edges functionality. That is it determines the borders itself.
> Nevertheless there has been some code still around which interacted with
> the screen edges each time a window was moved. This code is completely
> useless.
> 
> Remove unused screen edge related methods from kwineffects interface
> 
> No effect has ever used these methods and there is no reason why an
> effect should use them. Reserve/unreserve is sufficient as the effect
> will be notified anyway.
> 
> Adding some convenient functions to wrap xcb calls
> 
> Commonly needed functionality, like
> * move/resize windows
> * restack windows
> * restack to top of stack
> 
> 
> This addresses bug 290887.
>     http://bugs.kde.org/show_bug.cgi?id=290887
> 
> 
> Diffs
> -----
> 
>   kwin/composite.cpp af3cb37e39fd9a45fb61688bcf8231acc0f0deca 
>   kwin/effects.h 8d721fceef3e0a041e5a38088aef0de3a897d58d 
>   kwin/effects.cpp 56fddcd96a2211a47c301a94131ab1026f91a98f 
>   kwin/events.cpp 89d3e2ceb9ffdc3a40a73a77b9014e9db2d8626c 
>   kwin/geometry.cpp 7eb7e94d2804aa512b3da23b81c40ffe4b899811 
>   kwin/layers.cpp 78f07eb3db800e418b50e7510545ea5b50aff5ad 
>   kwin/libkwineffects/kwineffects.h f1e2add39dc94f0f7c621988463025ec3193f1bf 
>   kwin/options.h f458637b7f7f8210f6c9de3497ad1d49df8261c0 
>   kwin/options.cpp 2670de75ac408d16f59ce3dfed0e6b94ee8f39f9 
>   kwin/screenedge.h 6dd1956332958d11e768c01eb3f91ae411a5cc77 
>   kwin/screenedge.cpp fb6209c1994345cf36da8dbcf097bb3596890cf3 
>   kwin/scripting/scriptedeffect.cpp e9c05091087c8303da53d998d06dc46748b9fdce 
>   kwin/scripting/scriptingutils.h 3ed78458131a7fb535e38a08f3c6e7467e9e231b 
>   kwin/workspace.h b26725d0afdcba339aa79348e824bacaec13f32f 
>   kwin/workspace.cpp 265127fb9fbd2ce7ab66bd4b0882425471e2b99b 
>   kwin/xcbutils.h ebe7c283c1704328337ce56402999f98e57dffed 
> 
> Diff: http://git.reviewboard.kde.org/r/108513/diff/
> 
> 
> Testing
> -------
> 
> * effects on various edges
> * action on one edge
> * activated/deactivated actions
> * turned on off screen
> * switch desktop (terrible feature)
> * switch desktop when moving Clients
> 
> TODO: unit test for base functionality
> 
> 
> 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="http://git.reviewboard.kde.org/r/108513/">http://git.reviewboard.kde.org/r/108513/</a>
  </td>
    </tr>
   </table>
   <br />











<div>




<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="http://git.reviewboard.kde.org/r/108513/diff/1/?file=108360#file108360line923" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/screenedge.cpp</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void \
ScreenEdge::raisePanelProxies()</pre></td>  <td colspan="2"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">void ScreenEdges::raisePanelProxies()</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">465</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="kt">void</span> \
<span class="n">ScreenEdge</span><span class="o">::</span><span \
class="n">raisePanelProxies</span><span class="p">()</span></pre></td>  <th \
bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">798</font></th>  <td bgcolor="#fdfebc" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="kt">void</span> <span class="n">ScreenEdge<span \
class="hl">s</span></span><span class="o">::</span><span \
class="n">raisePanelProxies</span><span class="p">()</span></pre></td>  </tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">466</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="p">{</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">799</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; "><span class="p">{</span></pre></td>  </tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th>  <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">800</font></th>  <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">QVector</span><span class="o">&lt;</span><span \
class="kt">xcb_window_t</span><span class="o">&gt;</span> <span class="n">wins</span> \
<span class="o">=</span> <span class="n">windows</span><span \
class="p">();</span></pre></td>  </tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">467</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">XWindowAttributes</span> <span class="n">attr</span><span \
class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">801</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="n">XWindowAttributes</span> \
<span class="n">attr</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">468</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">Window</span> <span class="n">dummy</span><span \
class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">802</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="n">Window</span> <span \
class="n">dummy</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">469</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">Window</span><span class="o">*</span> <span class="n">windows</span> <span \
class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></pre></td>  \
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">803</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">Window</span><span class="o">*</span> <span class="n">windows</span> <span \
class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">470</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="kt">unsigned</span> <span class="kt">int</span> <span class="n">count</span> \
<span class="o">=</span> <span class="mi">0</span><span class="p">;</span></pre></td> \
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">804</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="kt">unsigned</span> <span class="kt">int</span> <span class="n">count</span> \
<span class="o">=</span> <span class="mi">0</span><span class="p">;</span></pre></td> \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">471</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">QRect</span> <span class="n">screen</span> <span class="o">=</span> <span \
class="n">QRect</span><span class="p">(</span><span class="mi">0</span><span \
class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span \
class="n">displayWidth</span><span class="p">(),</span> <span \
class="n">displayHeight</span><span class="p">());</span></pre></td>  <th \
bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">805</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">QRect</span> <span class="n">screen</span> <span class="o">=</span> <span \
class="n">QRect</span><span class="p">(</span><span class="mi">0</span><span \
class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span \
class="n">displayWidth</span><span class="p">(),</span> <span \
class="n">displayHeight</span><span class="p">());</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">472</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">QVector</span><span class="o">&lt;</span><span class="n">Window</span><span \
class="o">&gt;</span> <span class="n">proxies</span><span \
class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">806</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="n">QVector</span><span \
class="o">&lt;</span><span class="n">Window</span><span class="o">&gt;</span> <span \
class="n">proxies</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">473</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="n">XQueryTree</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">rootWindow</span><span class="p">(),</span> <span \
class="o">&amp;</span><span class="n">dummy</span><span class="p">,</span> <span \
class="o">&amp;</span><span class="n">dummy</span><span class="p">,</span> <span \
class="o">&amp;</span><span class="n">windows</span><span class="p">,</span> <span \
class="o">&amp;</span><span class="n">count</span><span \
class="p">);</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">807</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="n">XQueryTree</span><span \
class="p">(</span><span class="n">display</span><span class="p">(),</span> <span \
class="n">rootWindow</span><span class="p">(),</span> <span \
class="o">&amp;</span><span class="n">dummy</span><span class="p">,</span> <span \
class="o">&amp;</span><span class="n">dummy</span><span class="p">,</span> <span \
class="o">&amp;</span><span class="n">windows</span><span class="p">,</span> <span \
class="o">&amp;</span><span class="n">count</span><span \
class="p">);</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">474</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">for</span> \
<span class="p">(</span><span class="kt">unsigned</span> <span class="kt">int</span> \
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span \
class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span \
class="n">count</span><span class="p">;</span> <span class="o">++</span><span \
class="n">i</span><span class="p">)</span> <span class="p">{</span></pre></td>  <th \
bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">808</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="k">for</span> <span class="p">(</span><span class="kt">unsigned</span> <span \
class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span \
class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span \
class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span \
class="o">++</span><span class="n">i</span><span class="p">)</span> <span \
class="p">{</span></pre></td>  </tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">475</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">if</span> <span class="p">(</span><span class="n"><span \
class="hl">m_screenEdgeWindow</span>s</span><span class="p">.</span><span \
class="n">contains</span><span class="p">(</span><span class="n">windows</span><span \
class="p">[</span><span class="n">i</span><span class="p">]))</span></pre></td>  <th \
bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">809</font></th>  <td bgcolor="#fdfebc" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">if</span> <span class="p">(</span><span class="n"><span \
class="hl">win</span>s</span><span class="p">.</span><span \
class="n">contains</span><span class="p">(</span><span class="n">windows</span><span \
class="p">[</span><span class="n">i</span><span class="p">]))</span></pre></td>  \
</tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">476</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">continue</span><span class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">810</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">continue</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">477</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">if</span> <span class="p">(</span><span \
class="n">XGetWindowAttributes</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">windows</span><span class="p">[</span><span class="n">i</span><span \
class="p">],</span> <span class="o">&amp;</span><span class="n">attr</span><span \
class="p">))</span> <span class="p">{</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">811</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="k">if</span> <span class="p">(</span><span \
class="n">XGetWindowAttributes</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">windows</span><span class="p">[</span><span class="n">i</span><span \
class="p">],</span> <span class="o">&amp;</span><span class="n">attr</span><span \
class="p">))</span> <span class="p">{</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">478</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">if</span> <span class="p">(</span><span class="n">attr</span><span \
class="p">.</span><span class="n">map_state</span> <span class="o">==</span> <span \
class="n">IsUnmapped</span><span class="p">)</span> <span class="c1">// a thousand Qt \
group leader dummies ...</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: \
1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">812</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">            <span class="k">if</span> <span \
class="p">(</span><span class="n">attr</span><span class="p">.</span><span \
class="n">map_state</span> <span class="o">==</span> <span \
class="n">IsUnmapped</span><span class="p">)</span> <span class="c1">// a thousand Qt \
group leader dummies ...</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">479</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">813</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">480</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">const</span> <span class="n">QRect</span> <span class="nf">geo</span><span \
class="p">(</span><span class="n">attr</span><span class="p">.</span><span \
class="n">x</span><span class="p">,</span> <span class="n">attr</span><span \
class="p">.</span><span class="n">y</span><span class="p">,</span> <span \
class="n">attr</span><span class="p">.</span><span class="n">width</span><span \
class="p">,</span> <span class="n">attr</span><span class="p">.</span><span \
class="n">height</span><span class="p">);</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">814</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">const</span> <span class="n">QRect</span> <span class="nf">geo</span><span \
class="p">(</span><span class="n">attr</span><span class="p">.</span><span \
class="n">x</span><span class="p">,</span> <span class="n">attr</span><span \
class="p">.</span><span class="n">y</span><span class="p">,</span> <span \
class="n">attr</span><span class="p">.</span><span class="n">width</span><span \
class="p">,</span> <span class="n">attr</span><span class="p">.</span><span \
class="n">height</span><span class="p">);</span></pre></td>  </tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">481</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">if</span> <span class="p">(</span><span class="n">geo</span><span \
class="p">.</span><span class="n">width</span><span class="p">()</span> <span \
class="o">&lt;</span> <span class="mi">1</span> <span class="o">||</span> <span \
class="n">geo</span><span class="p">.</span><span class="n">height</span><span \
class="p">()</span> <span class="o">&lt;</span> <span class="mi">1</span><span \
class="p">)</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">815</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">            <span class="k">if</span> <span \
class="p">(</span><span class="n">geo</span><span class="p">.</span><span \
class="n">width</span><span class="p">()</span> <span class="o">&lt;</span> <span \
class="mi">1</span> <span class="o">||</span> <span class="n">geo</span><span \
class="p">.</span><span class="n">height</span><span class="p">()</span> <span \
class="o">&lt;</span> <span class="mi">1</span><span class="p">)</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">482</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">816</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">483</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">if</span> <span class="p">(</span><span class="o">!</span><span \
class="p">(</span><span class="n">geo</span><span class="p">.</span><span \
class="n">width</span><span class="p">()</span> <span class="o">&gt;</span> <span \
class="mi">1</span> <span class="o">||</span> <span class="n">geo</span><span \
class="p">.</span><span class="n">height</span><span class="p">()</span> <span \
class="o">&gt;</span> <span class="mi">1</span><span class="p">))</span></pre></td>  \
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">817</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            \
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span \
class="p">(</span><span class="n">geo</span><span class="p">.</span><span \
class="n">width</span><span class="p">()</span> <span class="o">&gt;</span> <span \
class="mi">1</span> <span class="o">||</span> <span class="n">geo</span><span \
class="p">.</span><span class="n">height</span><span class="p">()</span> <span \
class="o">&gt;</span> <span class="mi">1</span><span class="p">))</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">484</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span> <span class="c1">// random 1x1 \
dummy windows, all your corners are belong to us &gt;-)</span></pre></td>  <th \
bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">818</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">              \
<span class="k">continue</span><span class="p">;</span> <span class="c1">// random \
1x1 dummy windows, all your corners are belong to us &gt;-)</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">485</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">if</span> <span class="p">(</span><span class="n">attr</span><span \
class="p">.</span><span class="n">c_class</span> <span class="o">!=</span> <span \
class="n">InputOnly</span> <span class="o">&amp;&amp;</span> <span \
class="p">(</span><span class="n">geo</span><span class="p">.</span><span \
class="n">width</span><span class="p">()</span> <span class="o">&gt;</span> <span \
class="mi">3</span> <span class="o">&amp;&amp;</span> <span class="n">geo</span><span \
class="p">.</span><span class="n">height</span><span class="p">()</span> <span \
class="o">&gt;</span> <span class="mi">3</span><span class="p">))</span></pre></td>  \
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">819</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            \
<span class="k">if</span> <span class="p">(</span><span class="n">attr</span><span \
class="p">.</span><span class="n">c_class</span> <span class="o">!=</span> <span \
class="n">InputOnly</span> <span class="o">&amp;&amp;</span> <span \
class="p">(</span><span class="n">geo</span><span class="p">.</span><span \
class="n">width</span><span class="p">()</span> <span class="o">&gt;</span> <span \
class="mi">3</span> <span class="o">&amp;&amp;</span> <span class="n">geo</span><span \
class="p">.</span><span class="n">height</span><span class="p">()</span> <span \
class="o">&gt;</span> <span class="mi">3</span><span class="p">))</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">486</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">820</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">487</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="k">if</span> <span class="p">(</span><span class="n">geo</span><span \
class="p">.</span><span class="n">x</span><span class="p">()</span> <span \
class="o">!=</span> <span class="n">screen</span><span class="p">.</span><span \
class="n">x</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span \
class="n">geo</span><span class="p">.</span><span class="n">right</span><span \
class="p">()</span> <span class="o">!=</span> <span class="n">screen</span><span \
class="p">.</span><span class="n">right</span><span class="p">()</span> <span \
class="o">&amp;&amp;</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px \
solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">821</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">            <span class="k">if</span> <span \
class="p">(</span><span class="n">geo</span><span class="p">.</span><span \
class="n">x</span><span class="p">()</span> <span class="o">!=</span> <span \
class="n">screen</span><span class="p">.</span><span class="n">x</span><span \
class="p">()</span> <span class="o">&amp;&amp;</span> <span class="n">geo</span><span \
class="p">.</span><span class="n">right</span><span class="p">()</span> <span \
class="o">!=</span> <span class="n">screen</span><span class="p">.</span><span \
class="n">right</span><span class="p">()</span> <span \
class="o">&amp;&amp;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">488</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="n">geo</span><span class="p">.</span><span class="n">y</span><span \
class="p">()</span> <span class="o">!=</span> <span class="n">screen</span><span \
class="p">.</span><span class="n">y</span><span class="p">()</span> <span \
class="o">&amp;&amp;</span> <span class="n">geo</span><span class="p">.</span><span \
class="n">bottom</span><span class="p">()</span> <span class="o">!=</span> <span \
class="n">screen</span><span class="p">.</span><span class="n">bottom</span><span \
class="p">())</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">822</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">                <span class="n">geo</span><span \
class="p">.</span><span class="n">y</span><span class="p">()</span> <span \
class="o">!=</span> <span class="n">screen</span><span class="p">.</span><span \
class="n">y</span><span class="p">()</span> <span class="o">&amp;&amp;</span> <span \
class="n">geo</span><span class="p">.</span><span class="n">bottom</span><span \
class="p">()</span> <span class="o">!=</span> <span class="n">screen</span><span \
class="p">.</span><span class="n">bottom</span><span class="p">())</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">489</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">823</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span \
class="k">continue</span><span class="p">;</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">490</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span \
class="n">proxies</span> <span class="o">&lt;&lt;</span> <span \
class="n">windows</span><span class="p">[</span><span class="n">i</span><span \
class="p">];</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">824</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">            <span class="n">proxies</span> <span \
class="o">&lt;&lt;</span> <span class="n">windows</span><span class="p">[</span><span \
class="n">i</span><span class="p">];</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">491</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="p">}</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">825</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">        <span class="p">}</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">492</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="p">}</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">826</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="p">}</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">493</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> \
<span class="p">(</span><span class="o">!</span><span class="n">proxies</span><span \
class="p">.</span><span class="n">isEmpty</span><span class="p">())</span> <span \
class="p">{</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">827</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> <span \
class="p">(</span><span class="o">!</span><span class="n">proxies</span><span \
class="p">.</span><span class="n">isEmpty</span><span class="p">())</span> <span \
class="p">{</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">494</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">XRaiseWindow</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">proxies</span><span class="p">.</span><span class="n">data</span><span \
class="p">()[</span> <span class="mi">0</span> <span class="p">]);</span></pre></td>  \
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">828</font></th>  <td bgcolor="#ffffff" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">XRaiseWindow</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">proxies</span><span class="p">.</span><span class="n">data</span><span \
class="p">()[</span> <span class="mi">0</span> <span class="p">]);</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">495</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">XRestackWindows</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">proxies</span><span class="p">.</span><span class="n">data</span><span \
class="p">(),</span> <span class="n">proxies</span><span class="p">.</span><span \
class="n">count</span><span class="p">());</span></pre></td>  <th bgcolor="#f0f0f0" \
style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">829</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">XRestackWindows</span><span class="p">(</span><span \
class="n">display</span><span class="p">(),</span> <span \
class="n">proxies</span><span class="p">.</span><span class="n">data</span><span \
class="p">(),</span> <span class="n">proxies</span><span class="p">.</span><span \
class="n">count</span><span class="p">());</span></pre></td>  </tr>

 </tbody>


 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">496</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span \
class="p">}</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">830</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="p">}</span></pre></td>  </tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">497</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> \
<span class="p">(</span><span class="n">windows</span><span \
class="p">)</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">831</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> <span \
class="p">(</span><span class="n">windows</span><span class="p">)</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">498</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span \
class="n">XFree</span><span class="p">(</span><span class="n">windows</span><span \
class="p">);</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">832</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; ">        <span class="n">XFree</span><span \
class="p">(</span><span class="n">windows</span><span class="p">);</span></pre></td>  \
</tr>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">499</font></th>  <td bgcolor="#ffffff" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="p">}</span></pre></td>  <th bgcolor="#f0f0f0" style="border-left: 1px solid \
#C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font \
size="2">833</font></th>  <td bgcolor="#ffffff" width="50%"><pre style="font-size: \
8pt; line-height: 140%; margin: 0; "><span class="p">}</span></pre></td>  </tr>

 </tbody>

</table>

<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">will \
migrate to xcb once the branch is merged which contains the Tree wrapper</pre> </div>
<br />



<p>- Martin</p>


<br />
<p>On January 21st, 2013, 10:37 a.m. CET, Martin Gräßlin wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://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 kwin and Arthur Arlt.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated Jan. 21, 2013, 10:37 a.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;">Rewrite of KWin&#39;s Screen Edge Handling

This rewrite is mostly motivated by the need to handle multi screen
setups correctly. That is have edges per screen and not for the combined
geometry. Also porting from XLib to XCB has been a motivation for the
rewrite.

The design of the new ScreenEdge handling is described in the
documentation of ScreenEdges in screenedge.h.

In addition the following changes have been performed:
* move configuration from Options to ScreenEdge
* add screen edge information to Workspace::supportInformation (obviously
  replaces what had been read from Options)
* have Workspace hold a pointer to ScreenEdges instead of an object
* forward declaration of ScreenEdges in workspaces.h, this explains the
  seemingly unrelated changes of just another include in some files

BUG: 290887
FIXED-IN: 4.11

Do not update screen edges when compositing settings changes

The comment says it all: update all settings which can be done through
the compositing KCM. Years ago screen edges was in the composite KCM, but
it no longer is. So there is no need to update the edges when the
compositing settings changes.

Remove interaction of quick tiling with ScreenEdges

Quick tiling/maximizing of Clients is completely independent of the
screen edges functionality. That is it determines the borders itself.
Nevertheless there has been some code still around which interacted with
the screen edges each time a window was moved. This code is completely
useless.

Remove unused screen edge related methods from kwineffects interface

No effect has ever used these methods and there is no reason why an
effect should use them. Reserve/unreserve is sufficient as the effect
will be notified anyway.

Adding some convenient functions to wrap xcb calls

Commonly needed functionality, like
* move/resize windows
* restack windows
* restack to top of stack</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;">* effects on various edges
* action on one edge
* activated/deactivated actions
* turned on off screen
* switch desktop (terrible feature)
* switch desktop when moving Clients

TODO: unit test for base functionality</pre>
  </td>
 </tr>
</table>



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


 <a href="http://bugs.kde.org/show_bug.cgi?id=290887">290887</a>


</div>


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

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

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

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

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

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

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

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

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

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

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

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

 <li>kwin/scripting/scriptedeffect.cpp <span style="color: \
grey">(e9c05091087c8303da53d998d06dc46748b9fdce)</span></li>

 <li>kwin/scripting/scriptingutils.h <span style="color: \
grey">(3ed78458131a7fb535e38a08f3c6e7467e9e231b)</span></li>

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

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

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

</ul>

<p><a href="http://git.reviewboard.kde.org/r/108513/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