Author: olivier
Date: 2007-02-16 20:35:00 +0000 (Fri, 16 Feb 2007)
New Revision: 24981

Modified:
   libxfcegui4/trunk/libxfcegui4/netk-pager.c
Log:
Fix aspect ratio of the pager when using viewports, required for window 
managers such as Beryl that use multiple viewports within one single workspace

Modified: libxfcegui4/trunk/libxfcegui4/netk-pager.c
===================================================================
--- libxfcegui4/trunk/libxfcegui4/netk-pager.c  2007-02-14 23:41:54 UTC (rev 
24980)
+++ libxfcegui4/trunk/libxfcegui4/netk-pager.c  2007-02-16 20:35:00 UTC (rev 
24981)
@@ -262,6 +262,7 @@
     int size;
     int n_rows;
     int focus_width;
+    NetkWorkspace *space;
 
     pager = NETK_PAGER (widget);
 
@@ -270,12 +271,22 @@
     g_assert (pager->priv->n_rows > 0);
     spaces_per_row =
         (n_spaces + pager->priv->n_rows - 1) / pager->priv->n_rows;
+    space = netk_screen_get_workspace (pager->priv->screen, 0);
 
     if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL)
     {
-        screen_aspect =
-            (double) netk_screen_get_height (pager->priv->screen) /
-            (double) netk_screen_get_width (pager->priv->screen);
+        if (space)
+        {
+            screen_aspect =
+                  (double) netk_workspace_get_height (space) /
+                  (double) netk_workspace_get_width (space);
+        }
+        else
+        {
+            screen_aspect =
+                  (double) netk_screen_get_height (pager->priv->screen) /
+                  (double) netk_screen_get_width (pager->priv->screen);
+        }
 
         /* TODO: Handle NETK_PAGER_DISPLAY_NAME for this case */
 
@@ -299,9 +310,18 @@
     }
     else
     {
-        screen_aspect =
-            (double) netk_screen_get_width (pager->priv->screen) /
-            (double) netk_screen_get_height (pager->priv->screen);
+        if (space) 
+        {
+            screen_aspect =
+                  (double) netk_workspace_get_width (space) /
+                  (double) netk_workspace_get_height (space);
+        } 
+        else 
+        {
+            screen_aspect =
+                  (double) netk_screen_get_width (pager->priv->screen) /
+                  (double) netk_screen_get_height (pager->priv->screen);
+        }
 
         if (pager->priv->show_all_workspaces)
         {
@@ -390,16 +410,14 @@
     if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL)
     {
         if (pager->priv->show_all_workspaces)
-            workspace_size =
-                (width - (pager->priv->n_rows - 1)) / pager->priv->n_rows;
+            workspace_size = (width - (pager->priv->n_rows - 1)) / 
pager->priv->n_rows;
         else
             workspace_size = width;
     }
     else
     {
         if (pager->priv->show_all_workspaces)
-            workspace_size =
-                (height - (pager->priv->n_rows - 1)) / pager->priv->n_rows;
+            workspace_size = (height - (pager->priv->n_rows - 1)) / 
pager->priv->n_rows;
         else
             workspace_size = height;
     }

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to