diff options
author | Christian Neumair <chris@gnome-de.org> | 2005-07-29 06:25:57 +0000 |
---|---|---|
committer | Christian Neumair <cneumair@src.gnome.org> | 2005-07-29 06:25:57 +0000 |
commit | 07404213e476db78f2bd80de83c4664a5ad6dd08 (patch) | |
tree | e5a032a2931bcc8f7fae8a16ce4e89a09485bbad | |
parent | 32a6c0cd80df71f6a10f7f6f9e3f16a678834abb (diff) | |
download | libwnck-07404213e476db78f2bd80de83c4664a5ad6dd08.tar.gz |
Prevent pager from flickering when moving windows between workspaces.
2005-07-29 Christian Neumair <chris@gnome-de.org>
* libwnck/pager.c: (wnck_pager_init), (wnck_pager_draw_workspace),
(wnck_pager_expose_event), (wnck_pager_button_release):
Prevent pager from flickering when moving windows between workspaces.
Fixes #167745.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | libwnck/pager.c | 10 |
2 files changed, 15 insertions, 2 deletions
@@ -1,3 +1,10 @@ +2005-07-29 Christian Neumair <chris@gnome-de.org> + + * libwnck/pager.c: (wnck_pager_init), (wnck_pager_draw_workspace), + (wnck_pager_expose_event), (wnck_pager_button_release): + Prevent pager from flickering when moving windows between workspaces. + Fixes #167745. + 2005-07-23 Elijah Newren <newren@gmail.com> * configure.in: post-release bump to 2.10.4. diff --git a/libwnck/pager.c b/libwnck/pager.c index cec4914..e45f9d3 100644 --- a/libwnck/pager.c +++ b/libwnck/pager.c @@ -171,6 +171,7 @@ wnck_pager_init (WnckPager *pager) pager->priv->orientation = GTK_ORIENTATION_HORIZONTAL; pager->priv->workspace_size = 48; pager->priv->bg_cache = NULL; + pager->priv->action_window = NULL; pager->priv->layout_manager_token = WNCK_NO_MANAGER_TOKEN; gtk_drag_dest_set (GTK_WIDGET (pager), 0, NULL, 0, 0); @@ -876,8 +877,9 @@ wnck_pager_draw_workspace (WnckPager *pager, WnckWindow *win = tmp->data; GdkRectangle winrect; - if (pager->priv->dragging && - win == pager->priv->drag_window) + if ((pager->priv->dragging && + win == pager->priv->drag_window) || + win == pager->priv->action_window) { tmp = tmp->next; continue; @@ -1041,6 +1043,9 @@ wnck_pager_expose_event (GtkWidget *widget, &winrect, is_current); } + + if (pager->priv->action_window) + pager->priv->action_window = NULL; return FALSE; } @@ -1225,6 +1230,7 @@ wnck_pager_button_release (GtkWidget *widget, if (space) { + pager->priv->action_window = pager->priv->drag_window; wnck_window_move_to_workspace (pager->priv->drag_window, space); if (space == wnck_screen_get_active_workspace (pager->priv->screen)) |