Updating branch refs/heads/master
to 8637c3a8f869dee3c74e9ccb241b10ebfa4e705e (commit)
from 1ae48784501f5095b5c66bc4316aa7ce8f950d6a (commit)
commit 8637c3a8f869dee3c74e9ccb241b10ebfa4e705e
Author: Olivier Fourdan <[email protected]>
Date: Thu Oct 27 19:04:00 2011 +0200
Optimize workspace deletion
src/workspaces.c | 22 +++++++++-------------
1 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/src/workspaces.c b/src/workspaces.c
index 8625249..8927b18 100644
--- a/src/workspaces.c
+++ b/src/workspaces.c
@@ -422,7 +422,7 @@ workspaceSetCount (ScreenInfo * screen_info, guint count)
{
DisplayInfo *display_info;
Client *c;
- guint i;
+ GList *list;
g_return_if_fail (screen_info != NULL);
@@ -441,8 +441,9 @@ workspaceSetCount (ScreenInfo * screen_info, guint count)
setHint (display_info, screen_info->xroot, NET_NUMBER_OF_DESKTOPS, count);
screen_info->workspace_count = count;
- for (c = screen_info->clients, i = 0; i < screen_info->client_count; c =
c->next, i++)
+ for (list = screen_info->windows_stack; list; list = g_list_next (list))
{
+ c = (Client *) list->data;
if (c->win_workspace > count - 1)
{
clientSetWorkspace (c, count - 1, TRUE);
@@ -463,7 +464,8 @@ void
workspaceInsert (ScreenInfo * screen_info, guint position)
{
Client *c;
- guint i, count;
+ GList *list;
+ guint count;
g_return_if_fail (screen_info != NULL);
@@ -477,8 +479,9 @@ workspaceInsert (ScreenInfo * screen_info, guint position)
return;
}
- for (c = screen_info->clients, i = 0; i < screen_info->client_count; c =
c->next, i++)
+ for (list = screen_info->windows_stack; list; list = g_list_next (list))
{
+ c = (Client *) list->data;
if (c->win_workspace >= position)
{
clientSetWorkspace (c, c->win_workspace + 1, TRUE);
@@ -490,7 +493,8 @@ void
workspaceDelete (ScreenInfo * screen_info, guint position)
{
Client *c;
- guint i, count;
+ GList *list;
+ guint count;
g_return_if_fail (screen_info != NULL);
@@ -502,14 +506,6 @@ workspaceDelete (ScreenInfo * screen_info, guint position)
return;
}
- for (c = screen_info->clients, i = 0; i < screen_info->client_count; c =
c->next, i++)
- {
- if (c->win_workspace > position)
- {
- clientSetWorkspace (c, c->win_workspace - 1, TRUE);
- }
- }
-
workspaceSetCount(screen_info, count - 1);
}
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits