summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Untz <vuntz@gnome.org>2005-12-19 18:34:33 +0000
committerVincent Untz <vuntz@src.gnome.org>2005-12-19 18:34:33 +0000
commitd487807eb7291982ad836e65bda4736c311816fa (patch)
tree42ac9fb29d8869b4d9808b4053a9c12ed0a17ab0
parent1c1403426594822778cdff7980cec541bba9e92a (diff)
downloadlibwnck-d487807eb7291982ad836e65bda4736c311816fa.tar.gz
Use virtual desktop size when computing size of pager. Bug #311863. Based
2005-12-19 Vincent Untz <vuntz@gnome.org> Use virtual desktop size when computing size of pager. Bug #311863. Based on patch by Loïc Minier <lool+gnome@via.ecp.fr> * libwnck/pager.c: (wnck_pager_size_request): use workspace sizes when available
-rw-r--r--ChangeLog8
-rw-r--r--libwnck/pager.c30
2 files changed, 31 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d3e90b..0e035c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2005-12-19 Vincent Untz <vuntz@gnome.org>
+ Use virtual desktop size when computing size of pager.
+ Bug #311863. Based on patch by Loïc Minier <lool+gnome@via.ecp.fr>
+
+ * libwnck/pager.c: (wnck_pager_size_request): use workspace sizes when
+ available
+
+2005-12-19 Vincent Untz <vuntz@gnome.org>
+
* libwnck/tasklist.c: (wnck_tasklist_get_size_hint_list): add a
warning if argument is not valid
diff --git a/libwnck/pager.c b/libwnck/pager.c
index a9fe3bc..b2302b8 100644
--- a/libwnck/pager.c
+++ b/libwnck/pager.c
@@ -291,17 +291,27 @@ wnck_pager_size_request (GtkWidget *widget,
int size;
int n_rows;
int focus_width;
-
+ WnckWorkspace *space;
+
pager = WNCK_PAGER (widget);
n_spaces = wnck_screen_get_workspace_count (pager->priv->screen);
g_assert (pager->priv->n_rows > 0);
spaces_per_row = (n_spaces + pager->priv->n_rows - 1) / pager->priv->n_rows;
-
+ space = wnck_screen_get_workspace (pager->priv->screen, 0);
+
if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL)
{
- screen_aspect = (double) gdk_screen_height () / (double) gdk_screen_width ();
+ if (space) {
+ screen_aspect =
+ (double) wnck_workspace_get_height (space) /
+ (double) wnck_workspace_get_width (space);
+ } else {
+ screen_aspect =
+ (double) wnck_screen_get_height (pager->priv->screen) /
+ (double) wnck_screen_get_width (pager->priv->screen);
+ }
/* TODO: Handle WNCK_PAGER_DISPLAY_NAME for this case */
@@ -324,10 +334,16 @@ wnck_pager_size_request (GtkWidget *widget,
}
else
{
- screen_aspect =
- (double) wnck_screen_get_width (pager->priv->screen) /
- (double) wnck_screen_get_height (pager->priv->screen);
-
+ if (space) {
+ screen_aspect =
+ (double) wnck_workspace_get_width (space) /
+ (double) wnck_workspace_get_height (space);
+ } else {
+ screen_aspect =
+ (double) wnck_screen_get_width (pager->priv->screen) /
+ (double) wnck_screen_get_height (pager->priv->screen);
+ }
+
if (pager->priv->show_all_workspaces)
{
size = pager->priv->workspace_size;