diff options
author | Havoc Pennington <hp@redhat.com> | 2004-08-19 02:05:24 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2004-08-19 02:05:24 +0000 |
commit | 06a58f43c0b58ab15a3e40e93b16f2c0e128af23 (patch) | |
tree | 5160878a04dbf76aed4789becaa6cb14a4b8a37d /src/keybindings.c | |
parent | e81b5978b08ccfe9667f3abf4902899d654036ca (diff) | |
download | metacity-06a58f43c0b58ab15a3e40e93b16f2c0e128af23.tar.gz |
track the last_xor_rect separately from the current window size, and then
2004-08-18 Havoc Pennington <hp@redhat.com>
* src/display.h (struct _MetaDisplay): track the last_xor_rect
separately from the current window size, and then use that to
paint the wireframe including the frame, and taking into
account shaded windows.
* src/window.c (meta_window_get_xor_rect): new function to compute
the xor rect; it is not really 100% right, because it uses the
frame dimensions from the window at the start of the move/resize.
But probably won't break in practice.
Diffstat (limited to 'src/keybindings.c')
-rw-r--r-- | src/keybindings.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/keybindings.c b/src/keybindings.c index 89c6d57f..9039e96a 100644 --- a/src/keybindings.c +++ b/src/keybindings.c @@ -1822,14 +1822,16 @@ process_keyboard_move_grab (MetaDisplay *display, { MetaRectangle new_xor; - new_xor = display->grab_wireframe_rect; - new_xor.x = x; - new_xor.y = y; + display->grab_wireframe_rect.x = x; + display->grab_wireframe_rect.y = y; + + meta_window_get_xor_rect (window, &display->grab_wireframe_rect, + &new_xor); meta_effects_update_wireframe (window->screen, - &display->grab_wireframe_rect, + &display->grab_wireframe_last_xor_rect, &new_xor); - display->grab_wireframe_rect = new_xor; + display->grab_wireframe_last_xor_rect = new_xor; } else { @@ -2281,15 +2283,19 @@ process_keyboard_resize_grab (MetaDisplay *display, { MetaRectangle new_xor; - new_xor.x = x; - new_xor.y = y; - new_xor.width = width; - new_xor.height = height; - + window->display->grab_wireframe_rect.x = x; + window->display->grab_wireframe_rect.y = y; + window->display->grab_wireframe_rect.width = width; + window->display->grab_wireframe_rect.height = height; + + meta_window_get_xor_rect (window, + &window->display->grab_wireframe_rect, + &new_xor); + meta_effects_update_wireframe (window->screen, - &window->display->grab_wireframe_rect, + &window->display->grab_wireframe_last_xor_rect, &new_xor); - window->display->grab_wireframe_rect = new_xor; + window->display->grab_wireframe_last_xor_rect = new_xor; /* do this after drawing the wires, so we don't draw over it */ meta_window_refresh_resize_popup (window); |