Author: olivier
Date: 2007-02-16 20:41:46 +0000 (Fri, 16 Feb 2007)
New Revision: 24983

Modified:
   libxfcegui4/branches/xfce_4_2/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/branches/xfce_4_2/libxfcegui4/netk-pager.c
===================================================================
--- libxfcegui4/branches/xfce_4_2/libxfcegui4/netk-pager.c      2007-02-16 
20:38:50 UTC (rev 24982)
+++ libxfcegui4/branches/xfce_4_2/libxfcegui4/netk-pager.c      2007-02-16 
20:41:46 UTC (rev 24983)
@@ -265,6 +265,7 @@
     int size;
     int n_rows;
     int focus_width;
+    NetkWorkspace *space;
 
     pager = NETK_PAGER (widget);
 
@@ -273,12 +274,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 */
 
@@ -302,9 +313,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)
         {
@@ -393,16 +413,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
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to