patches/metacity-03-branding-hack.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 15708 b1bebd509db6
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15708
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     1
diff -Nrup metacity-2.18.2/src/ui/frames.c ../metacity-2.18.2/src/ui/frames.c
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     2
--- metacity-2.18.2/src/ui/frames.c	2007-04-09 03:32:46.000000000 +0200
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     3
+++ ../metacity-2.18.2/src/ui/frames.c	2007-04-12 15:34:25.878227000 +0200
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     4
@@ -752,6 +752,8 @@ meta_frames_apply_shapes (MetaFrames *fr
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     5
   XRectangle xrect;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     6
   Region corners_xregion;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     7
   Region window_xregion;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     8
+  /* hack for nimbus theme */
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
     9
+  gboolean nimbus_theme = (strcmp ("nimbus", meta_prefs_get_theme ()) == 0) ? TRUE : FALSE; 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    10
   
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    11
   frame = meta_frames_lookup_window (frames, xwindow);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    12
   g_return_if_fail (frame != NULL);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    13
@@ -788,74 +790,120 @@ meta_frames_apply_shapes (MetaFrames *fr
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    14
   
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    15
   if (fgeom.top_left_corner_rounded_radius != 0)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    16
     {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    17
-      const int corner = fgeom.top_left_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    18
-      const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    19
-      int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    20
-
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    21
-      for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    22
-        {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    23
-          const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    24
-          xrect.x = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    25
-          xrect.y = i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    26
-          xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    27
-          xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    28
-          
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    29
-          XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    30
-        }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    31
+      if (nimbus_theme)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    32
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    33
+	  xrect.x = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    34
+	  xrect.y = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    35
+	  xrect.width = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    36
+	  xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    37
+	  XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    38
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    39
+      else
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    40
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    41
+	  const int corner = fgeom.top_left_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    42
+	  const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    43
+	  int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    44
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    45
+	  for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    46
+	    {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    47
+	      const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    48
+	      xrect.x = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    49
+	      xrect.y = i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    50
+	      xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    51
+	      xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    52
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    53
+	      XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    54
+	    }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    55
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    56
     }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    57
 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    58
   if (fgeom.top_right_corner_rounded_radius != 0)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    59
     {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    60
-      const int corner = fgeom.top_right_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    61
-      const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    62
-      int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    63
+      if (nimbus_theme)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    64
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    65
+	  xrect.x = new_window_width - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    66
+	  xrect.y = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    67
+	  xrect.width = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    68
+	  xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    69
+	  XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    70
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    71
+      else
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    72
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    73
 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    74
-      for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    75
-        {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    76
-          const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    77
-          xrect.x = new_window_width - width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    78
-          xrect.y = i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    79
-          xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    80
-          xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    81
-          
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    82
-          XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    83
-        }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    84
+	  const int corner = fgeom.top_right_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    85
+	  const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    86
+	  int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    87
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    88
+	  for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    89
+	    {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    90
+	      const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    91
+	      xrect.x = new_window_width - width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    92
+	      xrect.y = i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    93
+	      xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    94
+	      xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    95
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    96
+	      XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    97
+	    }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    98
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
    99
     }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   100
 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   101
   if (fgeom.bottom_left_corner_rounded_radius != 0)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   102
     {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   103
-      const int corner = fgeom.bottom_left_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   104
-      const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   105
-      int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   106
+      if (nimbus_theme)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   107
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   108
+	  xrect.x = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   109
+	  xrect.y = new_window_height - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   110
+	  xrect.width = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   111
+	  xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   112
+	  XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   113
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   114
+      else
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   115
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   116
 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   117
-      for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   118
-        {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   119
-          const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   120
-          xrect.x = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   121
-          xrect.y = new_window_height - i - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   122
-          xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   123
-          xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   124
-          
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   125
-          XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   126
-        }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   127
+	  const int corner = fgeom.bottom_left_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   128
+	  const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   129
+	  int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   130
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   131
+	  for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   132
+	    {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   133
+	      const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   134
+	      xrect.x = 0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   135
+	      xrect.y = new_window_height - i - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   136
+	      xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   137
+	      xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   138
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   139
+	      XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   140
+	    }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   141
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   142
     }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   143
 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   144
   if (fgeom.bottom_right_corner_rounded_radius != 0)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   145
     {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   146
-      const int corner = fgeom.bottom_right_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   147
-      const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   148
-      int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   149
-
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   150
-      for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   151
-        {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   152
-          const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   153
-          xrect.x = new_window_width - width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   154
-          xrect.y = new_window_height - i - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   155
-          xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   156
-          xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   157
-          
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   158
-          XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   159
-        }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   160
+      if (nimbus_theme)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   161
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   162
+	  xrect.x = new_window_width - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   163
+	  xrect.y = new_window_height - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   164
+	  xrect.width = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   165
+	  xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   166
+	  XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   167
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   168
+      else
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   169
+	{
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   170
+	  const int corner = fgeom.bottom_right_corner_rounded_radius;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   171
+	  const float radius = sqrt(corner) + corner;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   172
+	  int i;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   173
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   174
+	  for (i=0; i<corner; i++)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   175
+	    {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   176
+	      const int width = floor(0.5 + radius - sqrt(radius*radius - (radius-(i+0.5))*(radius-(i+0.5))));
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   177
+	      xrect.x = new_window_width - width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   178
+	      xrect.y = new_window_height - i - 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   179
+	      xrect.width = width;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   180
+	      xrect.height = 1;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   181
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   182
+	      XUnionRectWithRegion (&xrect, corners_xregion, corners_xregion);
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   183
+	    }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   184
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   185
     }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   186
   
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   187
   window_xregion = XCreateRegion ();
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   188
diff -Nrup metacity-2.18.2/src/ui/theme-parser.c ../metacity-2.18.2/src/ui/theme-parser.c
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   189
--- metacity-2.18.2/src/ui/theme-parser.c	2007-04-08 20:46:17.000000000 +0200
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   190
+++ ../metacity-2.18.2/src/ui/theme-parser.c	2007-04-12 15:23:40.286578000 +0200
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   191
@@ -913,6 +913,23 @@ parse_toplevel_element (GMarkupParseCont
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   192
         return;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   193
       
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   194
       title_scale_val = 1.0;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   195
+
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   196
+	{ /* Hack for Nimbus theme - pretend we have rounded corners this way the theme will 
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   197
+	     look Ok in non-patches version of metacity */
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   198
+	  gboolean nimbus_theme = (strcmp ("nimbus", info->theme_name) == 0) ? TRUE : FALSE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   199
+	  if (nimbus_theme)
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   200
+	    {
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   201
+	      rounded_top_left_val = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   202
+	      rounded_top_right_val = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   203
+	      rounded_bottom_left_val = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   204
+	      rounded_bottom_right_val = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   205
+	      rounded_top_left = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   206
+	      rounded_top_right = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   207
+	      rounded_bottom_left = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   208
+	      rounded_bottom_right = TRUE;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   209
+	    }
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   210
+	}
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   211
+      
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   212
       if (title_scale && !parse_title_scale (title_scale, &title_scale_val, context, error))
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   213
         return;
b1bebd509db6 2009-05-04 Wang Xin <[email protected]>
jedy
parents:
diff changeset
   214