diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c | 102 | ||||
-rw-r--r-- | matchbox/theme-engines/mb-wm-theme-simple.h | 2 |
3 files changed, 68 insertions, 45 deletions
@@ -1,3 +1,12 @@ +2008-03-02 Tomas Frydrych <tf@o-hand.com> + + * matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c: + (mb_wm_comp_mgr_clutter_map_notify_real): + Only create shadows for select group of client types. + + * matchbox/theme-engines/mb-wm-theme-simple.h: + Fixed broken include. + 2008-02-29 Tomas Frydrych <tf@o-hand.com> * matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c: diff --git a/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c b/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c index 8044d10..399713c 100644 --- a/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c +++ b/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c @@ -1061,6 +1061,7 @@ mb_wm_comp_mgr_clutter_map_notify_real (MBWMCompMgr *mgr, unsigned int shadow_clr[4]; ClutterColor shadow_cclr; MBWMCompMgrShadowType shadow_type; + MBWMClientType ctype = MB_WM_CLIENT_CLIENT_TYPE (c); /* * We get called for windows as well as their children, so once we are @@ -1083,63 +1084,76 @@ mb_wm_comp_mgr_clutter_map_notify_real (MBWMCompMgr *mgr, texture = clutter_x11_texture_pixmap_new (); clutter_actor_show (texture); - shadow_type = mb_wm_theme_get_shadow_type (wm->theme); - - if (shadow_type == MBWM_COMP_MGR_SHADOW_NONE) - { - clutter_container_add (CLUTTER_CONTAINER (actor), texture, NULL); - } - else + if (ctype == MBWMClientTypeDialog || + ctype == MBWMClientTypeMenu || + ctype == MBWMClientTypeNote || + ctype == MBWMClientTypeOverride) { - if (shadow_type == MBWM_COMP_MGR_SHADOW_SIMPLE) + shadow_type = mb_wm_theme_get_shadow_type (wm->theme); + + if (shadow_type == MBWM_COMP_MGR_SHADOW_NONE) { - mb_wm_theme_get_shadow_color (wm->theme, - &shadow_clr[0], - &shadow_clr[1], - &shadow_clr[2], - &shadow_clr[3]); - - shadow_cclr.red = 0xff * shadow_clr[0] / 0xffff; - shadow_cclr.green = 0xff * shadow_clr[1] / 0xffff; - shadow_cclr.blue = 0xff * shadow_clr[2] / 0xffff; - shadow_cclr.alpha = 0xff * shadow_clr[3] / 0xffff; - - rect = clutter_rectangle_new_with_color (&shadow_cclr); - clutter_actor_set_position (rect, 4, 4); + clutter_container_add (CLUTTER_CONTAINER (actor), texture, NULL); } else { - ClutterActor * txt = cmgr->priv->shadow; - if (!txt) + if (shadow_type == MBWM_COMP_MGR_SHADOW_SIMPLE) + { + mb_wm_theme_get_shadow_color (wm->theme, + &shadow_clr[0], + &shadow_clr[1], + &shadow_clr[2], + &shadow_clr[3]); + + shadow_cclr.red = 0xff * shadow_clr[0] / 0xffff; + shadow_cclr.green = 0xff * shadow_clr[1] / 0xffff; + shadow_cclr.blue = 0xff * shadow_clr[2] / 0xffff; + shadow_cclr.alpha = 0xff * shadow_clr[3] / 0xffff; + + rect = clutter_rectangle_new_with_color (&shadow_cclr); + clutter_actor_set_position (rect, 4, 4); + } + else { - unsigned char * data; + ClutterActor * txt = cmgr->priv->shadow; + if (!txt) + { + unsigned char * data; - data = mb_wm_comp_mgr_clutter_shadow_gaussian_make_tile (); + data = mb_wm_comp_mgr_clutter_shadow_gaussian_make_tile (); - txt = g_object_new (CLUTTER_TYPE_TEXTURE, "tiled", FALSE, NULL); + txt = g_object_new (CLUTTER_TYPE_TEXTURE, "tiled", + FALSE, NULL); - clutter_texture_set_from_rgb_data (CLUTTER_TEXTURE (txt), - data, - TRUE, - WIDTH, - HEIGHT, - WIDTH*4, - 4, - 0, - NULL); - free (data); + clutter_texture_set_from_rgb_data (CLUTTER_TEXTURE (txt), + data, + TRUE, + WIDTH, + HEIGHT, + WIDTH*4, + 4, + 0, + NULL); + free (data); - cmgr->priv->shadow = txt; - } + cmgr->priv->shadow = txt; + } - rect = clutter_clone_texture_new (CLUTTER_TEXTURE (txt)); + rect = clutter_clone_texture_new (CLUTTER_TEXTURE (txt)); - clutter_actor_set_position (rect, 2*SHADOW_RADIUS, 2*SHADOW_RADIUS); - } + clutter_actor_set_position (rect, + 2*SHADOW_RADIUS, 2*SHADOW_RADIUS); + } - clutter_actor_set_size (rect, geom.width, geom.height); - clutter_actor_show (rect); - clutter_container_add (CLUTTER_CONTAINER (actor), rect, texture, NULL); + clutter_actor_set_size (rect, geom.width, geom.height); + clutter_actor_show (rect); + clutter_container_add (CLUTTER_CONTAINER (actor), + rect, texture, NULL); + } + } + else + { + clutter_container_add (CLUTTER_CONTAINER (actor), texture, NULL); } diff --git a/matchbox/theme-engines/mb-wm-theme-simple.h b/matchbox/theme-engines/mb-wm-theme-simple.h index bcd2af2..973d18e 100644 --- a/matchbox/theme-engines/mb-wm-theme-simple.h +++ b/matchbox/theme-engines/mb-wm-theme-simple.h @@ -22,7 +22,7 @@ #define _HAVE_MB_WM_THEME_SIMPLE_H #include <matchbox/mb-wm-config.h> -#include <matchbox/mb-wm-theme.h> +#include <matchbox/theme-engines/mb-wm-theme.h> struct MBWMThemeSimpleClass { |