From 645b01f225aafb51645570d0add2dc3904a7d433 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Thu, 28 Jun 2007 12:58:03 +0000 Subject: [PATCH] Got rid of fSelected, no need to maintain a separate variable to check if we have a selection. Now there's a "HasSelection()" method which just checks if fSelStart and fSelEnd are different. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21520 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/terminal/TermView.cpp | 33 +++++++++++++++++---------------- src/apps/terminal/TermView.h | 10 +++++----- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/apps/terminal/TermView.cpp b/src/apps/terminal/TermView.cpp index 8c4192f3a2..a561a97493 100644 --- a/src/apps/terminal/TermView.cpp +++ b/src/apps/terminal/TermView.cpp @@ -94,7 +94,6 @@ TermView::TermView(BRect frame, CodeConv *inCodeConv, int fd) fScrBot(fTermRows - 1), fScrBufSize(gTermPref->getInt32(PREF_HISTORY_SIZE)), fScrRegionSet(0), - fSelected(false), fMouseTracking(false), fViewThread(-1), fMouseThread(-1), @@ -851,7 +850,7 @@ TermView::MouseTracking(void *data) if (!has_data(find_thread(NULL))) { BRect r; - if (theObj->fSelected + if (theObj->HasSelection() && ( gTermPref->getInt32(PREF_DRAGN_COPY) || modifiers() & B_CONTROL_KEY)) { @@ -886,7 +885,7 @@ TermView::MouseTracking(void *data) if (code != MOUSE_THR_CODE) continue; - selected = theObj->fSelected; + selected = theObj->HasSelection(); edpoint.Set(-1, -1); stpos = theObj->BPointToCurPos(stpoint); @@ -1099,7 +1098,7 @@ void TermView::UpdateSIGWINCH() { if (fFrameResized) { - if (fSelected) + if (HasSelection()) TermDrawSelectedRegion(fSelStart, fSelEnd); ScrollTo(0, fTop); ResizeScrBarRange(); @@ -1575,7 +1574,7 @@ TermView::DoFileDrop(entry_ref &ref) void TermView::DoCopy() { - if (!fSelected) + if (!HasSelection()) return; BString copyStr; @@ -1667,10 +1666,7 @@ TermView::DoClearAll(void) // reset cursor pos SetCurPos(0, 0); - - // reset selection. - fSelected = false; - + fScrollBar->SetRange(0, 0); fScrollBar->SetProportion(1); } @@ -1702,7 +1698,7 @@ TermView::MouseDown(BPoint where) // paste button if ((buttons & (B_SECONDARY_MOUSE_BUTTON | B_TERTIARY_MOUSE_BUTTON)) != 0) { - if (fSelected) { + if (HasSelection()) { // copy text from region BString copy; fTextBuffer->GetStringFromRegion(copy); @@ -1720,7 +1716,7 @@ TermView::MouseDown(BPoint where) Window()->CurrentMessage()->FindInt32("modifiers", &mod); Window()->CurrentMessage()->FindInt32("clicks", &clicks); - if (fSelected) { + if (HasSelection()) { CurPos inPos, stPos, edPos; if (fSelStart < fSelEnd) { stPos = fSelStart; @@ -1855,7 +1851,6 @@ TermView::Select(CurPos start, CurPos end) fTextBuffer->Select(fSelStart, fSelEnd); TermDrawSelectedRegion(fSelStart, fSelEnd); - fSelected = true; } // Add select region(shift + mouse click) @@ -1866,7 +1861,7 @@ TermView::AddSelectRegion(CurPos pos) ushort attr; CurPos start, end, inPos; - if (!fSelected) + if (!HasSelection()) return; // error check, and if mouse point to a plase full width character, @@ -1979,7 +1974,7 @@ TermView::DeSelect(void) { CurPos start, end; - if (!fSelected) + if (!HasSelection()) return; fTextBuffer->DeSelect(); @@ -1991,10 +1986,16 @@ TermView::DeSelect(void) fSelEnd.Set(-1, -1); TermDrawSelectedRegion(start, end); - - fSelected = false; } + +bool +TermView::HasSelection() const +{ + return fSelStart != fSelEnd; +} + + void TermView::SelectWord(BPoint where, int mod) { diff --git a/src/apps/terminal/TermView.h b/src/apps/terminal/TermView.h index 1acd2ecc4c..c482915f90 100644 --- a/src/apps/terminal/TermView.h +++ b/src/apps/terminal/TermView.h @@ -208,11 +208,12 @@ class TermView : public BView { int32 GetWidthFromUTF8String (const char *); // Mouse select - void Select(CurPos start, CurPos end); - void AddSelectRegion(CurPos); - void ResizeSelectRegion(CurPos); + void Select(CurPos start, CurPos end); + void AddSelectRegion(CurPos); + void ResizeSelectRegion(CurPos); - void DeSelect(); + void DeSelect(); + bool HasSelection() const; // select word function void SelectWord(BPoint where, int mod); @@ -307,7 +308,6 @@ class TermView : public BView { // view selection CurPos fSelStart; CurPos fSelEnd; - bool fSelected; bool fMouseTracking; // thread ID / flags.