~smspillaz/compiz/compiz-xterm-fix

« back to all changes in this revision

Viewing changes to debian/patches/102_fix_xterm.patch

  • Committer: Sam Spilsbury
  • Date: 2011-03-25 06:07:10 UTC
  • Revision ID: sam.spilsbury@canonical.com-20110325060710-e816o9orc1zza32b
Add xterm fix

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From 9e5ce1695c21d147987d35292aae5dad76825bf8 Mon Sep 17 00:00:00 2001
 
2
From: Sam Spilsbury <sam.spilsbury@canonical.com>
 
3
Date: Fri, 25 Mar 2011 03:06:32 +0800
 
4
Subject: [PATCH] Correctly handle server border width in geometry calculations and
 
5
 adjustment from frame window dimentions to client dimentions
 
6
 
 
7
---
 
8
 src/window.cpp         |   14 ++++++------
 
9
 src/windowgeometry.cpp |   57 +++++++++++++++++++++++++----------------------
 
10
 2 files changed, 37 insertions(+), 34 deletions(-)
 
11
 
 
12
Index: compiz-0.9.4git20110322/src/window.cpp
 
13
===================================================================
 
14
--- compiz-0.9.4git20110322.orig/src/window.cpp 2011-03-25 13:59:29.116725630 +0800
 
15
+++ compiz-0.9.4git20110322/src/window.cpp      2011-03-25 13:59:29.146725678 +0800
 
16
@@ -1632,9 +1632,9 @@
 
17
        return;
 
18
 
 
19
     x      = ce->x + priv->input.left;
 
20
-    y      = ce->y + priv->input.top;
 
21
-    width  = ce->width - priv->input.left - priv->input.right;
 
22
-    height = ce->height - priv->input.top - priv->input.bottom;
 
23
+    y      = ce->y + priv->input.top - priv->serverGeometry.border ();
 
24
+    width  = ce->width - priv->serverGeometry.border () * 2 - priv->input.left - priv->input.right;
 
25
+    height = ce->height - priv->serverGeometry.border () * 2 - priv->input.top - priv->input.bottom;
 
26
 
 
27
     if (priv->syncWait)
 
28
     {
 
29
@@ -2429,10 +2429,10 @@
 
30
     {
 
31
        XWindowChanges wc = *xwc;
 
32
 
 
33
-       wc.x      -= input.left;
 
34
-       wc.y      -= input.top;
 
35
-       wc.width  += input.left + input.right;
 
36
-       wc.height += input.top + input.bottom;
 
37
+       wc.x      -= input.left - serverGeometry.border ();
 
38
+       wc.y      -= input.top - serverGeometry.border ();
 
39
+       wc.width  += input.left + input.right + serverGeometry.border ();
 
40
+       wc.height += input.top + input.bottom + serverGeometry.border ();
 
41
 
 
42
        XConfigureWindow (screen->dpy (), frame, valueMask, &wc);
 
43
        valueMask &= ~(CWSibling | CWStackMode);
 
44
Index: compiz-0.9.4git20110322/src/windowgeometry.cpp
 
45
===================================================================
 
46
--- compiz-0.9.4git20110322.orig/src/windowgeometry.cpp 2011-03-22 16:46:56.000000000 +0800
 
47
+++ compiz-0.9.4git20110322/src/windowgeometry.cpp      2011-03-25 13:59:29.146725678 +0800
 
48
@@ -103,19 +103,22 @@
 
49
 int
 
50
 CompWindow::width () const
 
51
 {
 
52
-    return priv->width;
 
53
+    return priv->width +
 
54
+           priv->geometry.border ()  * 2;
 
55
 }
 
56
 
 
57
 int
 
58
 CompWindow::height () const
 
59
 {
 
60
-    return priv->height;
 
61
+    return priv->height +
 
62
+           priv->geometry.border ()  * 2;;
 
63
 }
 
64
 
 
65
 CompSize
 
66
 CompWindow::size () const
 
67
 {
 
68
-    return CompSize (priv->width, priv->height);
 
69
+    return CompSize (priv->width + priv->geometry.border ()  * 2,
 
70
+                    priv->height + priv->geometry.border ()  * 2);
 
71
 }
 
72
 
 
73
 int
 
74
@@ -164,65 +167,65 @@
 
75
 CompRect
 
76
 CompWindow::borderRect () const
 
77
 {
 
78
-    return CompRect (priv->geometry.x () - priv->border.left,
 
79
-                    priv->geometry.y () - priv->border.top,
 
80
-                    priv->geometry.width () +
 
81
+    return CompRect (priv->geometry.x () - priv->geometry.border () - priv->border.left,
 
82
+                    priv->geometry.y () - priv->geometry.border () - priv->border.top,
 
83
+                    priv->geometry.width () + priv->geometry.border () * 2 +
 
84
                     priv->border.left + priv->border.right,
 
85
-                    priv->geometry.height () +
 
86
+                    priv->geometry.height () + priv->geometry.border () * 2 +
 
87
                     priv->border.top + priv->border.bottom);
 
88
 }
 
89
 
 
90
 CompRect
 
91
 CompWindow::serverBorderRect () const
 
92
 {
 
93
-    return CompRect (priv->serverGeometry.x () - priv->border.left,
 
94
-                    priv->serverGeometry.y () - priv->border.top,
 
95
-                    priv->serverGeometry.width () +
 
96
+    return CompRect (priv->serverGeometry.x () - priv->geometry.border () - priv->border.left,
 
97
+                    priv->serverGeometry.y () - priv->geometry.border () - priv->border.top,
 
98
+                    priv->serverGeometry.width () + priv->geometry.border () * 2 +
 
99
                     priv->border.left + priv->border.right,
 
100
-                    priv->serverGeometry.height () +
 
101
+                    priv->serverGeometry.height () + priv->geometry.border () * 2 +
 
102
                     priv->border.top + priv->border.bottom);
 
103
 }
 
104
 
 
105
 CompRect
 
106
 CompWindow::inputRect () const
 
107
 {
 
108
-    return CompRect (priv->geometry.x () - priv->input.left,
 
109
-                    priv->geometry.y () - priv->input.top,
 
110
-                    priv->geometry.width () +
 
111
+    return CompRect (priv->geometry.x () - priv->geometry.border () - priv->input.left,
 
112
+                    priv->geometry.y () - priv->geometry.border () - priv->input.top,
 
113
+                    priv->geometry.width () + priv->geometry.border () * 2 +
 
114
                     priv->input.left + priv->input.right,
 
115
-                    priv->geometry.height () +
 
116
+                    priv->geometry.height () +priv->geometry.border () * 2 +
 
117
                     priv->input.top + priv->input.bottom);
 
118
 }
 
119
 
 
120
 CompRect
 
121
 CompWindow::serverInputRect () const
 
122
 {
 
123
-    return CompRect (priv->serverGeometry.x () - priv->input.left,
 
124
-                    priv->serverGeometry.y () - priv->input.top,
 
125
-                    priv->serverGeometry.width () +
 
126
+    return CompRect (priv->serverGeometry.x () - priv->serverGeometry.border () - priv->input.left,
 
127
+                    priv->serverGeometry.y () - priv->serverGeometry.border () - priv->input.top,
 
128
+                    priv->serverGeometry.width () + priv->serverGeometry.border () * 2 +
 
129
                     priv->input.left + priv->input.right,
 
130
-                    priv->serverGeometry.height () +
 
131
+                    priv->serverGeometry.height () + priv->serverGeometry.border () * 2 +
 
132
                     priv->input.top + priv->input.bottom);
 
133
 }
 
134
 
 
135
 CompRect
 
136
 CompWindow::outputRect () const
 
137
 {
 
138
-    return CompRect (priv->geometry.x () - priv->output.left,
 
139
-                    priv->geometry.y () - priv->output.top,
 
140
-                    priv->geometry.width () +
 
141
+    return CompRect (priv->geometry.x () - priv->serverGeometry.border ()- priv->output.left,
 
142
+                    priv->geometry.y () - priv->serverGeometry.border () - priv->output.top,
 
143
+                    priv->geometry.width () + priv->serverGeometry.border () * 2 +
 
144
                     priv->output.left + priv->output.right,
 
145
-                    priv->geometry.height () +
 
146
+                    priv->geometry.height () + priv->serverGeometry.border () * 2 +
 
147
                     priv->output.top + priv->output.bottom);
 
148
 }
 
149
 
 
150
 CompRect
 
151
 CompWindow::serverOutputRect () const
 
152
 {
 
153
-    return CompRect (priv->serverGeometry.x () - priv->output.left,
 
154
-                    priv->serverGeometry.y () - priv->output.top,
 
155
-                    priv->serverGeometry.width () +
 
156
+    return CompRect (priv->serverGeometry.x () - priv->serverGeometry.border () -  priv->output.left,
 
157
+                    priv->serverGeometry.y () - priv->serverGeometry.border () - priv->output.top,
 
158
+                    priv->serverGeometry.width () + priv->serverGeometry.border () * 2 +
 
159
                     priv->output.left + priv->output.right,
 
160
-                    priv->serverGeometry.height () +
 
161
+                    priv->serverGeometry.height () + priv->serverGeometry.border () * 2 +
 
162
                     priv->output.top + priv->output.bottom);
 
163
 }