diff options
author | Vincent Untz <vuntz@gnome.org> | 2005-12-19 18:34:33 +0000 |
---|---|---|
committer | Vincent Untz <vuntz@src.gnome.org> | 2005-12-19 18:34:33 +0000 |
commit | d487807eb7291982ad836e65bda4736c311816fa (patch) | |
tree | 42ac9fb29d8869b4d9808b4053a9c12ed0a17ab0 | |
parent | 1c1403426594822778cdff7980cec541bba9e92a (diff) | |
download | libwnck-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-- | ChangeLog | 8 | ||||
-rw-r--r-- | libwnck/pager.c | 30 |
2 files changed, 31 insertions, 7 deletions
@@ -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; |