diff -u libwnck-2.21.92/debian/changelog libwnck-2.21.92/debian/changelog --- libwnck-2.21.92/debian/changelog +++ libwnck-2.21.92/debian/changelog @@ -1,3 +1,14 @@ +libwnck (2.21.92-0ubuntu2) hardy; urgency=low + + * debian/patches/03_unstick_window_before_moving.patch: + - before moving a window make sure it isn't sticky (LP: #199032) + * debian/patches/04_make_left_and_up_moves_work.patch + - subtract position instead of adding to make left/up work (LP: #184998) + * debian/patches/05_make_set_geometry_understand_decorations.patch: + - include decoration sizes in calculations, from SVN + + -- Travis Watkins Thu, 06 Mar 2008 07:32:37 -0600 + libwnck (2.21.92-0ubuntu1) hardy; urgency=low * New upstream version: only in patch2: unchanged: --- libwnck-2.21.92.orig/debian/patches/03_unstick_window_before_moving.patch +++ libwnck-2.21.92/debian/patches/03_unstick_window_before_moving.patch @@ -0,0 +1,43 @@ +diff -Nur -x '*.orig' -x '*~' libwnck-2.21.92/libwnck/window-action-menu.c libwnck-2.21.92.new/libwnck/window-action-menu.c +--- libwnck-2.21.92/libwnck/window-action-menu.c 2008-03-06 07:26:17.000000000 -0600 ++++ libwnck-2.21.92.new/libwnck/window-action-menu.c 2008-03-06 07:29:47.000000000 -0600 +@@ -252,6 +252,7 @@ + + width = wnck_screen_get_width (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); ++ wnck_window_unstick(window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw - width, yw, +@@ -272,6 +273,7 @@ + + width = wnck_screen_get_width (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); ++ wnck_window_unstick(window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw + width, yw, +@@ -292,6 +294,7 @@ + + height = wnck_screen_get_height (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); ++ wnck_window_unstick(window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw, yw - height, +@@ -312,6 +315,7 @@ + + height = wnck_screen_get_height (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); ++ wnck_window_unstick(window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw, yw + height, +@@ -358,6 +362,7 @@ + xw += viewport_x; + yw += viewport_y; + ++ wnck_window_unstick(window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw + new_viewport_x, only in patch2: unchanged: --- libwnck-2.21.92.orig/debian/patches/05_make_set_geometry_understand_decorations.patch +++ libwnck-2.21.92/debian/patches/05_make_set_geometry_understand_decorations.patch @@ -0,0 +1,15 @@ +diff -Nur -x '*.orig' -x '*~' libwnck-2.21.92/libwnck/window.c libwnck-2.21.92.new/libwnck/window.c +--- libwnck-2.21.92/libwnck/window.c 2008-02-26 11:35:17.000000000 -0600 ++++ libwnck-2.21.92.new/libwnck/window.c 2008-03-06 07:31:43.000000000 -0600 +@@ -2300,6 +2300,11 @@ + gravity_and_flags = gravity; + gravity_and_flags |= geometry_mask << 8; + gravity_and_flags |= source << 12; ++ ++ x += window->priv->left_frame; ++ y += window->priv->top_frame; ++ width -= window->priv->left_frame + window->priv->right_frame; ++ height -= window->priv->top_frame + window->priv->bottom_frame; + + _wnck_set_window_geometry (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, only in patch2: unchanged: --- libwnck-2.21.92.orig/debian/patches/04_make_left_and_up_moves_work.patch +++ libwnck-2.21.92/debian/patches/04_make_left_and_up_moves_work.patch @@ -0,0 +1,23 @@ +diff -Nur -x '*.orig' -x '*~' libwnck-2.21.92/libwnck/window-action-menu.c libwnck-2.21.92.new/libwnck/window-action-menu.c +--- libwnck-2.21.92/libwnck/window-action-menu.c 2008-03-06 16:16:04.000000000 -0600 ++++ libwnck-2.21.92.new/libwnck/window-action-menu.c 2008-03-06 16:17:51.000000000 -0600 +@@ -359,14 +359,15 @@ + viewport_x = wnck_workspace_get_viewport_x (workspace); + viewport_y = wnck_workspace_get_viewport_y (workspace); + +- xw += viewport_x; +- yw += viewport_y; ++ if (new_viewport_x != viewport_x) ++ xw += new_viewport_x - viewport_x; ++ if (new_viewport_y != viewport_y) ++ yw += new_viewport_y - viewport_y; + + wnck_window_unstick(window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, +- xw + new_viewport_x, +- yw + new_viewport_y, ++ xw, yw, + ww, hw); + } + break;