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