Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=51c59cc4d6df0192765ff333d3d63fcce461dc8e
commit 51c59cc4d6df0192765ff333d3d63fcce461dc8e Author: Devil505 <[email protected]> Date: Wed Apr 27 20:47:23 2011 +0200 metacity-2.34.0-2-i686 * added patch for compiz and unity diff --git a/source/gnome/metacity/06_Add_UXD_shadows_and_borders.patch b/source/gnome/metacity/06_Add_UXD_shadows_and_borders.patch new file mode 100644 index 0000000..c29fe02 --- /dev/null +++ b/source/gnome/metacity/06_Add_UXD_shadows_and_borders.patch @@ -0,0 +1,404 @@ +From a5442fe19432509eda44901093b45e97f72e04c0 Mon Sep 17 00:00:00 2001 +From: Sam Spilsbury <[email protected]> +Date: Thu, 13 Jan 2011 11:59:40 +0800 +Subject: [PATCH] Add UXD shadows and borders + +--- + src/ui/theme-parser.c | 520 ++++++++++++++++++++------------ + src/ui/theme.c | 63 ++++ + src/ui/theme.h | 112 ++++++-- + 3 files changed, 482 insertions(+), 215 deletions(-) + +diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c +index c56e318..aef6cee 100644 +--- a/src/ui/theme-parser.c ++++ b/src/ui/theme-parser.c +@@ -67,6 +67,8 @@ typedef enum + STATE_FRAME_STYLE, + STATE_PIECE, + STATE_BUTTON, ++ STATE_SHADOW, ++ STATE_PADDING, + /* style set */ + STATE_FRAME_STYLE_SET, + STATE_FRAME, +@@ -173,6 +175,20 @@ static void parse_button_element (GMarkupParseContext *context, + ParseInfo *info, + GError **error); + ++static void parse_shadow_element (GMarkupParseContext *context, ++ const gchar *element_name, ++ const gchar **attribute_names, ++ const gchar **attribute_values, ++ ParseInfo *info, ++ GError **error); ++ ++static void parse_padding_element (GMarkupParseContext *context, ++ const gchar *element_name, ++ const gchar **attribute_names, ++ const gchar **attribute_values, ++ ParseInfo *info, ++ GError **error); ++ + static void parse_menu_icon_element (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, +@@ -2924,9 +2940,76 @@ parse_style_element (GMarkupParseContext *context, + meta_draw_op_list_ref (op_list); + info->op_list = op_list; + } +- ++ + push_state (info, STATE_BUTTON); + } ++ else if (ELEMENT_IS ("shadow")) ++ { ++ const char *shadow_radius = NULL; ++ const char *shadow_opacity = NULL; ++ const char *shadow_color = NULL; ++ const char *shadow_x_offset = NULL; ++ const char *shadow_y_offset = NULL; ++ double shadow_radius_v, shadow_opacity_v; ++ int shadow_x_offset_v, shadow_y_offset_v; ++ MetaColorSpec *shadow_color_v; ++ ++ if (!locate_attributes (context, element_name, attribute_names, attribute_values, ++ error, ++ "radius", &shadow_radius, ++ "opacity", &shadow_opacity, ++ "color", &shadow_color, ++ "x_offset", &shadow_x_offset, ++ "y_offset", &shadow_y_offset, ++ NULL)) ++ return; ++ ++ parse_double (shadow_radius, &shadow_radius_v, context, error); ++ parse_double (shadow_opacity, &shadow_opacity_v, context, error); ++ parse_positive_integer (shadow_x_offset, &shadow_x_offset_v, context, info->theme, error); ++ parse_positive_integer (shadow_y_offset, &shadow_y_offset_v, context, info->theme, error); ++ shadow_color_v = parse_color (info->theme, shadow_color, error); ++ ++ if (!info->style->shadow_properties) ++ info->style->shadow_properties = meta_shadow_properties_new (); ++ ++ info->style->shadow_properties->unity_shadow_radius = shadow_radius_v; ++ info->style->shadow_properties->unity_shadow_opacity = shadow_opacity_v; ++ info->style->shadow_properties->unity_shadow_x_offset = shadow_x_offset_v; ++ info->style->shadow_properties->unity_shadow_y_offset = shadow_y_offset_v; ++ info->style->shadow_properties->unity_shadow_color = shadow_color_v; ++ ++ push_state (info, STATE_SHADOW); ++ ++ } ++ else if (ELEMENT_IS ("padding")) ++ { ++ const char *left = NULL; ++ const char *bottom = NULL; ++ const char *right = NULL; ++ int left_v, right_v, bottom_v; ++ ++ if (!locate_attributes (context, element_name, attribute_names, attribute_values, ++ error, ++ "left", &left, ++ "right", &right, ++ "bottom", &bottom, ++ NULL)) ++ return; ++ ++ parse_positive_integer (left, &left_v, context, info->theme, error); ++ parse_positive_integer (right, &right_v, context, info->theme, error); ++ parse_positive_integer (bottom, &bottom_v, context, info->theme, error); ++ ++ if (!info->style->invisible_grab_area_properties) ++ info->style->invisible_grab_area_properties = meta_invisible_grab_area_properties_new (); ++ ++ info->style->invisible_grab_area_properties->left = left_v; ++ info->style->invisible_grab_area_properties->right = right_v; ++ info->style->invisible_grab_area_properties->bottom = bottom_v; ++ ++ push_state (info, STATE_PADDING); ++ } + else + { + set_error (error, context, +@@ -3205,6 +3288,38 @@ parse_button_element (GMarkupParseContext *context, + } + + static void ++parse_shadow_element (GMarkupParseContext *context, ++ const gchar *element_name, ++ const gchar **attribute_names, ++ const gchar **attribute_values, ++ ParseInfo *info, ++ GError **error) ++{ ++ g_return_if_fail (peek_state (info) == STATE_SHADOW); ++ ++ set_error (error, context, ++ G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, ++ _("Element <%s> is not allowed below <%s>"), ++ element_name, "shadow"); ++} ++ ++static void ++parse_padding_element (GMarkupParseContext *context, ++ const gchar *element_name, ++ const gchar **attribute_names, ++ const gchar **attribute_values, ++ ParseInfo *info, ++ GError **error) ++{ ++ g_return_if_fail (peek_state (info) == STATE_PADDING); ++ ++ set_error (error, context, ++ G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE, ++ _("Element <%s> is not allowed below <%s>"), ++ element_name, "padding"); ++} ++ ++static void + parse_menu_icon_element (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, +@@ -3355,6 +3469,16 @@ start_element_handler (GMarkupParseContext *context, + attribute_names, attribute_values, + info, error); + break; ++ case STATE_SHADOW: ++ parse_shadow_element (context, element_name, ++ attribute_names, attribute_values, ++ info, error); ++ break; ++ case STATE_PADDING: ++ parse_padding_element (context, element_name, ++ attribute_names, attribute_values, ++ info, error); ++ break; + case STATE_MENU_ICON: + parse_menu_icon_element (context, element_name, + attribute_names, attribute_values, +@@ -3624,6 +3748,14 @@ end_element_handler (GMarkupParseContext *context, + } + pop_state (info); + break; ++ case STATE_SHADOW: ++ g_assert (info->style); ++ pop_state (info); ++ break; ++ case STATE_PADDING: ++ g_assert (info->style); ++ pop_state (info); ++ break; + case STATE_MENU_ICON: + g_assert (info->theme); + if (info->op_list != NULL) +@@ -3848,6 +3980,12 @@ text_handler (GMarkupParseContext *context, + case STATE_BUTTON: + NO_TEXT ("button"); + break; ++ case STATE_SHADOW: ++ NO_TEXT ("shadow"); ++ break; ++ case STATE_PADDING: ++ NO_TEXT ("padding"); ++ break; + case STATE_MENU_ICON: + NO_TEXT ("menu_icon"); + break; + +diff --git a/src/ui/theme.c b/src/ui/theme.c +index 1397fc6..dfa5e9f 100644 +--- a/src/ui/theme.c ++++ b/src/ui/theme.c +@@ -1051,6 +1051,51 @@ meta_alpha_gradient_spec_free (MetaAlphaGradientSpec *spec) + g_free (spec); + } + ++MetaShadowProperties* ++meta_shadow_properties_new (void) ++{ ++ MetaShadowProperties *properties; ++ ++ properties = g_new0 (MetaShadowProperties, 1); ++ ++ if (properties) ++ { ++ properties->unity_shadow_radius = 0.0f; ++ properties->unity_shadow_x_offset = 0; ++ properties->unity_shadow_y_offset = 0; ++ properties->unity_shadow_color = NULL; ++ } ++ ++ return properties; ++} ++ ++void ++meta_shadow_properties_free (MetaShadowProperties *properties) ++{ ++ g_return_if_fail (properties != NULL); ++ ++ meta_color_spec_free (properties->unity_shadow_color); ++ g_free (properties); ++} ++ ++MetaInvisibleGrabAreaProperties* ++meta_invisible_grab_area_properties_new (void) ++{ ++ MetaInvisibleGrabAreaProperties *properties; ++ ++ properties = g_new0 (MetaInvisibleGrabAreaProperties, 1); ++ ++ return properties; ++} ++ ++void ++meta_invisible_grab_area_properties_free (MetaInvisibleGrabAreaProperties *properties) ++{ ++ g_return_if_fail (properties != NULL); ++ ++ g_free (properties); ++} ++ + MetaColorSpec* + meta_color_spec_new (MetaColorSpecType type) + { +@@ -4149,6 +4194,12 @@ meta_frame_style_unref (MetaFrameStyle *style) + if (style->parent) + meta_frame_style_unref (style->parent); + ++ if (style->shadow_properties) ++ meta_shadow_properties_free (style->shadow_properties); ++ ++ if (style->invisible_grab_area_properties) ++ meta_invisible_grab_area_properties_free (style->invisible_grab_area_properties); ++ + DEBUG_FILL_STRUCT (style); + g_free (style); + } +@@ -4581,6 +4632,18 @@ meta_frame_style_draw (MetaFrameStyle *style, + button_states, mini_icon, icon); + } + ++MetaShadowProperties * ++meta_frame_style_get_shadow_properties (MetaFrameStyle *style) ++{ ++ return style->shadow_properties; ++} ++ ++ ++MetaInvisibleGrabAreaProperties * meta_frame_style_get_invisible_grab_area_properties (MetaFrameStyle *style) ++{ ++ return style->invisible_grab_area_properties; ++} ++ + MetaFrameStyleSet* + meta_frame_style_set_new (MetaFrameStyleSet *parent) + { +diff --git a/src/ui/theme.h b/src/ui/theme.h +index ddf777d..88d3bf0 100644 +--- a/src/ui/theme.h ++++ b/src/ui/theme.h +@@ -34,7 +34,7 @@ typedef struct _MetaFrameStyleSet MetaFrameStyleSet; + typedef struct _MetaDrawOp MetaDrawOp; + typedef struct _MetaDrawOpList MetaDrawOpList; + typedef struct _MetaGradientSpec MetaGradientSpec; +-typedef struct _MetaAlphaGradientSpec MetaAlphaGradientSpec; ++typedef struct _MetaAlphaGradientSpec MetaAlphaGradientSpec; + typedef struct _MetaColorSpec MetaColorSpec; + typedef struct _MetaFrameLayout MetaFrameLayout; + typedef struct _MetaButtonSpace MetaButtonSpace; +@@ -42,6 +42,54 @@ typedef struct _MetaFrameGeometry MetaFrameGeometry; + typedef struct _MetaTheme MetaTheme; + typedef struct _MetaPositionExprEnv MetaPositionExprEnv; + typedef struct _MetaDrawInfo MetaDrawInfo; ++typedef struct _MetaShadowProperties MetaShadowProperties; ++typedef struct _MetaInvisibleGrabAreaProperties MetaInvisibleGrabAreaProperties; ++ ++struct _MetaShadowProperties ++{ ++ /** ++ * Radius of the shadow ++ */ ++ double unity_shadow_radius; ++ ++ /** ++ * Opacity of the shadow ++ */ ++ double unity_shadow_opacity; ++ ++ /** ++ * Color of the shadow ++ */ ++ MetaColorSpec *unity_shadow_color; ++ /** ++ * Shadow X Offset ++ */ ++ guint8 unity_shadow_x_offset; ++ /** ++ * Shadow Y Offset ++ */ ++ guint8 unity_shadow_y_offset; ++}; ++ ++struct _MetaInvisibleGrabAreaProperties ++{ ++ /** ++ * Left padding ++ */ ++ guint8 left; ++ /** ++ * Right padding ++ */ ++ guint8 right; ++ /** ++ * Bottom padding ++ */ ++ guint8 bottom; ++ /** ++ * Top padding ++ */ ++ guint8 top; ++}; + + #define META_THEME_ERROR (g_quark_from_static_string ("meta-theme-error")) + +@@ -693,6 +741,15 @@ struct _MetaFrameStyle + * Transparency of the window background. 0=transparent; 255=opaque. + */ + guint8 window_background_alpha; ++ /** ++ * Shadow ++ */ ++ MetaShadowProperties *shadow_properties; ++ /** ++ * Padding (eg invisible grab area) ++ */ ++ MetaInvisibleGrabAreaProperties *invisible_grab_area_properties; ++ + }; + + /* Kinds of frame... +@@ -946,6 +1003,11 @@ MetaAlphaGradientSpec* meta_alpha_gradient_spec_new (MetaGradientType typ + int n_alphas); + void meta_alpha_gradient_spec_free (MetaAlphaGradientSpec *spec); + ++MetaShadowProperties* meta_shadow_properties_new (void); ++void meta_shadow_properties_free (MetaShadowProperties *); ++ ++MetaInvisibleGrabAreaProperties* meta_invisible_grab_area_properties_new (void); ++void meta_invisible_grab_area_properties_free (MetaInvisibleGrabAreaProperties *); + + MetaFrameStyle* meta_frame_style_new (MetaFrameStyle *parent); + void meta_frame_style_ref (MetaFrameStyle *style); +@@ -983,6 +1045,8 @@ void meta_frame_style_draw_with_style (MetaFrameStyle *style, + GdkPixbuf *mini_icon, + GdkPixbuf *icon); + ++MetaShadowProperties * meta_frame_style_get_shadow_properties (MetaFrameStyle *style); ++MetaInvisibleGrabAreaProperties * meta_frame_style_get_invisible_grab_area_properties (MetaFrameStyle *style); + + gboolean meta_frame_style_validate (MetaFrameStyle *style, + guint current_theme_version, +-- +1.7.2.3 + diff --git a/source/gnome/metacity/FrugalBuild b/source/gnome/metacity/FrugalBuild index 0323b97..c10295b 100644 --- a/source/gnome/metacity/FrugalBuild +++ b/source/gnome/metacity/FrugalBuild @@ -3,7 +3,7 @@ pkgname=metacity pkgver=2.34.0 -pkgrel=1 +pkgrel=2 pkgdesc="A window manager for GNOME" url="http://www.gnome.org/" depends=('libxml2>=2.7.8' 'startup-notification' 'gconf>=2.32.0' 'gnome-themes>=2.30.0' 'libcm' 'gnome-frugalware>=0.7.2' \ @@ -13,10 +13,11 @@ groups=('gnome') archs=('i686' 'x86_64' 'ppc') _F_gnome_schemas=('/etc/gconf/schemas/metacity.schemas') Finclude gnome gnome-scriptlet -source=(${source[@]} DisableUselessAlert.diff) +source=(${source[@]} DisableUselessAlert.diff 06_Add_UXD_shadows_and_borders.patch) Fconfopts="$Fconfopts --enable-compositor" sha1sums=('b25add2c1fb0c05babb341bd631c180fd82e7039' \ - '7c76fd762b76fc4b4425e87af6f645d4b18b6175') + '7c76fd762b76fc4b4425e87af6f645d4b18b6175' \ + '96f77077e77efdc98f479442aff082164471e95e') build() { Fcd _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
