[gnome-shell] border-image: add support for scale factor



commit a22fdea0e300ae3b8c8573630670a773c5b126fc
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Sat Mar 22 20:43:35 2014 -0700

    border-image: add support for scale factor
    
    In a later commit we'll add support for rendering borders and
    backgrounds with scale factor.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=726907

 src/st/st-border-image.c |   14 +++++++++-----
 src/st/st-border-image.h |    3 ++-
 src/st/st-theme-node.c   |    5 ++++-
 3 files changed, 15 insertions(+), 7 deletions(-)
---
diff --git a/src/st/st-border-image.c b/src/st/st-border-image.c
index c55ee9b..a462bfd 100644
--- a/src/st/st-border-image.c
+++ b/src/st/st-border-image.c
@@ -32,6 +32,8 @@ struct _StBorderImage {
   int border_right;
   int border_bottom;
   int border_left;
+
+  int scale_factor;
 };
 
 struct _StBorderImageClass {
@@ -69,7 +71,8 @@ st_border_image_new (const char *filename,
                        int         border_top,
                        int         border_right,
                        int         border_bottom,
-                       int         border_left)
+                       int         border_left,
+                       int         scale_factor)
 {
   StBorderImage *image;
 
@@ -80,6 +83,7 @@ st_border_image_new (const char *filename,
   image->border_right = border_right;
   image->border_bottom = border_bottom;
   image->border_left = border_left;
+  image->scale_factor = scale_factor;
 
   return image;
 }
@@ -102,13 +106,13 @@ st_border_image_get_borders (StBorderImage *image,
   g_return_if_fail (ST_IS_BORDER_IMAGE (image));
 
   if (border_top)
-    *border_top = image->border_top;
+    *border_top = image->border_top * image->scale_factor;
   if (border_right)
-    *border_right = image->border_right;
+    *border_right = image->border_right * image->scale_factor;
   if (border_bottom)
-    *border_bottom = image->border_bottom;
+    *border_bottom = image->border_bottom * image->scale_factor;
   if (border_left)
-    *border_left = image->border_left;
+    *border_left = image->border_left * image->scale_factor;
 }
 
 /**
diff --git a/src/st/st-border-image.h b/src/st/st-border-image.h
index f094160..9b284d6 100644
--- a/src/st/st-border-image.h
+++ b/src/st/st-border-image.h
@@ -43,7 +43,8 @@ StBorderImage *st_border_image_new (const char *filename,
                                     int         border_top,
                                     int         border_right,
                                     int         border_bottom,
-                                    int         border_left);
+                                    int         border_left,
+                                    int         scale_factor);
 
 const char *st_border_image_get_filename (StBorderImage *image);
 void        st_border_image_get_borders  (StBorderImage *image,
diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c
index 68aea17..16f247a 100644
--- a/src/st/st-theme-node.c
+++ b/src/st/st-theme-node.c
@@ -2864,6 +2864,7 @@ StBorderImage *
 st_theme_node_get_border_image (StThemeNode *node)
 {
   int i;
+  int scale_factor;
 
   if (node->border_image_computed)
     return node->border_image;
@@ -2872,6 +2873,7 @@ st_theme_node_get_border_image (StThemeNode *node)
   node->border_image_computed = TRUE;
 
   ensure_properties (node);
+  g_object_get (node->context, "scale-factor", &scale_factor, NULL);
 
   for (i = node->n_properties - 1; i >= 0; i--)
     {
@@ -2978,7 +2980,8 @@ st_theme_node_get_border_image (StThemeNode *node)
             goto next_property;
 
           node->border_image = st_border_image_new (filename,
-                                                    border_top, border_right, border_bottom, border_left);
+                                                    border_top, border_right, border_bottom, border_left,
+                                                    scale_factor);
 
           g_free (filename);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]