Merge lp:~smspillaz/compiz-grid-plugin/oneiric.maybe_fix_corruption_placement into lp:compiz-grid-plugin
- oneiric.maybe_fix_corruption_placement
- Merge into 0.9.5
Proposed by
Sam Spilsbury
Status: | Superseded |
---|---|
Proposed branch: | lp:~smspillaz/compiz-grid-plugin/oneiric.maybe_fix_corruption_placement |
Merge into: | lp:compiz-grid-plugin |
Diff against target: |
739 lines (+313/-72) (has conflicts) 4 files modified
CMakeLists.txt (+2/-0) grid.xml.in (+14/-14) src/grid.cpp (+263/-44) src/grid.h (+34/-14) Text conflict in src/grid.cpp Text conflict in src/grid.h |
To merge this branch: | bzr merge lp:~smspillaz/compiz-grid-plugin/oneiric.maybe_fix_corruption_placement |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Compiz Maintainers | Pending | ||
Review via email: mp+77848@code.launchpad.net |
This proposal has been superseded by a proposal from 2011-10-03.
Commit message
Description of the change
To post a comment you must log in.
Unmerged revisions
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'CMakeLists.txt' | |||
2 | --- CMakeLists.txt 2009-12-17 12:22:47 +0000 | |||
3 | +++ CMakeLists.txt 2011-10-03 00:29:23 +0000 | |||
4 | @@ -2,4 +2,6 @@ | |||
5 | 2 | 2 | ||
6 | 3 | include (CompizPlugin) | 3 | include (CompizPlugin) |
7 | 4 | 4 | ||
8 | 5 | set (CMAKE_CXX_FLAGS -std=c++0x) | ||
9 | 6 | |||
10 | 5 | compiz_plugin(grid PLUGINDEPS composite opengl) | 7 | compiz_plugin(grid PLUGINDEPS composite opengl) |
11 | 6 | 8 | ||
12 | === modified file 'grid.xml.in' | |||
13 | --- grid.xml.in 2010-09-28 22:30:57 +0000 | |||
14 | +++ grid.xml.in 2011-10-03 00:29:23 +0000 | |||
15 | @@ -84,7 +84,7 @@ | |||
16 | 84 | <option name="top_left_corner_action" type="int"> | 84 | <option name="top_left_corner_action" type="int"> |
17 | 85 | <_short>Upper Left Corner</_short> | 85 | <_short>Upper Left Corner</_short> |
18 | 86 | <_long>Action to be performed when window is dropped on the top left corner</_long> | 86 | <_long>Action to be performed when window is dropped on the top left corner</_long> |
20 | 87 | <default>7</default> | 87 | <default>4</default> |
21 | 88 | <min>0</min> | 88 | <min>0</min> |
22 | 89 | <max>10</max> | 89 | <max>10</max> |
23 | 90 | <desc> | 90 | <desc> |
24 | @@ -186,7 +186,7 @@ | |||
25 | 186 | <option name="top_right_corner_action" type="int"> | 186 | <option name="top_right_corner_action" type="int"> |
26 | 187 | <_short>Upper Right Corner</_short> | 187 | <_short>Upper Right Corner</_short> |
27 | 188 | <_long>Action to be performed when window is dropped on the top right corner</_long> | 188 | <_long>Action to be performed when window is dropped on the top right corner</_long> |
29 | 189 | <default>9</default> | 189 | <default>6</default> |
30 | 190 | <min>0</min> | 190 | <min>0</min> |
31 | 191 | <max>10</max> | 191 | <max>10</max> |
32 | 192 | <desc> | 192 | <desc> |
33 | @@ -339,7 +339,7 @@ | |||
34 | 339 | <option name="bottom_left_corner_action" type="int"> | 339 | <option name="bottom_left_corner_action" type="int"> |
35 | 340 | <_short>Bottom Left Corner</_short> | 340 | <_short>Bottom Left Corner</_short> |
36 | 341 | <_long>Action to be performed when window is dropped on the bottom left corner</_long> | 341 | <_long>Action to be performed when window is dropped on the bottom left corner</_long> |
38 | 342 | <default>1</default> | 342 | <default>4</default> |
39 | 343 | <min>0</min> | 343 | <min>0</min> |
40 | 344 | <max>10</max> | 344 | <max>10</max> |
41 | 345 | <desc> | 345 | <desc> |
42 | @@ -390,7 +390,7 @@ | |||
43 | 390 | <option name="bottom_edge_action" type="int"> | 390 | <option name="bottom_edge_action" type="int"> |
44 | 391 | <_short>Bottom Edge</_short> | 391 | <_short>Bottom Edge</_short> |
45 | 392 | <_long>Action to be performed when window is dropped on the bottom edge</_long> | 392 | <_long>Action to be performed when window is dropped on the bottom edge</_long> |
47 | 393 | <default>2</default> | 393 | <default>0</default> |
48 | 394 | <min>0</min> | 394 | <min>0</min> |
49 | 395 | <max>10</max> | 395 | <max>10</max> |
50 | 396 | <desc> | 396 | <desc> |
51 | @@ -441,7 +441,7 @@ | |||
52 | 441 | <option name="bottom_right_corner_action" type="int"> | 441 | <option name="bottom_right_corner_action" type="int"> |
53 | 442 | <_short>Bottom Right Corner</_short> | 442 | <_short>Bottom Right Corner</_short> |
54 | 443 | <_long>Action to be performed when window is dropped on the bottom right corner</_long> | 443 | <_long>Action to be performed when window is dropped on the bottom right corner</_long> |
56 | 444 | <default>3</default> | 444 | <default>6</default> |
57 | 445 | <min>0</min> | 445 | <min>0</min> |
58 | 446 | <max>10</max> | 446 | <max>10</max> |
59 | 447 | <desc> | 447 | <desc> |
60 | @@ -505,21 +505,21 @@ | |||
61 | 505 | <option name="left_edge_threshold" type="int"> | 505 | <option name="left_edge_threshold" type="int"> |
62 | 506 | <_short>Left Edge</_short> | 506 | <_short>Left Edge</_short> |
63 | 507 | <_long>Maximum number of pixels from the left edge a window can be dropped</_long> | 507 | <_long>Maximum number of pixels from the left edge a window can be dropped</_long> |
65 | 508 | <default>5</default> | 508 | <default>15</default> |
66 | 509 | <min>0</min> | 509 | <min>0</min> |
67 | 510 | <max>500</max> | 510 | <max>500</max> |
68 | 511 | </option> | 511 | </option> |
69 | 512 | <option name="right_edge_threshold" type="int"> | 512 | <option name="right_edge_threshold" type="int"> |
70 | 513 | <_short>Right Edge</_short> | 513 | <_short>Right Edge</_short> |
71 | 514 | <_long>Maximum number of pixels from the right edge a window can be dropped</_long> | 514 | <_long>Maximum number of pixels from the right edge a window can be dropped</_long> |
73 | 515 | <default>5</default> | 515 | <default>15</default> |
74 | 516 | <min>0</min> | 516 | <min>0</min> |
75 | 517 | <max>500</max> | 517 | <max>500</max> |
76 | 518 | </option> | 518 | </option> |
77 | 519 | <option name="top_edge_threshold" type="int"> | 519 | <option name="top_edge_threshold" type="int"> |
78 | 520 | <_short>Top Edge</_short> | 520 | <_short>Top Edge</_short> |
79 | 521 | <_long>Maximum number of pixels from the top edge a window can be dropped</_long> | 521 | <_long>Maximum number of pixels from the top edge a window can be dropped</_long> |
81 | 522 | <default>5</default> | 522 | <default>20</default> |
82 | 523 | <min>0</min> | 523 | <min>0</min> |
83 | 524 | <max>500</max> | 524 | <max>500</max> |
84 | 525 | </option> | 525 | </option> |
85 | @@ -543,9 +543,9 @@ | |||
86 | 543 | <_short>Outline Color</_short> | 543 | <_short>Outline Color</_short> |
87 | 544 | <_long>Color of the resize indicator outline</_long> | 544 | <_long>Color of the resize indicator outline</_long> |
88 | 545 | <default> | 545 | <default> |
92 | 546 | <red>0x2f2f</red> | 546 | <red>0xfbfb</red> |
93 | 547 | <green>0x2f2f</green> | 547 | <green>0x8b8b</green> |
94 | 548 | <blue>0x4f4f</blue> | 548 | <blue>0x0</blue> |
95 | 549 | <alpha>0x9f9f</alpha> | 549 | <alpha>0x9f9f</alpha> |
96 | 550 | </default> | 550 | </default> |
97 | 551 | </option> | 551 | </option> |
98 | @@ -553,9 +553,9 @@ | |||
99 | 553 | <_short>Fill Color</_short> | 553 | <_short>Fill Color</_short> |
100 | 554 | <_long>Fill color of the resize indicator</_long> | 554 | <_long>Fill color of the resize indicator</_long> |
101 | 555 | <default> | 555 | <default> |
105 | 556 | <red>0x2f2f</red> | 556 | <red>0xfbfb</red> |
106 | 557 | <green>0x2f2f</green> | 557 | <green>0x8b8b</green> |
107 | 558 | <blue>0x4f4f</blue> | 558 | <blue>0x0</blue> |
108 | 559 | <alpha>0x4f4f</alpha> | 559 | <alpha>0x4f4f</alpha> |
109 | 560 | </default> | 560 | </default> |
110 | 561 | </option> | 561 | </option> |
111 | 562 | 562 | ||
112 | === modified file 'src/grid.cpp' | |||
113 | --- src/grid.cpp 2011-09-29 15:54:11 +0000 | |||
114 | +++ src/grid.cpp 2011-10-03 00:29:23 +0000 | |||
115 | @@ -24,24 +24,26 @@ | |||
116 | 24 | 24 | ||
117 | 25 | #include "grid.h" | 25 | #include "grid.h" |
118 | 26 | 26 | ||
120 | 27 | static const GridProps gridProps[] = | 27 | using namespace GridWindowType; |
121 | 28 | |||
122 | 29 | static std::map <unsigned int, GridProps> gridProps; | ||
123 | 30 | |||
124 | 31 | void | ||
125 | 32 | GridScreen::handleCompizEvent(const char* plugin, | ||
126 | 33 | const char* event, | ||
127 | 34 | CompOption::Vector& o) | ||
128 | 28 | { | 35 | { |
145 | 29 | {0,1, 1,1}, | 36 | if (strcmp(event, "start_viewport_switch") == 0) |
146 | 30 | 37 | { | |
147 | 31 | {0,1, 2,2}, | 38 | mSwitchingVp = true; |
148 | 32 | {0,1, 1,2}, | 39 | } |
149 | 33 | {1,1, 2,2}, | 40 | else if (strcmp(event, "end_viewport_switch") == 0) |
150 | 34 | 41 | { | |
151 | 35 | {0,0, 2,1}, | 42 | mSwitchingVp = false; |
152 | 36 | {0,0, 1,1}, | 43 | } |
153 | 37 | {1,0, 2,1}, | 44 | |
154 | 38 | 45 | screen->handleCompizEvent(plugin, event, o); | |
155 | 39 | {0,0, 2,2}, | 46 | } |
140 | 40 | {0,0, 1,2}, | ||
141 | 41 | {1,0, 2,2}, | ||
142 | 42 | |||
143 | 43 | {0,0, 1,1}, | ||
144 | 44 | }; | ||
156 | 45 | 47 | ||
157 | 46 | CompRect | 48 | CompRect |
158 | 47 | GridScreen::slotToRect (CompWindow *w, | 49 | GridScreen::slotToRect (CompWindow *w, |
159 | @@ -83,7 +85,7 @@ | |||
160 | 83 | void | 85 | void |
161 | 84 | GridScreen::getPaintRectangle (CompRect &cRect) | 86 | GridScreen::getPaintRectangle (CompRect &cRect) |
162 | 85 | { | 87 | { |
164 | 86 | if (edgeToGridType () != GridUnknown && optionGetDrawIndicator ()) | 88 | if (typeToMask (edgeToGridType ()) != GridUnknown && optionGetDrawIndicator ()) |
165 | 87 | cRect = desiredSlot; | 89 | cRect = desiredSlot; |
166 | 88 | else | 90 | else |
167 | 89 | cRect.setGeometry (0, 0, 0, 0); | 91 | cRect.setGeometry (0, 0, 0, 0); |
168 | @@ -118,8 +120,14 @@ | |||
169 | 118 | GridScreen::initiateCommon (CompAction *action, | 120 | GridScreen::initiateCommon (CompAction *action, |
170 | 119 | CompAction::State state, | 121 | CompAction::State state, |
171 | 120 | CompOption::Vector &option, | 122 | CompOption::Vector &option, |
172 | 123 | <<<<<<< TREE | ||
173 | 121 | GridType where, | 124 | GridType where, |
174 | 122 | bool resize) | 125 | bool resize) |
175 | 126 | ======= | ||
176 | 127 | unsigned int where, | ||
177 | 128 | bool resize, | ||
178 | 129 | bool key) | ||
179 | 130 | >>>>>>> MERGE-SOURCE | ||
180 | 123 | { | 131 | { |
181 | 124 | Window xid; | 132 | Window xid; |
182 | 125 | CompWindow *cw = 0; | 133 | CompWindow *cw = 0; |
183 | @@ -127,16 +135,27 @@ | |||
184 | 127 | xid = CompOption::getIntOptionNamed (option, "window"); | 135 | xid = CompOption::getIntOptionNamed (option, "window"); |
185 | 128 | cw = screen->findWindow (xid); | 136 | cw = screen->findWindow (xid); |
186 | 129 | 137 | ||
187 | 130 | if (where == GridUnknown || screen->otherGrabExist ("move", NULL)) | ||
188 | 131 | return false; | ||
189 | 132 | |||
190 | 133 | if (cw) | 138 | if (cw) |
191 | 134 | { | 139 | { |
192 | 135 | XWindowChanges xwc; | 140 | XWindowChanges xwc; |
193 | 141 | bool maximizeH = where & (GridBottom | GridTop | GridMaximize); | ||
194 | 142 | bool maximizeV = where & (GridLeft | GridRight | GridMaximize); | ||
195 | 143 | |||
196 | 144 | if (!(cw->actions () & CompWindowActionResizeMask)) | ||
197 | 145 | return false; | ||
198 | 146 | |||
199 | 147 | if (maximizeH && !(cw->actions () & CompWindowActionMaximizeHorzMask)) | ||
200 | 148 | return false; | ||
201 | 149 | |||
202 | 150 | if (maximizeV && !(cw->actions () & CompWindowActionMaximizeVertMask)) | ||
203 | 151 | return false; | ||
204 | 152 | |||
205 | 153 | if (where & GridUnknown) | ||
206 | 154 | return false; | ||
207 | 136 | 155 | ||
208 | 137 | GRID_WINDOW (cw); | 156 | GRID_WINDOW (cw); |
209 | 138 | 157 | ||
211 | 139 | if (gw->lastTarget != where) | 158 | if (gw->lastTarget & ~(where)) |
212 | 140 | gw->resizeCount = 0; | 159 | gw->resizeCount = 0; |
213 | 141 | 160 | ||
214 | 142 | props = gridProps[where]; | 161 | props = gridProps[where]; |
215 | @@ -164,7 +183,7 @@ | |||
216 | 164 | cw->maximize (0); | 183 | cw->maximize (0); |
217 | 165 | } | 184 | } |
218 | 166 | 185 | ||
220 | 167 | if (where == GridMaximize && resize) | 186 | if ((where & GridMaximize) && resize) |
221 | 168 | { | 187 | { |
222 | 169 | /* move the window to the correct output */ | 188 | /* move the window to the correct output */ |
223 | 170 | if (cw == mGrabWindow) | 189 | if (cw == mGrabWindow) |
224 | @@ -198,7 +217,13 @@ | |||
225 | 198 | desiredSlot.setWidth (workarea.width () / props.numCellsX); | 217 | desiredSlot.setWidth (workarea.width () / props.numCellsX); |
226 | 199 | 218 | ||
227 | 200 | /* Adjust for constraints and decorations */ | 219 | /* Adjust for constraints and decorations */ |
229 | 201 | desiredRect = constrainSize (cw, desiredSlot); | 220 | if (where & ~(GridMaximize | GridLeft | GridRight)) |
230 | 221 | { | ||
231 | 222 | desiredRect = constrainSize (cw, desiredSlot); | ||
232 | 223 | } | ||
233 | 224 | else | ||
234 | 225 | desiredRect = slotToRect (cw, desiredSlot); | ||
235 | 226 | |||
236 | 202 | /* Get current rect not including decorations */ | 227 | /* Get current rect not including decorations */ |
237 | 203 | currentRect.setGeometry (cw->serverX (), cw->serverY (), | 228 | currentRect.setGeometry (cw->serverX (), cw->serverY (), |
238 | 204 | cw->serverWidth (), | 229 | cw->serverWidth (), |
239 | @@ -206,7 +231,7 @@ | |||
240 | 206 | 231 | ||
241 | 207 | if (desiredRect.y () == currentRect.y () && | 232 | if (desiredRect.y () == currentRect.y () && |
242 | 208 | desiredRect.height () == currentRect.height () && | 233 | desiredRect.height () == currentRect.height () && |
244 | 209 | where != GridMaximize && gw->lastTarget == where) | 234 | where & ~(GridMaximize | GridLeft | GridRight) && gw->lastTarget & where) |
245 | 210 | { | 235 | { |
246 | 211 | int slotWidth25 = workarea.width () / 4; | 236 | int slotWidth25 = workarea.width () / 4; |
247 | 212 | int slotWidth33 = (workarea.width () / 3) + cw->border ().left; | 237 | int slotWidth33 = (workarea.width () / 3) + cw->border ().left; |
248 | @@ -319,12 +344,71 @@ | |||
249 | 319 | /* TODO: animate move+resize */ | 344 | /* TODO: animate move+resize */ |
250 | 320 | if (resize) | 345 | if (resize) |
251 | 321 | { | 346 | { |
252 | 347 | <<<<<<< TREE | ||
253 | 322 | cw->configureXWindow (CWX | CWY | CWWidth | CWHeight, &xwc); | 348 | cw->configureXWindow (CWX | CWY | CWWidth | CWHeight, &xwc); |
254 | 323 | gw->isGridResized = true; | 349 | gw->isGridResized = true; |
255 | 324 | gw->isGridMaximized = false; | 350 | gw->isGridMaximized = false; |
256 | 325 | for (unsigned int i = 0; i < animations.size (); i++) | 351 | for (unsigned int i = 0; i < animations.size (); i++) |
257 | 326 | animations.at (i).fadingOut = true; | 352 | animations.at (i).fadingOut = true; |
258 | 327 | gw->lastTarget = where; | 353 | gw->lastTarget = where; |
259 | 354 | ======= | ||
260 | 355 | unsigned int valueMask = CWX | CWY | CWWidth | CWHeight; | ||
261 | 356 | gw->lastTarget = where; | ||
262 | 357 | gw->currentSize = CompRect (wc.x, wc.y, wc.width, wc.height); | ||
263 | 358 | CompWindowExtents lastBorder = gw->window->border (); | ||
264 | 359 | |||
265 | 360 | gw->sizeHintsFlags = 0; | ||
266 | 361 | |||
267 | 362 | /* Special case for left and right, actually vertically maximize | ||
268 | 363 | * the window */ | ||
269 | 364 | if (where & GridLeft || where & GridRight) | ||
270 | 365 | { | ||
271 | 366 | /* First restore the window to its original size */ | ||
272 | 367 | XWindowChanges rwc; | ||
273 | 368 | |||
274 | 369 | rwc.x = gw->originalSize.x (); | ||
275 | 370 | rwc.y = gw->originalSize.y (); | ||
276 | 371 | rwc.width = gw->originalSize.width (); | ||
277 | 372 | rwc.height = gw->originalSize.height (); | ||
278 | 373 | |||
279 | 374 | cw->configureXWindow (CWX | CWY | CWWidth | CWHeight, &rwc); | ||
280 | 375 | |||
281 | 376 | gw->isGridMaximized = true; | ||
282 | 377 | gw->isGridResized = false; | ||
283 | 378 | |||
284 | 379 | /* Maximize the window */ | ||
285 | 380 | cw->maximize (CompWindowStateMaximizedVertMask); | ||
286 | 381 | |||
287 | 382 | /* Be evil */ | ||
288 | 383 | if (cw->sizeHints ().flags & PResizeInc) | ||
289 | 384 | { | ||
290 | 385 | gw->sizeHintsFlags |= PResizeInc; | ||
291 | 386 | gw->window->sizeHints ().flags &= ~(PResizeInc); | ||
292 | 387 | } | ||
293 | 388 | } | ||
294 | 389 | else | ||
295 | 390 | { | ||
296 | 391 | gw->isGridResized = true; | ||
297 | 392 | gw->isGridMaximized = false; | ||
298 | 393 | } | ||
299 | 394 | |||
300 | 395 | int dw = (lastBorder.left + lastBorder.right) - | ||
301 | 396 | (gw->window->border ().left + | ||
302 | 397 | gw->window->border ().right); | ||
303 | 398 | |||
304 | 399 | int dh = (lastBorder.top + lastBorder.bottom) - | ||
305 | 400 | (gw->window->border ().top + | ||
306 | 401 | gw->window->border ().bottom); | ||
307 | 402 | |||
308 | 403 | xwc.width += dw; | ||
309 | 404 | xwc.height += dh; | ||
310 | 405 | |||
311 | 406 | /* Make window the size that we want */ | ||
312 | 407 | cw->configureXWindow (valueMask, &xwc); | ||
313 | 408 | |||
314 | 409 | for (unsigned int i = 0; i < animations.size (); i++) | ||
315 | 410 | animations.at (i).fadingOut = true; | ||
316 | 411 | >>>>>>> MERGE-SOURCE | ||
317 | 328 | } | 412 | } |
318 | 329 | 413 | ||
319 | 330 | /* This centers a window if it could not be resized to the desired | 414 | /* This centers a window if it could not be resized to the desired |
320 | @@ -452,39 +536,72 @@ | |||
321 | 452 | return status; | 536 | return status; |
322 | 453 | } | 537 | } |
323 | 454 | 538 | ||
325 | 455 | GridType | 539 | unsigned int |
326 | 540 | GridScreen::typeToMask (int t) | ||
327 | 541 | { | ||
328 | 542 | typedef struct { | ||
329 | 543 | unsigned int mask; | ||
330 | 544 | int type; | ||
331 | 545 | } GridTypeMask; | ||
332 | 546 | |||
333 | 547 | std::vector <GridTypeMask> type = | ||
334 | 548 | { | ||
335 | 549 | { GridWindowType::GridUnknown, 0 }, | ||
336 | 550 | { GridWindowType::GridBottomLeft, 1 }, | ||
337 | 551 | { GridWindowType::GridBottom, 2 }, | ||
338 | 552 | { GridWindowType::GridBottomRight, 3 }, | ||
339 | 553 | { GridWindowType::GridLeft, 4 }, | ||
340 | 554 | { GridWindowType::GridCenter, 5 }, | ||
341 | 555 | { GridWindowType::GridRight, 6 }, | ||
342 | 556 | { GridWindowType::GridTopLeft, 7 }, | ||
343 | 557 | { GridWindowType::GridTop, 8 }, | ||
344 | 558 | { GridWindowType::GridTopRight, 9 }, | ||
345 | 559 | { GridWindowType::GridMaximize, 10 } | ||
346 | 560 | }; | ||
347 | 561 | |||
348 | 562 | for (unsigned int i = 0; i < type.size (); i++) | ||
349 | 563 | { | ||
350 | 564 | GridTypeMask &tm = type[i]; | ||
351 | 565 | if (tm.type == t) | ||
352 | 566 | return tm.mask; | ||
353 | 567 | } | ||
354 | 568 | |||
355 | 569 | return GridWindowType::GridUnknown; | ||
356 | 570 | } | ||
357 | 571 | |||
358 | 572 | int | ||
359 | 456 | GridScreen::edgeToGridType () | 573 | GridScreen::edgeToGridType () |
360 | 457 | { | 574 | { |
362 | 458 | GridType ret; | 575 | int ret; |
363 | 459 | 576 | ||
364 | 460 | switch (edge) { | 577 | switch (edge) { |
365 | 461 | case Left: | 578 | case Left: |
367 | 462 | ret = (GridType) optionGetLeftEdgeAction (); | 579 | ret = (int) optionGetLeftEdgeAction (); |
368 | 463 | break; | 580 | break; |
369 | 464 | case Right: | 581 | case Right: |
371 | 465 | ret = (GridType) optionGetRightEdgeAction (); | 582 | ret = (int) optionGetRightEdgeAction (); |
372 | 466 | break; | 583 | break; |
373 | 467 | case Top: | 584 | case Top: |
375 | 468 | ret = (GridType) optionGetTopEdgeAction (); | 585 | ret = (int) optionGetTopEdgeAction (); |
376 | 469 | break; | 586 | break; |
377 | 470 | case Bottom: | 587 | case Bottom: |
379 | 471 | ret = (GridType) optionGetBottomEdgeAction (); | 588 | ret = (int) optionGetBottomEdgeAction (); |
380 | 472 | break; | 589 | break; |
381 | 473 | case TopLeft: | 590 | case TopLeft: |
383 | 474 | ret = (GridType) optionGetTopLeftCornerAction (); | 591 | ret = (int) optionGetTopLeftCornerAction (); |
384 | 475 | break; | 592 | break; |
385 | 476 | case TopRight: | 593 | case TopRight: |
387 | 477 | ret = (GridType) optionGetTopRightCornerAction (); | 594 | ret = (int) optionGetTopRightCornerAction (); |
388 | 478 | break; | 595 | break; |
389 | 479 | case BottomLeft: | 596 | case BottomLeft: |
391 | 480 | ret = (GridType) optionGetBottomLeftCornerAction (); | 597 | ret = (int) optionGetBottomLeftCornerAction (); |
392 | 481 | break; | 598 | break; |
393 | 482 | case BottomRight: | 599 | case BottomRight: |
395 | 483 | ret = (GridType) optionGetBottomRightCornerAction (); | 600 | ret = (int) optionGetBottomRightCornerAction (); |
396 | 484 | break; | 601 | break; |
397 | 485 | case NoEdge: | 602 | case NoEdge: |
398 | 486 | default: | 603 | default: |
400 | 487 | ret = GridUnknown; | 604 | ret = -1; |
401 | 488 | break; | 605 | break; |
402 | 489 | } | 606 | } |
403 | 490 | 607 | ||
404 | @@ -548,7 +665,11 @@ | |||
405 | 548 | if (cScreen) | 665 | if (cScreen) |
406 | 549 | cScreen->damageRegion (desiredSlot); | 666 | cScreen->damageRegion (desiredSlot); |
407 | 550 | 667 | ||
408 | 668 | <<<<<<< TREE | ||
409 | 551 | initiateCommon (0, 0, o, edgeToGridType (), false); | 669 | initiateCommon (0, 0, o, edgeToGridType (), false); |
410 | 670 | ======= | ||
411 | 671 | initiateCommon (0, 0, o, typeToMask (edgeToGridType ()), false, false); | ||
412 | 672 | >>>>>>> MERGE-SOURCE | ||
413 | 552 | 673 | ||
414 | 553 | if (cScreen) | 674 | if (cScreen) |
415 | 554 | cScreen->damageRegion (desiredSlot); | 675 | cScreen->damageRegion (desiredSlot); |
416 | @@ -566,7 +687,11 @@ | |||
417 | 566 | if (cScreen) | 687 | if (cScreen) |
418 | 567 | cScreen->damageRegion (desiredSlot); | 688 | cScreen->damageRegion (desiredSlot); |
419 | 568 | 689 | ||
420 | 690 | <<<<<<< TREE | ||
421 | 569 | initiateCommon (0, 0, o, edgeToGridType (), false); | 691 | initiateCommon (0, 0, o, edgeToGridType (), false); |
422 | 692 | ======= | ||
423 | 693 | check = initiateCommon (NULL, 0, o, typeToMask (edgeToGridType ()), false, false); | ||
424 | 694 | >>>>>>> MERGE-SOURCE | ||
425 | 570 | 695 | ||
426 | 571 | if (cScreen) | 696 | if (cScreen) |
427 | 572 | cScreen->damageRegion (desiredSlot); | 697 | cScreen->damageRegion (desiredSlot); |
428 | @@ -614,12 +739,27 @@ | |||
429 | 614 | } | 739 | } |
430 | 615 | 740 | ||
431 | 616 | void | 741 | void |
432 | 742 | GridWindow::validateResizeRequest (unsigned int &xwcm, | ||
433 | 743 | XWindowChanges *xwc, | ||
434 | 744 | unsigned int source) | ||
435 | 745 | { | ||
436 | 746 | window->validateResizeRequest (xwcm, xwc, source); | ||
437 | 747 | |||
438 | 748 | /* Don't allow non-pagers to change | ||
439 | 749 | * the size of the window, the user | ||
440 | 750 | * specified this size, thank-you */ | ||
441 | 751 | if (isGridMaximized) | ||
442 | 752 | if (source != ClientTypePager) | ||
443 | 753 | xwcm = 0; | ||
444 | 754 | } | ||
445 | 755 | |||
446 | 756 | void | ||
447 | 617 | GridWindow::grabNotify (int x, | 757 | GridWindow::grabNotify (int x, |
448 | 618 | int y, | 758 | int y, |
449 | 619 | unsigned int state, | 759 | unsigned int state, |
450 | 620 | unsigned int mask) | 760 | unsigned int mask) |
451 | 621 | { | 761 | { |
453 | 622 | if (screen->grabExist ("move")) | 762 | if (mask & (CompWindowGrabMoveMask | CompWindowGrabButtonMask)) |
454 | 623 | { | 763 | { |
455 | 624 | gScreen->o.push_back (CompOption ("window", CompOption::TypeInt)); | 764 | gScreen->o.push_back (CompOption ("window", CompOption::TypeInt)); |
456 | 625 | gScreen->o[0].value ().set ((int) window->id ()); | 765 | gScreen->o[0].value ().set ((int) window->id ()); |
457 | @@ -627,14 +767,15 @@ | |||
458 | 627 | screen->handleEventSetEnabled (gScreen, true); | 767 | screen->handleEventSetEnabled (gScreen, true); |
459 | 628 | gScreen->mGrabWindow = window; | 768 | gScreen->mGrabWindow = window; |
460 | 629 | pointerBufDx = pointerBufDy = 0; | 769 | pointerBufDx = pointerBufDy = 0; |
461 | 770 | grabMask = mask; | ||
462 | 630 | 771 | ||
464 | 631 | if (!isGridResized && gScreen->optionGetSnapbackWindows ()) | 772 | if (!isGridResized && !isGridMaximized && gScreen->optionGetSnapbackWindows ()) |
465 | 632 | /* Store size not including borders when grabbing with cursor */ | 773 | /* Store size not including borders when grabbing with cursor */ |
466 | 633 | originalSize = gScreen->slotToRect(window, | 774 | originalSize = gScreen->slotToRect(window, |
467 | 634 | window->serverBorderRect ()); | 775 | window->serverBorderRect ()); |
468 | 635 | } | 776 | } |
469 | 636 | 777 | ||
471 | 637 | if (screen->grabExist ("resize")) | 778 | if (mask & CompWindowGrabResizeMask) |
472 | 638 | { | 779 | { |
473 | 639 | isGridResized = false; | 780 | isGridResized = false; |
474 | 640 | resizeCount = 0; | 781 | resizeCount = 0; |
475 | @@ -649,9 +790,15 @@ | |||
476 | 649 | if (window == gScreen->mGrabWindow) | 790 | if (window == gScreen->mGrabWindow) |
477 | 650 | { | 791 | { |
478 | 651 | gScreen->initiateCommon | 792 | gScreen->initiateCommon |
479 | 793 | <<<<<<< TREE | ||
480 | 652 | (0, 0, gScreen->o, gScreen->edgeToGridType (), true); | 794 | (0, 0, gScreen->o, gScreen->edgeToGridType (), true); |
481 | 795 | ======= | ||
482 | 796 | (NULL, 0, gScreen->o, gScreen->typeToMask (gScreen->edgeToGridType ()), true, | ||
483 | 797 | gScreen->edge != gScreen->lastResizeEdge); | ||
484 | 798 | >>>>>>> MERGE-SOURCE | ||
485 | 653 | 799 | ||
486 | 654 | screen->handleEventSetEnabled (gScreen, false); | 800 | screen->handleEventSetEnabled (gScreen, false); |
487 | 801 | grabMask = 0; | ||
488 | 655 | gScreen->mGrabWindow = NULL; | 802 | gScreen->mGrabWindow = NULL; |
489 | 656 | gScreen->cScreen->damageRegion (gScreen->desiredSlot); | 803 | gScreen->cScreen->damageRegion (gScreen->desiredSlot); |
490 | 657 | } | 804 | } |
491 | @@ -666,6 +813,7 @@ | |||
492 | 666 | { | 813 | { |
493 | 667 | window->moveNotify (dx, dy, immediate); | 814 | window->moveNotify (dx, dy, immediate); |
494 | 668 | 815 | ||
495 | 816 | <<<<<<< TREE | ||
496 | 669 | if (isGridResized) | 817 | if (isGridResized) |
497 | 670 | { | 818 | { |
498 | 671 | pointerBufDx += dx; | 819 | pointerBufDx += dx; |
499 | @@ -678,8 +826,48 @@ | |||
500 | 678 | window->move (-dx, -dy); | 826 | window->move (-dx, -dy); |
501 | 679 | window->moveNotifySetEnabled (this, true); | 827 | window->moveNotifySetEnabled (this, true); |
502 | 680 | } | 828 | } |
505 | 681 | } | 829 | ======= |
506 | 682 | 830 | if (isGridResized && !isGridMaximized && !GridScreen::get (screen)->mSwitchingVp) | |
507 | 831 | { | ||
508 | 832 | if (window->grabbed () && (grabMask & CompWindowGrabMoveMask)) | ||
509 | 833 | { | ||
510 | 834 | pointerBufDx += dx; | ||
511 | 835 | pointerBufDy += dy; | ||
512 | 836 | } | ||
513 | 837 | |||
514 | 838 | /* Do not allow the window to be moved while it | ||
515 | 839 | * is resized */ | ||
516 | 840 | dx = currentSize.x () - window->geometry ().x (); | ||
517 | 841 | dy = currentSize.y () - window->geometry ().y (); | ||
518 | 842 | |||
519 | 843 | window->move (dx, dy); | ||
520 | 844 | } | ||
521 | 845 | >>>>>>> MERGE-SOURCE | ||
522 | 846 | } | ||
523 | 847 | |||
524 | 848 | <<<<<<< TREE | ||
525 | 849 | ======= | ||
526 | 850 | void | ||
527 | 851 | GridWindow::stateChangeNotify (unsigned int lastState) | ||
528 | 852 | { | ||
529 | 853 | if (lastState & MAXIMIZE_STATE && | ||
530 | 854 | !(window->state () & MAXIMIZE_STATE)) | ||
531 | 855 | lastTarget = GridUnknown; | ||
532 | 856 | else if (!(lastState & MAXIMIZE_STATE) && | ||
533 | 857 | window->state () & MAXIMIZE_STATE) | ||
534 | 858 | { | ||
535 | 859 | lastTarget = GridMaximize; | ||
536 | 860 | if (window->grabbed ()) | ||
537 | 861 | { | ||
538 | 862 | originalSize = gScreen->slotToRect (window, | ||
539 | 863 | window->serverBorderRect ()); | ||
540 | 864 | } | ||
541 | 865 | } | ||
542 | 866 | |||
543 | 867 | window->stateChangeNotify (lastState); | ||
544 | 868 | } | ||
545 | 869 | |||
546 | 870 | >>>>>>> MERGE-SOURCE | ||
547 | 683 | bool | 871 | bool |
548 | 684 | GridScreen::restoreWindow (CompAction *action, | 872 | GridScreen::restoreWindow (CompAction *action, |
549 | 685 | CompAction::State state, | 873 | CompAction::State state, |
550 | @@ -697,7 +885,10 @@ | |||
551 | 697 | return false; | 885 | return false; |
552 | 698 | 886 | ||
553 | 699 | if (gw->isGridMaximized & !(cw->state () & MAXIMIZE_STATE)) | 887 | if (gw->isGridMaximized & !(cw->state () & MAXIMIZE_STATE)) |
555 | 700 | gw->isGridMaximized = false; | 888 | { |
556 | 889 | gw->window->sizeHints ().flags |= gw->sizeHintsFlags; | ||
557 | 890 | gw->isGridMaximized = false; | ||
558 | 891 | } | ||
559 | 701 | else | 892 | else |
560 | 702 | { | 893 | { |
561 | 703 | if (cw == mGrabWindow) | 894 | if (cw == mGrabWindow) |
562 | @@ -713,6 +904,7 @@ | |||
563 | 713 | xwc.width = gw->originalSize.width (); | 904 | xwc.width = gw->originalSize.width (); |
564 | 714 | xwc.height = gw->originalSize.height (); | 905 | xwc.height = gw->originalSize.height (); |
565 | 715 | cw->maximize (0); | 906 | cw->maximize (0); |
566 | 907 | gw->currentSize = CompRect (); | ||
567 | 716 | cw->configureXWindow (CWX | CWY | CWWidth | CWHeight, &xwc); | 908 | cw->configureXWindow (CWX | CWY | CWWidth | CWHeight, &xwc); |
568 | 717 | gw->pointerBufDx = 0; | 909 | gw->pointerBufDx = 0; |
569 | 718 | gw->pointerBufDy = 0; | 910 | gw->pointerBufDy = 0; |
570 | @@ -818,16 +1010,29 @@ | |||
571 | 818 | glScreen (GLScreen::get (screen)), | 1010 | glScreen (GLScreen::get (screen)), |
572 | 819 | centerCheck (false), | 1011 | centerCheck (false), |
573 | 820 | mGrabWindow (NULL), | 1012 | mGrabWindow (NULL), |
575 | 821 | animating (false) | 1013 | animating (false), |
576 | 1014 | mSwitchingVp (false) | ||
577 | 822 | { | 1015 | { |
578 | 823 | 1016 | ||
579 | 824 | ScreenInterface::setHandler (screen, false); | 1017 | ScreenInterface::setHandler (screen, false); |
580 | 1018 | screen->handleCompizEventSetEnabled (this, true); | ||
581 | 825 | CompositeScreenInterface::setHandler (cScreen, false); | 1019 | CompositeScreenInterface::setHandler (cScreen, false); |
582 | 826 | GLScreenInterface::setHandler (glScreen, false); | 1020 | GLScreenInterface::setHandler (glScreen, false); |
583 | 827 | 1021 | ||
584 | 828 | edge = lastEdge = NoEdge; | 1022 | edge = lastEdge = NoEdge; |
585 | 829 | currentWorkarea = lastWorkarea = screen->getWorkareaForOutput | 1023 | currentWorkarea = lastWorkarea = screen->getWorkareaForOutput |
586 | 830 | (screen->outputDeviceForPoint (pointerX, pointerY)); | 1024 | (screen->outputDeviceForPoint (pointerX, pointerY)); |
587 | 1025 | gridProps[GridUnknown] = GridProps {0,1, 1,1}; | ||
588 | 1026 | gridProps[GridBottomLeft] = GridProps {0,1, 2,2}; | ||
589 | 1027 | gridProps[GridBottom] = GridProps {0,1, 1,2}; | ||
590 | 1028 | gridProps[GridBottomRight] = GridProps {1,1, 2,2}; | ||
591 | 1029 | gridProps[GridLeft] = GridProps {0,0, 2,1}; | ||
592 | 1030 | gridProps[GridCenter] = GridProps{0,0, 1,1}; | ||
593 | 1031 | gridProps[GridRight] = GridProps {1,0, 2,1}; | ||
594 | 1032 | gridProps[GridTopLeft] = GridProps{0,0, 2,2}; | ||
595 | 1033 | gridProps[GridTop] = GridProps {0,0, 1,2}; | ||
596 | 1034 | gridProps[GridTopRight] = GridProps {0,0, 1,2}; | ||
597 | 1035 | gridProps[GridMaximize] = GridProps {0,0, 1,1}; | ||
598 | 831 | 1036 | ||
599 | 832 | animations.clear (); | 1037 | animations.clear (); |
600 | 833 | 1038 | ||
601 | @@ -835,6 +1040,7 @@ | |||
602 | 835 | optionSet##opt##Initiate (boost::bind (&GridScreen::initiateCommon, this, \ | 1040 | optionSet##opt##Initiate (boost::bind (&GridScreen::initiateCommon, this, \ |
603 | 836 | _1, _2, _3, where, resize)) | 1041 | _1, _2, _3, where, resize)) |
604 | 837 | 1042 | ||
605 | 1043 | <<<<<<< TREE | ||
606 | 838 | GRIDSET (PutCenterKey, GridCenter, true); | 1044 | GRIDSET (PutCenterKey, GridCenter, true); |
607 | 839 | GRIDSET (PutLeftKey, GridLeft, true); | 1045 | GRIDSET (PutLeftKey, GridLeft, true); |
608 | 840 | GRIDSET (PutRightKey, GridRight, true); | 1046 | GRIDSET (PutRightKey, GridRight, true); |
609 | @@ -845,6 +1051,18 @@ | |||
610 | 845 | GRIDSET (PutBottomleftKey, GridBottomLeft, true); | 1051 | GRIDSET (PutBottomleftKey, GridBottomLeft, true); |
611 | 846 | GRIDSET (PutBottomrightKey, GridBottomRight, true); | 1052 | GRIDSET (PutBottomrightKey, GridBottomRight, true); |
612 | 847 | GRIDSET (PutMaximizeKey, GridMaximize, true); | 1053 | GRIDSET (PutMaximizeKey, GridMaximize, true); |
613 | 1054 | ======= | ||
614 | 1055 | GRIDSET (PutCenterKey, GridWindowType::GridCenter, true, true); | ||
615 | 1056 | GRIDSET (PutLeftKey, GridWindowType::GridLeft, true, true); | ||
616 | 1057 | GRIDSET (PutRightKey, GridWindowType::GridRight, true, true); | ||
617 | 1058 | GRIDSET (PutTopKey, GridWindowType::GridTop, true, true); | ||
618 | 1059 | GRIDSET (PutBottomKey, GridWindowType::GridBottom, true, true); | ||
619 | 1060 | GRIDSET (PutTopleftKey, GridWindowType::GridTopLeft, true, true); | ||
620 | 1061 | GRIDSET (PutToprightKey, GridWindowType::GridTopRight, true, true); | ||
621 | 1062 | GRIDSET (PutBottomleftKey, GridWindowType::GridBottomLeft, true, true); | ||
622 | 1063 | GRIDSET (PutBottomrightKey, GridWindowType::GridBottomRight, true, true); | ||
623 | 1064 | GRIDSET (PutMaximizeKey, GridWindowType::GridMaximize, true, true); | ||
624 | 1065 | >>>>>>> MERGE-SOURCE | ||
625 | 848 | 1066 | ||
626 | 849 | #undef GRIDSET | 1067 | #undef GRIDSET |
627 | 850 | 1068 | ||
628 | @@ -862,9 +1080,10 @@ | |||
629 | 862 | gScreen (GridScreen::get (screen)), | 1080 | gScreen (GridScreen::get (screen)), |
630 | 863 | isGridResized (false), | 1081 | isGridResized (false), |
631 | 864 | isGridMaximized (false), | 1082 | isGridMaximized (false), |
632 | 1083 | grabMask (0), | ||
633 | 865 | pointerBufDx (0), | 1084 | pointerBufDx (0), |
634 | 866 | pointerBufDy (0), | 1085 | pointerBufDy (0), |
636 | 867 | resizeCount (0), | 1086 | resizeCount (0), |
637 | 868 | lastTarget (GridUnknown) | 1087 | lastTarget (GridUnknown) |
638 | 869 | { | 1088 | { |
639 | 870 | WindowInterface::setHandler (window); | 1089 | WindowInterface::setHandler (window); |
640 | 871 | 1090 | ||
641 | === modified file 'src/grid.h' | |||
642 | --- src/grid.h 2011-09-29 15:54:11 +0000 | |||
643 | +++ src/grid.h 2011-10-03 00:29:23 +0000 | |||
644 | @@ -32,20 +32,22 @@ | |||
645 | 32 | 32 | ||
646 | 33 | #define SNAPOFF_THRESHOLD 50 | 33 | #define SNAPOFF_THRESHOLD 50 |
647 | 34 | 34 | ||
649 | 35 | typedef enum | 35 | namespace GridWindowType |
650 | 36 | { | 36 | { |
663 | 37 | GridUnknown = 0, | 37 | static const unsigned int GridUnknown = (1 << 0); |
664 | 38 | GridBottomLeft = 1, | 38 | static const unsigned int GridBottomLeft = (1 << 1); |
665 | 39 | GridBottom = 2, | 39 | static const unsigned int GridBottom = (1 << 2); |
666 | 40 | GridBottomRight = 3, | 40 | static const unsigned int GridBottomRight = (1 << 3); |
667 | 41 | GridLeft = 4, | 41 | static const unsigned int GridLeft = (1 << 4); |
668 | 42 | GridCenter = 5, | 42 | static const unsigned int GridCenter = (1 << 5); |
669 | 43 | GridRight = 6, | 43 | static const unsigned int GridRight = (1 << 6); |
670 | 44 | GridTopLeft = 7, | 44 | static const unsigned int GridTopLeft = (1 << 7); |
671 | 45 | GridTop = 8, | 45 | static const unsigned int GridTop = (1 << 8); |
672 | 46 | GridTopRight = 9, | 46 | static const unsigned int GridTopRight = (1 << 9); |
673 | 47 | GridMaximize = 10 | 47 | static const unsigned int GridMaximize = (1 << 10); |
674 | 48 | } GridType; | 48 | }; |
675 | 49 | |||
676 | 50 | typedef unsigned int GridType; | ||
677 | 49 | 51 | ||
678 | 50 | typedef struct _GridProps | 52 | typedef struct _GridProps |
679 | 51 | { | 53 | { |
680 | @@ -106,12 +108,17 @@ | |||
681 | 106 | bool centerCheck; | 108 | bool centerCheck; |
682 | 107 | CompWindow *mGrabWindow; | 109 | CompWindow *mGrabWindow; |
683 | 108 | bool animating; | 110 | bool animating; |
684 | 111 | bool mSwitchingVp; | ||
685 | 109 | 112 | ||
686 | 110 | void getPaintRectangle (CompRect&); | 113 | void getPaintRectangle (CompRect&); |
687 | 111 | void setCurrentRect (Animation&); | 114 | void setCurrentRect (Animation&); |
688 | 112 | 115 | ||
689 | 113 | bool initiateCommon (CompAction*, CompAction::State, | 116 | bool initiateCommon (CompAction*, CompAction::State, |
690 | 117 | <<<<<<< TREE | ||
691 | 114 | CompOption::Vector&, GridType, bool); | 118 | CompOption::Vector&, GridType, bool); |
692 | 119 | ======= | ||
693 | 120 | CompOption::Vector&, unsigned int, bool, bool); | ||
694 | 121 | >>>>>>> MERGE-SOURCE | ||
695 | 115 | 122 | ||
696 | 116 | void glPaintRectangle (const GLScreenPaintAttrib&, | 123 | void glPaintRectangle (const GLScreenPaintAttrib&, |
697 | 117 | const GLMatrix&, CompOutput *); | 124 | const GLMatrix&, CompOutput *); |
698 | @@ -125,9 +132,11 @@ | |||
699 | 125 | 132 | ||
700 | 126 | std::vector <Animation> animations; | 133 | std::vector <Animation> animations; |
701 | 127 | 134 | ||
703 | 128 | GridType edgeToGridType (); | 135 | int edgeToGridType (); |
704 | 136 | unsigned int typeToMask (int); | ||
705 | 129 | 137 | ||
706 | 130 | void handleEvent (XEvent *event); | 138 | void handleEvent (XEvent *event); |
707 | 139 | void handleCompizEvent (const char *plugin, const char *event, CompOption::Vector &options); | ||
708 | 131 | 140 | ||
709 | 132 | bool restoreWindow (CompAction*, | 141 | bool restoreWindow (CompAction*, |
710 | 133 | CompAction::State, | 142 | CompAction::State, |
711 | @@ -157,17 +166,28 @@ | |||
712 | 157 | 166 | ||
713 | 158 | bool isGridResized; | 167 | bool isGridResized; |
714 | 159 | bool isGridMaximized; | 168 | bool isGridMaximized; |
715 | 169 | unsigned int grabMask; | ||
716 | 160 | int pointerBufDx; | 170 | int pointerBufDx; |
717 | 161 | int pointerBufDy; | 171 | int pointerBufDy; |
718 | 162 | int resizeCount; | 172 | int resizeCount; |
719 | 173 | CompRect currentSize; | ||
720 | 163 | CompRect originalSize; | 174 | CompRect originalSize; |
721 | 164 | GridType lastTarget; | 175 | GridType lastTarget; |
722 | 176 | unsigned int sizeHintsFlags; | ||
723 | 165 | 177 | ||
724 | 166 | void grabNotify (int, int, unsigned int, unsigned int); | 178 | void grabNotify (int, int, unsigned int, unsigned int); |
725 | 167 | 179 | ||
726 | 168 | void ungrabNotify (); | 180 | void ungrabNotify (); |
727 | 169 | 181 | ||
728 | 170 | void moveNotify (int, int, bool); | 182 | void moveNotify (int, int, bool); |
729 | 183 | <<<<<<< TREE | ||
730 | 184 | ======= | ||
731 | 185 | |||
732 | 186 | void stateChangeNotify (unsigned int); | ||
733 | 187 | void validateResizeRequest (unsigned int &valueMask, | ||
734 | 188 | XWindowChanges *xwc, | ||
735 | 189 | unsigned int source); | ||
736 | 190 | >>>>>>> MERGE-SOURCE | ||
737 | 171 | }; | 191 | }; |
738 | 172 | 192 | ||
739 | 173 | #define GRID_WINDOW(w) \ | 193 | #define GRID_WINDOW(w) \ |