Home | History | Annotate | Download | only in desktop_capture

Lines Matching refs:row_a

285   // |row_a| refers to the current row we are subtracting from. Skip all rows
287 Rows::iterator row_a = rows_.upper_bound(top);
290 // |row_a|.
291 while (row_a != rows_.end() && row_b != region.rows_.end()) {
292 // Skip |row_a| if it doesn't intersect with the |row_b|.
293 if (row_a->second->bottom <= top) {
296 MergeWithPrecedingRow(row_a);
297 ++row_a;
301 if (top > row_a->second->top) {
302 // If |top| falls in the middle of |row_a| then split |row_a| into two, at
303 // |top|, and leave |row_a| referring to the lower of the two, ready to
305 assert(top <= row_a->second->bottom);
307 row_a, Rows::value_type(top, new Row(row_a->second->top, top)));
308 row_a->second->top = top;
309 new_row->second->spans = row_a->second->spans;
310 } else if (top < row_a->second->top) {
311 // If the |top| is above |row_a| then skip the range between |top| and
312 // top of |row_a| because it's empty.
313 top = row_a->second->top;
322 if (row_b->second->bottom < row_a->second->bottom) {
323 // If the bottom of |row_b| falls in the middle of the |row_a| split
324 // |row_a| into two, at |top|, and leave |row_a| referring to the upper of
328 rows_.insert(row_a, Rows::value_type(bottom, new Row(top, bottom)));
329 row_a->second->top = bottom;
330 new_row->second->spans = row_a->second->spans;
331 row_a = new_row;
334 // At this point the vertical range covered by |row_a| lays within the
335 // range covered by |row_b|. Subtract |row_b| spans from |row_a|.
337 SubtractRows(row_a->second->spans, row_b->second->spans, &new_spans);
338 new_spans.swap(row_a->second->spans);
339 top = row_a->second->bottom;
349 if (row_a->second->spans.empty()) {
350 Rows::iterator row_to_delete = row_a;
351 ++row_a;
355 MergeWithPrecedingRow(row_a);
356 ++row_a;
360 if (row_a != rows_.end())
361 MergeWithPrecedingRow(row_a);