From 47ce823aa524d6d33b56749983f1a241232cc51a Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Mon, 6 Aug 2001 04:43:31 +0000 Subject: [PATCH] draw animation for shading too 2001-08-06 Havoc Pennington * src/window.c (meta_window_shade): draw animation for shading too --- ChangeLog | 5 +++++ README | 7 ++++--- configure.in | 2 +- src/effects.h | 3 +++ src/window.c | 22 ++++++++++++++++++++-- 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8f01e38d..3f9b61edc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2001-08-06 Havoc Pennington + + * src/window.c (meta_window_shade): draw animation + for shading too + 2001-08-05 Anders Carlsson * src/display.h, src/display.c: Add _NET_WM_ICON_GEOMETRY atom. diff --git a/README b/README index cdac58b3b..996149197 100644 --- a/README +++ b/README @@ -123,6 +123,10 @@ METACITY FEATURES - Uses Pango to render text, so has cool i18n capabilities. Supports UTF-8 window titles and such. + - There are simple animations for actions such as minimization, + to help users see what is happening. Should probably + have a few more of these. + METACITY BUGS, NON-FEATURES, AND CAVEATS === @@ -167,9 +171,6 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS another. (But sometimes I don't see the flicker, so I'm not sure.) - - Various operations, such as minimize, maximize, etc., should - have simple animations to make them clearer to users. - - I haven't even read the ICCCM section about colormaps. So if you have an 8-bit display you are basically screwed. diff --git a/configure.in b/configure.in index c129b3437..9e275c640 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ AC_INIT(src/display.c) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(metacity, 2.3.2) +AM_INIT_AUTOMAKE(metacity, 2.3.3) GETTEXT_PACKAGE=metacity AC_SUBST(GETTEXT_PACKAGE) diff --git a/src/effects.h b/src/effects.h index d564103e4..867f6c06a 100644 --- a/src/effects.h +++ b/src/effects.h @@ -28,6 +28,9 @@ #define META_MINIMIZE_ANIMATION_STEPS 16 #define META_MINIMIZE_ANIMATION_DELAY 20 +#define META_SHADE_ANIMATION_STEPS 7 +#define META_SHADE_ANIMATION_DELAY 15 + void meta_effects_draw_box_animation (MetaScreen *screen, MetaRectangle *initial_rect, MetaRectangle *destination_rect, diff --git a/src/window.c b/src/window.c index 917ddee07..519efa390 100644 --- a/src/window.c +++ b/src/window.c @@ -1064,10 +1064,28 @@ meta_window_shade (MetaWindow *window) meta_verbose ("Shading %s\n", window->desc); if (!window->shaded) { - window->shaded = TRUE; + { + /* Animation */ + MetaRectangle starting_size; + MetaRectangle titlebar_size; - meta_window_focus (window, CurrentTime); + meta_window_get_outer_rect (window, &starting_size); + if (window->frame) + starting_size.y += window->frame->child_y; + titlebar_size = starting_size; + titlebar_size.height = 0; + + meta_effects_draw_box_animation (window->screen, + &starting_size, + &titlebar_size, + META_SHADE_ANIMATION_STEPS, + META_SHADE_ANIMATION_DELAY); + } + + window->shaded = TRUE; + meta_window_focus (window, CurrentTime); + meta_window_queue_move_resize (window); meta_window_queue_calc_showing (window);