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
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits