- pos_type const sel_pos = left_margin ? sel_beg : sel_end;
- pos_type const margin_pos = left_margin ? pos_ : end_;
-
- // Is the chosen margin selected ?
- if (sel_pos == margin_pos) {
- if (beg.pos() == end.pos())
- // This is a special case in which the space between after
- // pos i-1 and before pos i is selected, i.e. the margins
- // (see DocIterator::boundary_).
- return beg.boundary() && !end.boundary();
- else if (end.pos() == margin_pos)
- // If the selection ends around the margin, it is only
- // drawn if the cursor is after the margin.
- return !end.boundary();
- else if (beg.pos() == margin_pos)
- // If the selection begins around the margin, it is
- // only drawn if the cursor is before the margin.
- return beg.boundary();
- else
- return true;
- }
- return false;
+ pos_type const sel_pos = left ? sel_beg : sel_end;
+ pos_type const margin_pos = left ? pos_ : end_;
+
+ // Is there a selection and is the chosen margin selected ?
+ if (!selection() || sel_pos != margin_pos)
+ return false;
+ else if (beg.pos() == end.pos())
+ // This is a special case in which the space between after
+ // pos i-1 and before pos i is selected, i.e. the margins
+ // (see DocIterator::boundary_).
+ return beg.boundary() && !end.boundary();
+ else if (end.pos() == margin_pos)
+ // If the selection ends around the margin, it is only
+ // drawn if the cursor is after the margin.
+ return !end.boundary();
+ else if (beg.pos() == margin_pos)
+ // If the selection begins around the margin, it is
+ // only drawn if the cursor is before the margin.
+ return beg.boundary();
+ else
+ return true;