Merge lp:~smspillaz/compiz-core/compiz-core.width-height-for-border into lp:compiz-core

Proposed by Sam Spilsbury
Status: Rejected
Rejected by: Sam Spilsbury
Proposed branch: lp:~smspillaz/compiz-core/compiz-core.width-height-for-border
Merge into: lp:compiz-core
Prerequisite: lp:~smspillaz/compiz-core/compiz-core.work_923683
Diff against target: 383 lines (+81/-80)
9 files modified
plugins/decor/src/decor.cpp (+4/-6)
plugins/move/src/move.cpp (+2/-4)
plugins/place/src/constrain-to-workarea/src/constrain-to-workarea.cpp (+4/-6)
plugins/place/src/place.cpp (+19/-24)
src/screen.cpp (+2/-2)
src/window.cpp (+10/-10)
src/window/geometry/include/core/windowgeometry.h (+6/-0)
src/window/geometry/tests/window-geometry/src/test-window-geometry.cpp (+10/-0)
src/windowgeometry.cpp (+24/-28)
To merge this branch: bzr merge lp:~smspillaz/compiz-core/compiz-core.width-height-for-border
Reviewer Review Type Date Requested Status
Compiz Maintainers Pending
Review via email: mp+100728@code.launchpad.net

Description of the change

Adds widthIncBorders heightIncBorders etc to window::Geometry as suggested by alan at https://code.launchpad.net/~smspillaz/compiz-core/compiz-core.work_923683/+merge/100543/comments/216930

To post a comment you must log in.
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I think it would make sense to merge this branch into its prerequisite, perhaps.

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

> I think it would make sense to merge this branch into its prerequisite,
> perhaps.

+1

Unmerged revisions

2996. By Sam Spilsbury

Removed a lot of width () / height () + border () * 2 sillyness, replace with
more sturdy abstraction

2995. By Sam Spilsbury

Merge trunk

2994. By Sam Spilsbury

Use reference

2993. By Sam Spilsbury

Merge lp:compiz-core

2992. By Sam Spilsbury

Fix silly typo

2991. By Sam Spilsbury

Cleanup, fix removal of XSynchronize and detect error conditions

2990. By Sam Spilsbury

Also send moveNotify for override redirect windows

2989. By Sam Spilsbury

Added a note for a fixme

2988. By Sam Spilsbury

Also adjust the client position inside the frame whenever the frame value mask
indicates that it might have moved.

2987. By Sam Spilsbury

Update PrivateWindow::isInvisible

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'plugins/decor/src/decor.cpp'
--- plugins/decor/src/decor.cpp 2012-04-04 05:26:23 +0000
+++ plugins/decor/src/decor.cpp 2012-04-04 05:26:23 +0000
@@ -1714,7 +1714,6 @@
1714 XRectangle rects[4];1714 XRectangle rects[4];
1715 int x, y, width, height;1715 int x, y, width, height;
1716 CompWindow::Geometry server = window->serverGeometry ();1716 CompWindow::Geometry server = window->serverGeometry ();
1717 int bw = server.border () * 2;
1718 CompWindowExtents input;1717 CompWindowExtents input;
1719 CompWindowExtents border;1718 CompWindowExtents border;
1720 Window parent;1719 Window parent;
@@ -1741,8 +1740,8 @@
17411740
1742 x = window->border ().left - border.left;1741 x = window->border ().left - border.left;
1743 y = window->border ().top - border.top;1742 y = window->border ().top - border.top;
1744 width = server.width () + input.left + input.right + bw;1743 width = server.widthIncBorders () + input.left + input.right;
1745 height = server.height ()+ input.top + input.bottom + bw;1744 height = server.heightIncBorders ()+ input.top + input.bottom ;
17461745
1747 /* Non switcher windows are rooted relative to the frame window of the client1746 /* Non switcher windows are rooted relative to the frame window of the client
1748 * and switchers need to be offset by the window geometry of the client */1747 * and switchers need to be offset by the window geometry of the client */
@@ -1881,7 +1880,6 @@
1881 XRectangle rects[4];1880 XRectangle rects[4];
1882 int x, y, width, height;1881 int x, y, width, height;
1883 CompWindow::Geometry server = window->serverGeometry ();1882 CompWindow::Geometry server = window->serverGeometry ();
1884 int bw = server.border () * 2;
1885 CompWindowExtents input;1883 CompWindowExtents input;
18861884
1887 /* Determine frame extents */1885 /* Determine frame extents */
@@ -1892,8 +1890,8 @@
18921890
1893 x = window->input ().left - input.left;1891 x = window->input ().left - input.left;
1894 y = window->input ().top - input.top;1892 y = window->input ().top - input.top;
1895 width = server.width () + input.left + input.right + bw;1893 width = server.widthIncBorders () + input.left + input.right;
1896 height = server.height ()+ input.top + input.bottom + bw;1894 height = server.heightIncBorders ()+ input.top + input.bottom;
18971895
1898 if (window->shaded ())1896 if (window->shaded ())
1899 height = input.top + input.bottom;1897 height = input.top + input.bottom;
19001898
=== modified file 'plugins/move/src/move.cpp'
--- plugins/move/src/move.cpp 2012-04-04 05:26:23 +0000
+++ plugins/move/src/move.cpp 2012-04-04 05:26:23 +0000
@@ -316,10 +316,8 @@
316316
317 wX = w->serverGeometry ().x ();317 wX = w->serverGeometry ().x ();
318 wY = w->serverGeometry ().y ();318 wY = w->serverGeometry ().y ();
319 wWidth = w->serverGeometry ().width () +319 wWidth = w->serverGeometry ().widthIncBorders ();
320 w->serverGeometry ().border () * 2;320 wHeight = w->serverGeometry ().heightIncBorders ();
321 wHeight = w->serverGeometry ().height () +
322 w->serverGeometry ().border () * 2;
323321
324 ms->x += xRoot - lastPointerX;322 ms->x += xRoot - lastPointerX;
325 ms->y += yRoot - lastPointerY;323 ms->y += yRoot - lastPointerY;
326324
=== modified file 'plugins/place/src/constrain-to-workarea/src/constrain-to-workarea.cpp'
--- plugins/place/src/constrain-to-workarea/src/constrain-to-workarea.cpp 2012-01-20 06:13:07 +0000
+++ plugins/place/src/constrain-to-workarea/src/constrain-to-workarea.cpp 2012-04-04 05:26:23 +0000
@@ -61,13 +61,11 @@
61 }61 }
6262
63 left = x - border.left;63 left = x - border.left;
64 right = left + g.width () + (border.left +64 right = left + g.widthIncBorders () + (border.left +
65 border.right +65 border.right);
66 2 * g.border ());
67 top = y - border.top;66 top = y - border.top;
68 bottom = top + g.height () + (border.top +67 bottom = top + g.heightIncBorders () + (border.top +
69 border.bottom +68 border.bottom);
70 2 * g.border ());
7169
72 if ((right - left) > workArea.width ())70 if ((right - left) > workArea.width ())
73 {71 {
7472
=== modified file 'plugins/place/src/place.cpp'
--- plugins/place/src/place.cpp 2012-02-02 17:01:15 +0000
+++ plugins/place/src/place.cpp 2012-04-04 05:26:23 +0000
@@ -343,37 +343,36 @@
343 CompWindow::Geometry geom;343 CompWindow::Geometry geom;
344 int output;344 int output;
345345
346 geom.set (xwc->x, xwc->y, xwc->width, xwc->height,
347 window->serverGeometry ().border ());
348
346 if (clampToViewport)349 if (clampToViewport)
347 {350 {
348 /* left, right, top, bottom target coordinates, clamed to viewport351 /* left, right, top, bottom target coordinates, clamed to viewport
349 * sizes as we don't need to validate movements to other viewports;352 * sizes as we don't need to validate movements to other viewports;
350 * we are only interested in inner-viewport movements */353 * we are only interested in inner-viewport movements */
351354
352 x = xwc->x % screen->width ();355 x = geom.x () % screen->width ();
353 if ((x + xwc->width) < 0)356 if ((geom.x2 ()) < 0)
354 x += screen->width ();357 x += screen->width ();
355358
356 y = xwc->y % screen->height ();359 y = geom.y () % screen->height ();
357 if ((y + xwc->height) < 0)360 if ((geom.y2 ()) < 0)
358 y += screen->height ();361 y += screen->height ();
359 }362 }
360 else363 else
361 {364 {
362 x = xwc->x;365 x = geom.x ();
363 y = xwc->y;366 y = geom.y ();
364 }367 }
365368
366 left = x - window->border ().left;369 left = x - window->border ().left;
367 right = left + xwc->width + (window->border ().left +370 right = left + geom.widthIncBorders () + (window->border ().left +
368 window->border ().right +371 window->border ().right);
369 2 * window->serverGeometry ().border ());
370 top = y - window->border ().top;372 top = y - window->border ().top;
371 bottom = top + xwc->height + (window->border ().top +373 bottom = top + geom.heightIncBorders () + (window->border ().top +
372 window->border ().bottom +374 window->border ().bottom);
373 2 * window->serverGeometry ().border ());
374375
375 geom.set (xwc->x, xwc->y, xwc->width, xwc->height,
376 window->serverGeometry ().border ());
377 output = screen->outputDeviceForGeometry (geom);376 output = screen->outputDeviceForGeometry (geom);
378 workArea = screen->getWorkareaForOutput (output);377 workArea = screen->getWorkareaForOutput (output);
379378
@@ -746,10 +745,8 @@
746{745{
747 if (PlaceScreen::get (screen)->getPointerPosition (pos))746 if (PlaceScreen::get (screen)->getPointerPosition (pos))
748 {747 {
749 unsigned int dx = (window->serverGeometry ().width () / 2) -748 unsigned int dx = (window->serverGeometry ().widthIncBorders () / 2);
750 window->serverGeometry ().border ();749 unsigned int dy = (window->serverGeometry ().heightIncBorders () / 2);
751 unsigned int dy = (window->serverGeometry ().height () / 2) -
752 window->serverGeometry ().border ();
753 pos -= CompPoint (dx, dy);750 pos -= CompPoint (dx, dy);
754 }751 }
755 else752 else
@@ -1200,14 +1197,12 @@
12001197
1201 extents.left = pos.x () - window->border ().left;1198 extents.left = pos.x () - window->border ().left;
1202 extents.top = pos.y () - window->border ().top;1199 extents.top = pos.y () - window->border ().top;
1203 extents.right = extents.left + window->serverWidth () +1200 extents.right = extents.left + window->serverGeometry ().heightIncBorders () +
1204 (window->border ().left +1201 (window->border ().left +
1205 window->border ().right +1202 window->border ().right);
1206 2 * window->serverGeometry ().border ());1203 extents.bottom = extents.top + window->serverGeometry ().widthIncBorders () +
1207 extents.bottom = extents.top + window->serverHeight () +
1208 (window->border ().top +1204 (window->border ().top +
1209 window->border ().bottom +1205 window->border ().bottom);
1210 2 * window->serverGeometry ().border ());
12111206
1212 delta = workArea.right () - extents.right;1207 delta = workArea.right () - extents.right;
1213 if (delta < 0)1208 if (delta < 0)
12141209
=== modified file 'src/screen.cpp'
--- src/screen.cpp 2012-04-04 05:26:23 +0000
+++ src/screen.cpp 2012-04-04 05:26:23 +0000
@@ -4060,8 +4060,8 @@
4060 CompRect rect (gm);4060 CompRect rect (gm);
4061 int offset;4061 int offset;
40624062
4063 rect.setWidth (rect.width () + (gm.border () * 2));4063 rect.setWidth (gm.widthIncBorders ());
4064 rect.setHeight (rect.height () + (gm.border () * 2));4064 rect.setHeight (gm.heightIncBorders ());
40654065
4066 offset = rect.centerX () < 0 ? -1 : 0;4066 offset = rect.centerX () < 0 ? -1 : 0;
4067 viewport.setX (priv->vp.x () + ((rect.centerX () / width ()) + offset) %4067 viewport.setX (priv->vp.x () + ((rect.centerX () / width ()) + offset) %
40684068
=== modified file 'src/window.cpp'
--- src/window.cpp 2012-04-04 05:26:23 +0000
+++ src/window.cpp 2012-04-04 05:26:23 +0000
@@ -918,8 +918,8 @@
918918
919 r.x = -priv->serverGeometry.border ();919 r.x = -priv->serverGeometry.border ();
920 r.y = -priv->serverGeometry.border ();920 r.y = -priv->serverGeometry.border ();
921 r.width = priv->serverGeometry.width () + priv->serverGeometry.border ();921 r.width = priv->serverGeometry.widthIncBorders ();
922 r.height = priv->serverGeometry.height () + priv->serverGeometry.border ();922 r.height = priv->serverGeometry.heightIncBorders ();
923923
924 if (nBounding < 1)924 if (nBounding < 1)
925 {925 {
@@ -1854,9 +1854,9 @@
1854 * windows since we didn't resize them1854 * windows since we didn't resize them
1855 * on configureXWindow */1855 * on configureXWindow */
1856 if (priv->shaded)1856 if (priv->shaded)
1857 height = priv->serverGeometry.height () - priv->serverGeometry.border () * 2 - priv->serverInput.top - priv->serverInput.bottom;1857 height = priv->serverGeometry.heightIncBorders () - priv->serverInput.top - priv->serverInput.bottom;
1858 else1858 else
1859 height = ce->height - priv->serverGeometry.border () * 2 - priv->serverInput.top - priv->serverInput.bottom;1859 height = ce->height + priv->serverGeometry.border () * 2 - priv->serverInput.top - priv->serverInput.bottom;
18601860
1861 /* set the frame geometry */1861 /* set the frame geometry */
1862 priv->frameGeometry.set (ce->x, ce->y, ce->width, ce->height, ce->border_width);1862 priv->frameGeometry.set (ce->x, ce->y, ce->width, ce->height, ce->border_width);
@@ -4308,8 +4308,8 @@
4308PrivateWindow::ensureWindowVisibility ()4308PrivateWindow::ensureWindowVisibility ()
4309{4309{
4310 int x1, y1, x2, y2;4310 int x1, y1, x2, y2;
4311 int width = serverGeometry.width () + serverGeometry.border () * 2;4311 int width = serverGeometry.widthIncBorders ();
4312 int height = serverGeometry.height () + serverGeometry.border () * 2;4312 int height = serverGeometry.heightIncBorders ();
4313 int dx = 0;4313 int dx = 0;
4314 int dy = 0;4314 int dy = 0;
43154315
@@ -6819,10 +6819,10 @@
6819 /* Wait for the reparent to finish */6819 /* Wait for the reparent to finish */
6820 XSync (dpy, false);6820 XSync (dpy, false);
68216821
6822 xwc.x = serverGeometry.x () - serverGeometry.border ();6822 xwc.x = serverGeometry.xMinusBorder ();
6823 xwc.y = serverGeometry.y () - serverGeometry.border ();6823 xwc.y = serverGeometry.yMinusBorder ();
6824 xwc.width = serverGeometry.width () + serverGeometry.border () * 2;6824 xwc.width = serverGeometry.widthIncBorders ();
6825 xwc.height = serverGeometry.height () + serverGeometry.border () * 2;6825 xwc.height = serverGeometry.heightIncBorders ();
68266826
6827 XConfigureWindow (dpy, serverFrame, CWX | CWY | CWWidth | CWHeight, &xwc);6827 XConfigureWindow (dpy, serverFrame, CWX | CWY | CWWidth | CWHeight, &xwc);
68286828
68296829
=== modified file 'src/window/geometry/include/core/windowgeometry.h'
--- src/window/geometry/include/core/windowgeometry.h 2012-01-19 20:08:32 +0000
+++ src/window/geometry/include/core/windowgeometry.h 2012-04-04 05:26:23 +0000
@@ -64,6 +64,12 @@
64 compiz::window::Geometry change (const compiz::window::Geometry &g, unsigned int mask) const;64 compiz::window::Geometry change (const compiz::window::Geometry &g, unsigned int mask) const;
65 void applyChange (const compiz::window::Geometry &g, unsigned int mask);65 void applyChange (const compiz::window::Geometry &g, unsigned int mask);
6666
67 int xMinusBorder () const { return x () - mBorder; }
68 int yMinusBorder () const { return y () - mBorder; }
69
70 unsigned int widthIncBorders () const { return width () + mBorder * 2; }
71 unsigned int heightIncBorders () const { return height () + mBorder * 2; }
72
67private:73private:
68 int mBorder;74 int mBorder;
69};75};
7076
=== modified file 'src/window/geometry/tests/window-geometry/src/test-window-geometry.cpp'
--- src/window/geometry/tests/window-geometry/src/test-window-geometry.cpp 2012-03-30 16:30:13 +0000
+++ src/window/geometry/tests/window-geometry/src/test-window-geometry.cpp 2012-04-04 05:26:23 +0000
@@ -87,3 +87,13 @@
87 EXPECT_EQ (rg, compiz::window::Geometry (49, 99, 199, 299, 5));87 EXPECT_EQ (rg, compiz::window::Geometry (49, 99, 199, 299, 5));
88 EXPECT_EQ (mask, CHANGE_X | CHANGE_Y | CHANGE_WIDTH | CHANGE_HEIGHT);88 EXPECT_EQ (mask, CHANGE_X | CHANGE_Y | CHANGE_WIDTH | CHANGE_HEIGHT);
89}89}
90
91TEST_F(CompWindowGeometryTestGeometry, TestBorders)
92{
93 compiz::window::Geometry g (1, 1, 1, 1, 1);
94
95 EXPECT_EQ (g.xMinusBorder (), 0);
96 EXPECT_EQ (g.yMinusBorder (), 0);
97 EXPECT_EQ (g.widthIncBorders (), 3);
98 EXPECT_EQ (g.heightIncBorders (), 3);
99}
90100
=== modified file 'src/windowgeometry.cpp'
--- src/windowgeometry.cpp 2012-04-04 05:26:23 +0000
+++ src/windowgeometry.cpp 2012-04-04 05:26:23 +0000
@@ -102,42 +102,38 @@
102int102int
103CompWindow::serverWidth () const103CompWindow::serverWidth () const
104{104{
105 return priv->serverGeometry.width () +105 return priv->serverGeometry.widthIncBorders ();
106 2 * priv->serverGeometry.border ();
107}106}
108107
109int108int
110CompWindow::serverHeight () const109CompWindow::serverHeight () const
111{110{
112 return priv->serverGeometry.height () +111 return priv->serverGeometry.heightIncBorders ();
113 2 * priv->serverGeometry.border ();
114}112}
115113
116const CompSize114const CompSize
117CompWindow::serverSize () const115CompWindow::serverSize () const
118{116{
119 return CompSize (priv->serverGeometry.width () +117 return CompSize (priv->serverGeometry.widthIncBorders (),
120 2 * priv->serverGeometry.border (),118 priv->serverGeometry.heightIncBorders ());
121 priv->serverGeometry.height () +
122 2 * priv->serverGeometry.border ());
123}119}
124120
125CompRect121CompRect
126CompWindow::borderRect () const122CompWindow::borderRect () const
127{123{
128 return CompRect (priv->geometry.x () - priv->geometry.border () - priv->border.left,124 return CompRect (priv->geometry.xMinusBorder () - priv->border.left,
129 priv->geometry.y () - priv->geometry.border () - priv->border.top,125 priv->geometry.yMinusBorder () - priv->border.top,
130 priv->geometry.width () + priv->geometry.border () * 2 +126 priv->geometry.widthIncBorders () +
131 priv->border.left + priv->border.right,127 priv->border.left + priv->border.right,
132 priv->geometry.height () + priv->geometry.border () * 2 +128 priv->geometry.heightIncBorders () +
133 priv->border.top + priv->border.bottom);129 priv->border.top + priv->border.bottom);
134}130}
135131
136CompRect132CompRect
137CompWindow::serverBorderRect () const133CompWindow::serverBorderRect () const
138{134{
139 return CompRect (priv->serverGeometry.x () - priv->geometry.border () - priv->border.left,135 return CompRect (priv->serverGeometry.xMinusBorder () - priv->border.left,
140 priv->serverGeometry.y () - priv->geometry.border () - priv->border.top,136 priv->serverGeometry.yMinusBorder () - priv->border.top,
141 priv->serverGeometry.width () + priv->geometry.border () * 2 +137 priv->serverGeometry.width () + priv->geometry.border () * 2 +
142 priv->border.left + priv->border.right,138 priv->border.left + priv->border.right,
143 priv->serverGeometry.height () + priv->geometry.border () * 2 +139 priv->serverGeometry.height () + priv->geometry.border () * 2 +
@@ -147,8 +143,8 @@
147CompRect143CompRect
148CompWindow::inputRect () const144CompWindow::inputRect () const
149{145{
150 return CompRect (priv->geometry.x () - priv->geometry.border () - priv->serverInput.left,146 return CompRect (priv->geometry.xMinusBorder () - priv->serverInput.left,
151 priv->geometry.y () - priv->geometry.border () - priv->serverInput.top,147 priv->geometry.yMinusBorder () - priv->serverInput.top,
152 priv->geometry.width () + priv->geometry.border () * 2 +148 priv->geometry.width () + priv->geometry.border () * 2 +
153 priv->serverInput.left + priv->serverInput.right,149 priv->serverInput.left + priv->serverInput.right,
154 priv->geometry.height () +priv->geometry.border () * 2 +150 priv->geometry.height () +priv->geometry.border () * 2 +
@@ -158,32 +154,32 @@
158CompRect154CompRect
159CompWindow::serverInputRect () const155CompWindow::serverInputRect () const
160{156{
161 return CompRect (priv->serverGeometry.x () - priv->serverGeometry.border () - priv->serverInput.left,157 return CompRect (priv->serverGeometry.xMinusBorder () - priv->serverInput.left,
162 priv->serverGeometry.y () - priv->serverGeometry.border () - priv->serverInput.top,158 priv->serverGeometry.yMinusBorder () - priv->serverInput.top,
163 priv->serverGeometry.width () + priv->serverGeometry.border () * 2 +159 priv->serverGeometry.widthIncBorders () +
164 priv->serverInput.left + priv->serverInput.right,160 priv->serverInput.left + priv->serverInput.right,
165 priv->serverGeometry.height () + priv->serverGeometry.border () * 2 +161 priv->serverGeometry.heightIncBorders () +
166 priv->serverInput.top + priv->serverInput.bottom);162 priv->serverInput.top + priv->serverInput.bottom);
167}163}
168164
169CompRect165CompRect
170CompWindow::outputRect () const166CompWindow::outputRect () const
171{167{
172 return CompRect (priv->geometry.x () - priv->serverGeometry.border ()- priv->output.left,168 return CompRect (priv->geometry.xMinusBorder ()- priv->output.left,
173 priv->geometry.y () - priv->serverGeometry.border () - priv->output.top,169 priv->geometry.yMinusBorder () - priv->output.top,
174 priv->geometry.width () + priv->serverGeometry.border () * 2 +170 priv->geometry.widthIncBorders () +
175 priv->output.left + priv->output.right,171 priv->output.left + priv->output.right,
176 priv->geometry.height () + priv->serverGeometry.border () * 2 +172 priv->geometry.heightIncBorders () +
177 priv->output.top + priv->output.bottom);173 priv->output.top + priv->output.bottom);
178}174}
179175
180CompRect176CompRect
181CompWindow::serverOutputRect () const177CompWindow::serverOutputRect () const
182{178{
183 return CompRect (priv->serverGeometry.x () - priv->serverGeometry.border () - priv->output.left,179 return CompRect (priv->serverGeometry.xMinusBorder () - priv->output.left,
184 priv->serverGeometry.y () - priv->serverGeometry.border () - priv->output.top,180 priv->serverGeometry.yMinusBorder () - priv->output.top,
185 priv->serverGeometry.width () + priv->serverGeometry.border () * 2 +181 priv->serverGeometry.widthIncBorders () +
186 priv->output.left + priv->output.right,182 priv->output.left + priv->output.right,
187 priv->serverGeometry.height () + priv->serverGeometry.border () * 2 +183 priv->serverGeometry.heightIncBorders () +
188 priv->output.top + priv->output.bottom);184 priv->output.top + priv->output.bottom);
189}185}

Subscribers

People subscribed via source and target branches