Compare commits

..

1 Commits

Author SHA1 Message Date
Clément Roblot
f3c7480cd3
Merge 810ae40b14 into 55af678fb9 2024-11-02 17:57:42 +01:00
3 changed files with 1 additions and 18 deletions

View File

@ -11,8 +11,6 @@ struct Box {
int x_max = 0; int x_max = 0;
int y_min = 0; int y_min = 0;
int y_max = 0; int y_max = 0;
bool isXInverted = false; // false means the box box from x_min to x_max (in the case of a selection for example)
bool isYInverted = false; // false means the box box from y_min to y_max (in the case of a selection for example)
static auto Intersection(Box a, Box b) -> Box; static auto Intersection(Box a, Box b) -> Box;
static auto Union(Box a, Box b) -> Box; static auto Union(Box a, Box b) -> Box;

View File

@ -34,17 +34,6 @@ class Text : public Node {
if (y > box_.y_max) { if (y > box_.y_max) {
return; return;
} }
// Get the selection start point
int selection_start_x = !screen.selection_region.isXInverted ? screen.selection_region.x_min : screen.selection_region.x_max;
int selection_start_y = !screen.selection_region.isYInverted ? screen.selection_region.y_min : screen.selection_region.y_max;
bool selectedWidget = false;
if(box_.Contain(selection_start_x, selection_start_y))
{
selectedWidget = true;
}
for (const auto& cell : Utf8ToGlyphs(text_)) { for (const auto& cell : Utf8ToGlyphs(text_)) {
if (x > box_.x_max) { if (x > box_.x_max) {
return; return;
@ -55,7 +44,7 @@ class Text : public Node {
Pixel &currentPixel = screen.PixelAt(x, y); Pixel &currentPixel = screen.PixelAt(x, y);
currentPixel.character = cell; currentPixel.character = cell;
if((selectedWidget == true) && (currentPixel.selectable == true)) if(currentPixel.selectable == true)
{ {
if(screen.selection_region.Contain(x, y)) { if(screen.selection_region.Contain(x, y)) {
currentPixel.inverted ^= true; currentPixel.inverted ^= true;
@ -64,14 +53,12 @@ class Text : public Node {
else if((x >= screen.selection_region.x_min) && (x >= screen.selection_region.x_max) && else if((x >= screen.selection_region.x_min) && (x >= screen.selection_region.x_max) &&
(y >= screen.selection_region.y_min) && (y < screen.selection_region.y_max)) (y >= screen.selection_region.y_min) && (y < screen.selection_region.y_max))
{ {
// Wrap around selection on the right
currentPixel.inverted ^= true; currentPixel.inverted ^= true;
screen.selection_text += currentPixel.character; screen.selection_text += currentPixel.character;
} }
else if((x <= screen.selection_region.x_min) && (x <= screen.selection_region.x_max) && else if((x <= screen.selection_region.x_min) && (x <= screen.selection_region.x_max) &&
(y > screen.selection_region.y_min) && (y <= screen.selection_region.y_max)) (y > screen.selection_region.y_min) && (y <= screen.selection_region.y_max))
{ {
// Wrap around selection on the left
currentPixel.inverted ^= true; currentPixel.inverted ^= true;
screen.selection_text += currentPixel.character; screen.selection_text += currentPixel.character;
} }

View File

@ -47,13 +47,11 @@ Box Box::Clean() const {
if(newBox.x_min > newBox.x_max) if(newBox.x_min > newBox.x_max)
{ {
std::swap(newBox.x_min, newBox.x_max); std::swap(newBox.x_min, newBox.x_max);
newBox.isXInverted = true;
} }
if(newBox.y_min > newBox.y_max) if(newBox.y_min > newBox.y_max)
{ {
std::swap(newBox.y_min, newBox.y_max); std::swap(newBox.y_min, newBox.y_max);
newBox.isYInverted = true;
} }
return newBox; return newBox;