[gnome-shell] workspace-switcher: Switch to vertical orientation



commit ef8c9e0abbee3373d8f47c4318e3dbd16433a4a8
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Feb 9 16:00:29 2011 +0100

    workspace-switcher: Switch to vertical orientation
    
    With workspaces now being stacked vertically, the horizontal
    indicators in the workspace switcher are rather odd. There are
    some designs for an improved workspace switch animation, but
    it may take a while to implement them, so for now just change
    the orientation of the existing switcher.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=641931

 data/Makefile.am                                   |    4 +-
 data/theme/gnome-shell.css                         |    8 +-
 ...ch-arrow-right.svg => ws-switch-arrow-down.svg} |   63 +++-
 data/theme/ws-switch-arrow-left.svg                |   96 -----
 data/theme/ws-switch-arrow-up.svg                  |  447 ++++++++++++++++++++
 js/ui/windowManager.js                             |    8 +-
 js/ui/workspaceSwitcherPopup.js                    |   76 ++--
 7 files changed, 548 insertions(+), 154 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 4235d50..b5d0dc6 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -52,8 +52,8 @@ dist_theme_DATA =				\
 	theme/toggle-off-intl.svg		\
 	theme/toggle-on-us.svg			\
 	theme/toggle-on-intl.svg		\
-	theme/ws-switch-arrow-left.svg		\
-	theme/ws-switch-arrow-right.svg
+	theme/ws-switch-arrow-up.svg		\
+	theme/ws-switch-arrow-down.svg
 
 gsettings_SCHEMAS =					\
 	org.gnome.accessibility.magnifier.gschema.xml	\
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index df481d8..6ed2804 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -1105,19 +1105,19 @@ StTooltip StLabel {
     spacing: 8px;
 }
 
-.ws-switcher-active-left {
+.ws-switcher-active-up {
     height: 100px;
     border: 0px;
     background: rgba(255,255,255,0.5);
-    background-image: url("ws-switch-arrow-left.svg");
+    background-image: url("ws-switch-arrow-up.svg");
     border-radius: 8px;
 }
 
-.ws-switcher-active-right {
+.ws-switcher-active-down {
     height: 100px;
     border: 0px;
     background: rgba(255,255,255,0.5);
-    background-image: url("ws-switch-arrow-right.svg");
+    background-image: url("ws-switch-arrow-down.svg");
     border-radius: 8px;
 }
 
diff --git a/data/theme/ws-switch-arrow-right.svg b/data/theme/ws-switch-arrow-down.svg
similarity index 86%
rename from data/theme/ws-switch-arrow-right.svg
rename to data/theme/ws-switch-arrow-down.svg
index 03d7f83..e8d13eb 100644
--- a/data/theme/ws-switch-arrow-right.svg
+++ b/data/theme/ws-switch-arrow-down.svg
@@ -2,13 +2,51 @@
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns:svg="http://www.w3.org/2000/svg";
    xmlns="http://www.w3.org/2000/svg";
    xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
    version="1.1"
    width="96"
    height="96"
-   id="svg25070">
+   id="svg25070"
+   inkscape:version="0.48.0 r9654"
+   sodipodi:docname="ws-switch-arrow-down.svg">
+  <metadata
+     id="metadata3353">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="718"
+     inkscape:window-height="480"
+     id="namedview3351"
+     showgrid="false"
+     inkscape:zoom="2.6979167"
+     inkscape:cx="48"
+     inkscape:cy="48"
+     inkscape:window-x="0"
+     inkscape:window-y="26"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg25070" />
   <defs
      id="defs25072">
     <linearGradient
@@ -288,7 +326,7 @@
     </filter>
   </defs>
   <g
-     transform="translate(0,48)"
+     transform="matrix(0,1,-1,0,48.0003,4.1307112e-7)"
      id="layer1">
     <g
        transform="matrix(-2,0,0,2,-97.2497,-374.967)"
@@ -297,35 +335,42 @@
       <path
          d="m -72.5,173.5 -14,14 14,14"
          id="path3165-7-3"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:7;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+         style="color:#000000;fill:none;stroke:#000000;stroke-width:7;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+         inkscape:connector-curvature="0" />
     </g>
     <path
        d="m -36.5,186.40625 a 2.09375,2.09375 0 1 1 -4.1875,0 2.09375,2.09375 0 1 1 4.1875,0 z"
        transform="matrix(-3.34328,0,0,3.34328,-89.2797,-623.176)"
        id="path4050-2-7-9-4"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52343899;marker:none;visibility:visible;display:inline;overflow:visible" />
+       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52343899;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
     <path
        d="m -36.5,186.40625 a 2.09375,2.09375 0 1 1 -4.1875,0 2.09375,2.09375 0 1 1 4.1875,0 z"
        transform="matrix(-3.34328,0,0,3.34328,-111.2797,-623.176)"
        id="path4050-2-7-9-4-8"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52343899;marker:none;visibility:visible;display:inline;overflow:visible" />
+       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52343899;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
     <path
        d="m -36.5,186.40625 a 2.09375,2.09375 0 1 1 -4.1875,0 2.09375,2.09375 0 1 1 4.1875,0 z"
        transform="matrix(-2.86565,0,0,2.86565,-70.8457,-534.143)"
        id="path4050-2-7-9-4-0"
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69792098;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+       style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69792098;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
     <path
        d="m -36.5,186.40625 a 2.09375,2.09375 0 1 1 -4.1875,0 2.09375,2.09375 0 1 1 4.1875,0 z"
        transform="matrix(-2.86565,0,0,2.86565,-92.8457,-534.143)"
        id="path4050-2-7-9-4-0-9"
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69792098;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
+       style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69792098;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+       inkscape:connector-curvature="0" />
     <path
        d="m 47.87528,-34.0295 c 1.53896,0.0448 3.0511,0.70928 4.125,1.8125 l 32.25,32.25 -32.25,32.25 c -2.2253,2.2253 -6.2747,2.2253 -8.5,0 -2.2253,-2.22528 -2.2253,-6.2747 0,-8.5 l 23.75,-23.75 -23.75,-23.75 c -1.73168,-1.6731 -2.295,-4.44228 -1.3546,-6.65894 0.94042,-2.21668 3.32312,-3.73604 5.7296,-3.65356 z"
        id="path3165-7-3-1"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;opacity:0.35;color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" />
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;opacity:0.35;color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       inkscape:connector-curvature="0" />
     <path
        d="m 41.8316,28.09418 c -0.014,-1.58898 0.54158,-3.18406 1.66868,-4.31118 l 23.75,-23.75 m -25.1046,-30.40894 c 0.94042,-2.21668 3.32312,-3.73604 5.7296,-3.65356 1.53896,0.0448 3.0511,0.70928 4.125,1.8125 l 32.25,32.25"
        id="path3165-7-3-1-9"
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans" />
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+       inkscape:connector-curvature="0" />
   </g>
 </svg>
diff --git a/data/theme/ws-switch-arrow-up.svg b/data/theme/ws-switch-arrow-up.svg
new file mode 100644
index 0000000..16240e8
--- /dev/null
+++ b/data/theme/ws-switch-arrow-up.svg
@@ -0,0 +1,447 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="96"
+   height="96"
+   id="svg25070"
+   version="1.1"
+   inkscape:version="0.48.0 r9654"
+   sodipodi:docname="ws-switch-arrow-up.svg">
+  <defs
+     id="defs25072">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective25078" />
+    <inkscape:perspective
+       id="perspective24985"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4034-0-4"
+       id="linearGradient24957"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6)"
+       x1="-86.552246"
+       y1="185.439"
+       x2="-83.37072"
+       y2="197.31261" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4034-0-4">
+      <stop
+         style="stop-color: rgb(238, 238, 236); stop-opacity: 1;"
+         offset="0"
+         id="stop4036-5-7" />
+      <stop
+         style="stop-color: rgb(186, 189, 182); stop-opacity: 1;"
+         offset="1"
+         id="stop4038-9-6" />
+    </linearGradient>
+    <filter
+       id="filter24765"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix24767"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix24769"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4632-1-3-9-3-2"
+       id="linearGradient24955"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-5)"
+       x1="-74.520325"
+       y1="169.06032"
+       x2="-74.520325"
+       y2="205.94189" />
+    <linearGradient
+       id="linearGradient4632-1-3-9-3-2">
+      <stop
+         style="stop-color: rgb(238, 238, 236); stop-opacity: 1;"
+         offset="0"
+         id="stop4634-1-8-3-9-0" />
+      <stop
+         id="stop4636-1-9-9-8-8"
+         offset="0.0274937"
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" />
+      <stop
+         id="stop4638-8-3-9-6-6"
+         offset="0.274937"
+         style="stop-color: rgb(242, 242, 242); stop-opacity: 1;" />
+      <stop
+         id="stop4640-8-5-7-8-9"
+         offset="0.38707438"
+         style="stop-color: rgb(238, 238, 236); stop-opacity: 1;" />
+      <stop
+         id="stop4642-5-41-9-6-9"
+         offset="0.66528589"
+         style="stop-color: rgb(217, 218, 216); stop-opacity: 1;" />
+      <stop
+         id="stop4644-5-2-7-9-2"
+         offset="0.76745707"
+         style="stop-color: rgb(223, 224, 221); stop-opacity: 1;" />
+      <stop
+         style="stop-color: rgb(240, 240, 240); stop-opacity: 1;"
+         offset="1"
+         id="stop4646-3-2-3-7-3" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4869-4-1"
+       id="radialGradient24959"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0075, 0, 0, 1.0075, -5.4544, -1.25141)"
+       cx="-33.412369"
+       cy="185.74171"
+       fx="-33.412369"
+       fy="185.74171"
+       r="2.3554697" />
+    <linearGradient
+       id="linearGradient4869-4-1">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+         offset="0"
+         id="stop4871-6-2" />
+      <stop
+         id="stop4879-7-4"
+         offset="0.31807542"
+         style="stop-color: rgb(238, 238, 236); stop-opacity: 1;" />
+      <stop
+         id="stop4877-6-1"
+         offset="0.74691135"
+         style="stop-color: rgb(200, 201, 198); stop-opacity: 1;" />
+      <stop
+         style="stop-color: rgb(211, 215, 207); stop-opacity: 1;"
+         offset="1"
+         id="stop4873-1-0" />
+    </linearGradient>
+    <filter
+       id="filter25011"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix25013"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix25015"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4869-4-0"
+       id="radialGradient24961"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0075, 0, 0, 1.0075, -5.4544, -1.25141)"
+       cx="-33.412369"
+       cy="185.74171"
+       fx="-33.412369"
+       fy="185.74171"
+       r="2.3554697" />
+    <linearGradient
+       id="linearGradient4869-4-0">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+         offset="0"
+         id="stop4871-6-8" />
+      <stop
+         id="stop4879-7-5"
+         offset="0.31807542"
+         style="stop-color: rgb(238, 238, 236); stop-opacity: 1;" />
+      <stop
+         id="stop4877-6-5"
+         offset="0.74691135"
+         style="stop-color: rgb(200, 201, 198); stop-opacity: 1;" />
+      <stop
+         style="stop-color: rgb(211, 215, 207); stop-opacity: 1;"
+         offset="1"
+         id="stop4873-1-4" />
+    </linearGradient>
+    <filter
+       id="filter25023"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix25025"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix25027"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4941"
+       id="linearGradient24963"
+       gradientUnits="userSpaceOnUse"
+       x1="-39.858727"
+       y1="184.61784"
+       x2="-38.244785"
+       y2="188.84898" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4941">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+         offset="0"
+         id="stop4943" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1"
+         id="stop4945" />
+    </linearGradient>
+    <filter
+       id="filter25033"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix25035"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix25037"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4941-7"
+       id="linearGradient24965"
+       gradientUnits="userSpaceOnUse"
+       x1="-39.858727"
+       y1="184.61784"
+       x2="-38.244785"
+       y2="188.84898" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4941-7">
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 1;"
+         offset="0"
+         id="stop4943-2" />
+      <stop
+         style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+         offset="1"
+         id="stop4945-5" />
+    </linearGradient>
+    <filter
+       id="filter25043"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix25045"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix25047"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+    <filter
+       id="filter25049"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix25051"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix25053"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+    <filter
+       id="filter25055"
+       inkscape:label="Invert"
+       x="0"
+       y="0"
+       width="1"
+       height="1"
+       inkscape:menu="Color"
+       inkscape:menu-tooltip="Invert colors"
+       color-interpolation-filters="sRGB">
+      <feColorMatrix
+         id="feColorMatrix25057"
+         type="saturate"
+         values="1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         id="feColorMatrix25059"
+         in="fbSourceGraphic"
+         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" />
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="-12.356322"
+     inkscape:cy="57.536221"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1200"
+     inkscape:window-height="840"
+     inkscape:window-x="0"
+     inkscape:window-y="26"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata25075">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(0, 48)">
+    <g
+       id="g3181"
+       transform="matrix(0,1,-1,0,48.0003,-48)">
+      <g
+         style="stroke:#000000;stroke-opacity:1;display:inline"
+         transform="matrix(2,0,0,2,193.25,-374.967)"
+         id="g4030-1-8">
+        <path
+           style="color:#000000;fill:none;stroke:#000000;stroke-width:7;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+           d="m -72.5,173.5 -14,14 14,14"
+           id="path3165-7-3"
+           sodipodi:nodetypes="ccc"
+           inkscape:connector-curvature="0" />
+      </g>
+      <path
+         transform="matrix(3.34328,0,0,3.34328,185.28,-623.176)"
+         d="m -36.5,186.40625 c 0,1.15635 -0.937404,2.09375 -2.09375,2.09375 -1.156346,0 -2.09375,-0.9374 -2.09375,-2.09375 0,-1.15635 0.937404,-2.09375 2.09375,-2.09375 1.156346,0 2.09375,0.9374 2.09375,2.09375 z"
+         sodipodi:ry="2.09375"
+         sodipodi:rx="2.09375"
+         sodipodi:cy="186.40625"
+         sodipodi:cx="-38.59375"
+         id="path4050-2-7-9-4"
+         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52343899;marker:none;visibility:visible;display:inline;overflow:visible"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(3.34328,0,0,3.34328,207.28,-623.176)"
+         d="m -36.5,186.40625 c 0,1.15635 -0.937404,2.09375 -2.09375,2.09375 -1.156346,0 -2.09375,-0.9374 -2.09375,-2.09375 0,-1.15635 0.937404,-2.09375 2.09375,-2.09375 1.156346,0 2.09375,0.9374 2.09375,2.09375 z"
+         sodipodi:ry="2.09375"
+         sodipodi:rx="2.09375"
+         sodipodi:cy="186.40625"
+         sodipodi:cx="-38.59375"
+         id="path4050-2-7-9-4-8"
+         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52343899;marker:none;visibility:visible;display:inline;overflow:visible"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(2.86565,0,0,2.86565,166.846,-534.143)"
+         d="m -36.5,186.40625 c 0,1.15635 -0.937404,2.09375 -2.09375,2.09375 -1.156346,0 -2.09375,-0.9374 -2.09375,-2.09375 0,-1.15635 0.937404,-2.09375 2.09375,-2.09375 1.156346,0 2.09375,0.9374 2.09375,2.09375 z"
+         sodipodi:ry="2.09375"
+         sodipodi:rx="2.09375"
+         sodipodi:cy="186.40625"
+         sodipodi:cx="-38.59375"
+         id="path4050-2-7-9-4-0"
+         style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69792098;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(2.86565,0,0,2.86565,188.846,-534.143)"
+         d="m -36.5,186.40625 c 0,1.15635 -0.937404,2.09375 -2.09375,2.09375 -1.156346,0 -2.09375,-0.9374 -2.09375,-2.09375 0,-1.15635 0.937404,-2.09375 2.09375,-2.09375 1.156346,0 2.09375,0.9374 2.09375,2.09375 z"
+         sodipodi:ry="2.09375"
+         sodipodi:rx="2.09375"
+         sodipodi:cy="186.40625"
+         sodipodi:cx="-38.59375"
+         id="path4050-2-7-9-4-0-9"
+         style="color:#000000;fill:none;stroke:#000000;stroke-width:0.69792098;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(2,0,0,2,-586,-765.967)"
+         sodipodi:nodetypes="ccccscccsc"
+         id="path3165-7-3-1"
+         d="m 317.06251,365.96875 c -0.76948,0.0224 -1.52555,0.35464 -2.0625,0.90625 l -16.125,16.125 16.125,16.125 c 1.11265,1.11265 3.13735,1.11265 4.25,0 1.11265,-1.11264 1.11265,-3.13735 0,-4.25 l -11.875,-11.875 11.875,-11.875 c 0.86584,-0.83655 1.1475,-2.22114 0.6773,-3.32947 -0.47021,-1.10834 -1.66156,-1.86802 -2.8648,-1.82678 z"
+         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;opacity:0.35;color:#000000;fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+         inkscape:connector-curvature="0" />
+      <path
+         transform="matrix(2,0,0,2,-586,-765.967)"
+         sodipodi:nodetypes="ccccccc"
+         id="path3165-7-3-1-9"
+         d="m 320.08435,397.03059 c 0.007,-0.79449 -0.27079,-1.59203 -0.83434,-2.15559 L 307.37501,383 m 12.5523,-15.20447 c -0.47021,-1.10834 -1.66156,-1.86802 -2.8648,-1.82678 -0.76948,0.0224 -1.52555,0.35464 -2.0625,0.90625 L 298.87501,383"
+         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Bitstream Vera Sans"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 51fd17d..328ccb6 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -556,7 +556,7 @@ WindowManager.prototype = {
             global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
 
         if (!Main.overview.visible)
-            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.LEFT, indexToActivate);
+            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.UP, indexToActivate);
     },
 
     actionMoveWorkspaceRight: function() {
@@ -572,7 +572,7 @@ WindowManager.prototype = {
             global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
 
         if (!Main.overview.visible)
-            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.RIGHT, indexToActivate);
+            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.DOWN, indexToActivate);
     },
 
     actionMoveWorkspaceUp: function() {
@@ -585,7 +585,7 @@ WindowManager.prototype = {
             global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
 
         if (!Main.overview.visible)
-            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.LEFT, indexToActivate);
+            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.UP, indexToActivate);
     },
 
     actionMoveWorkspaceDown: function() {
@@ -598,6 +598,6 @@ WindowManager.prototype = {
             global.screen.get_workspace_by_index(indexToActivate).activate(global.get_current_time());
 
         if (!Main.overview.visible)
-            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.RIGHT, indexToActivate);
+            this._workspaceSwitcherPopup.display(WorkspaceSwitcherPopup.DOWN, indexToActivate);
     }
 };
diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js
index afa9477..ab18933 100644
--- a/js/ui/workspaceSwitcherPopup.js
+++ b/js/ui/workspaceSwitcherPopup.js
@@ -12,8 +12,8 @@ const Tweener = imports.ui.tweener;
 const ANIMATION_TIME = 0.1;
 const DISPLAY_TIMEOUT = 600;
 
-const LEFT = -1;
-const RIGHT = 1;
+const UP = -1;
+const DOWN = 1;
 
 function WorkspaceSwitcherPopup() {
     this._init();
@@ -32,6 +32,8 @@ WorkspaceSwitcherPopup.prototype = {
         this._container = new St.BoxLayout({ style_class: 'workspace-switcher-container' });
         this._list = new Shell.GenericContainer({ style_class: 'workspace-switcher' });
         this._itemSpacing = 0;
+        this._childHeight = 0;
+        this._childWidth = 0;
         this._list.connect('style-changed', Lang.bind(this, function() {
                                                         this._itemSpacing = this._list.get_theme_node().get_length('spacing');
                                                      }));
@@ -51,59 +53,54 @@ WorkspaceSwitcherPopup.prototype = {
         this._timeoutId = Mainloop.timeout_add(DISPLAY_TIMEOUT, Lang.bind(this, this._onTimeout));
     },
 
-    _getPreferredWidth : function (actor, forHeight, alloc) {
+    _getPreferredHeight : function (actor, forWidth, alloc) {
         let children = this._list.get_children();
         let primary = global.get_primary_monitor();
 
-        let availwidth = primary.width;
-        availwidth -= this.actor.get_theme_node().get_horizontal_padding();
-        availwidth -= this._container.get_theme_node().get_horizontal_padding();
-        availwidth -= this._list.get_theme_node().get_horizontal_padding();
+        let availHeight = primary.height;
+        availHeight -= Main.panel.actor.height;
+        availHeight -= this.actor.get_theme_node().get_vertical_padding();
+        availHeight -= this._container.get_theme_node().get_vertical_padding();
+        availHeight -= this._list.get_theme_node().get_vertical_padding();
 
-        let width = 0;
+        let height = 0;
         for (let i = 0; i < children.length; i++) {
-            let [childMinWidth, childNaturalWidth] = children[i].get_preferred_width(-1);
-            let [childMinHeight, childNaturalHeight] = children[i].get_preferred_height(childNaturalWidth);
-            width += childNaturalHeight * primary.width / primary.height;
+            let [childMinHeight, childNaturalHeight] = children[i].get_preferred_height(-1);
+            let [childMinWidth, childNaturalWidth] = children[i].get_preferred_width(childNaturalHeight);
+            height += childNaturalHeight * primary.width / primary.height;
         }
 
         let spacing = this._itemSpacing * (global.screen.n_workspaces - 1);
-        width += spacing;
-        width = Math.min(width, availwidth);
+        height += spacing;
+        height = Math.min(height, availHeight);
 
-        this._childWidth = (width - spacing) / global.screen.n_workspaces;
+        this._childHeight = (height - spacing) / global.screen.n_workspaces;
 
-        alloc.min_size = width;
-        alloc.natural_size = width;
+        alloc.min_size = height;
+        alloc.natural_size = height;
     },
 
-    _getPreferredHeight : function (actor, forWidth, alloc) {
+    _getPreferredWidth : function (actor, forHeight, alloc) {
         let primary = global.get_primary_monitor();
-        this._childHeight = Math.round(this._childWidth * primary.height / primary.width);
+        this._childWidth = Math.round(this._childHeight * primary.width / primary.height);
 
-        alloc.min_size = this._childHeight;
-        alloc.natural_size = this._childHeight;
+        alloc.min_size = this._childWidth;
+        alloc.natural_size = this._childWidth;
     },
 
     _allocate : function (actor, box, flags) {
         let children = this._list.get_children();
         let childBox = new Clutter.ActorBox();
 
-        let rtl = (St.Widget.get_default_direction() == St.TextDirection.RTL);
-        let x = box.x1;
-        let prevChildBoxX2 = box.x1 - this._itemSpacing;
+        let y = box.y1;
+        let prevChildBoxY2 = box.y1 - this._itemSpacing;
         for (let i = 0; i < children.length; i++) {
-            childBox.x1 = prevChildBoxX2 + this._itemSpacing;
-            childBox.x2 = Math.round(x + this._childWidth);
-            childBox.y1 = box.y1;
-            childBox.y2 = box.y1 + this._childHeight;
-            x += this._childWidth + this._itemSpacing;
-            prevChildBoxX2 = childBox.x2;
-            if (rtl) {
-                let ltrChildBoxX1 = childBox.x1;
-                childBox.x1 = box.x2 - (childBox.x2 - box.x1);
-                childBox.x2 = box.x2 - (ltrChildBoxX1 - box.x1);
-            }
+            childBox.x1 = box.x1;
+            childBox.x2 = box.x1 + this._childWidth;
+            childBox.y1 = prevChildBoxY2 + this._itemSpacing;
+            childBox.y2 = Math.round(y + this._childHeight);
+            y += this._childHeight + this._itemSpacing;
+            prevChildBoxY2 = childBox.y2;
             children[i].allocate(childBox, flags);
         }
     },
@@ -114,10 +111,10 @@ WorkspaceSwitcherPopup.prototype = {
         for (let i = 0; i < global.screen.n_workspaces; i++) {
             let indicator = null;
 
-           if (i == activeWorkspaceIndex && direction == LEFT)
-               indicator = new St.Bin({ style_class: 'ws-switcher-active-left' });
-           else if(i == activeWorkspaceIndex && direction == RIGHT)
-               indicator = new St.Bin({ style_class: 'ws-switcher-active-right' });
+           if (i == activeWorkspaceIndex && direction == UP)
+               indicator = new St.Bin({ style_class: 'ws-switcher-active-up' });
+           else if(i == activeWorkspaceIndex && direction == DOWN)
+               indicator = new St.Bin({ style_class: 'ws-switcher-active-down' });
            else
                indicator = new St.Bin({ style_class: 'ws-switcher-box' });
 
@@ -129,7 +126,8 @@ WorkspaceSwitcherPopup.prototype = {
     _position: function() {
         let primary = global.get_primary_monitor();
         this._container.x = primary.x + Math.floor((primary.width - this._container.width) / 2);
-        this._container.y = primary.y + Math.floor((primary.height - this._container.height) / 2);
+        this._container.y = primary.y + Main.panel.actor.height +
+                            Math.floor(((primary.height - Main.panel.actor.height) - this._container.height) / 2);
     },
 
     _show : function() {



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