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

Reply via email to