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