* s/fLastKeyTime is no longer a static member - this fixes that the type-ahead
buffer will be taken over to another window (if you type fast enough). * Also the type-ahead runner no longer clobbers the static type-ahead buffer, so it won't delete something you typed in another window anymore (again, if you type fast enough :-)). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28745 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -217,6 +217,7 @@ BPoseView::BPoseView(Model *model, BRect bounds, uint32 viewMode, uint32 resizeM
|
|||||||
fIsDesktopWindow(false),
|
fIsDesktopWindow(false),
|
||||||
fIsWatchingDateFormatChange(false),
|
fIsWatchingDateFormatChange(false),
|
||||||
fHasPosesInClipboard(false),
|
fHasPosesInClipboard(false),
|
||||||
|
fLastKeyTime(0),
|
||||||
fLastDeskbarFrameCheckTime(LONGLONG_MIN),
|
fLastDeskbarFrameCheckTime(LONGLONG_MIN),
|
||||||
fDeskbarFrame(0, 0, -1, -1)
|
fDeskbarFrame(0, 0, -1, -1)
|
||||||
{
|
{
|
||||||
@@ -2279,8 +2280,7 @@ BPoseView::MessageReceived(BMessage *message)
|
|||||||
{
|
{
|
||||||
bigtime_t doubleClickSpeed;
|
bigtime_t doubleClickSpeed;
|
||||||
get_click_speed(&doubleClickSpeed);
|
get_click_speed(&doubleClickSpeed);
|
||||||
if (system_time() - sLastKeyTime > (doubleClickSpeed * 2)) {
|
if (system_time() - fLastKeyTime > (doubleClickSpeed * 2)) {
|
||||||
strcpy(sMatchString, "");
|
|
||||||
fCountView->SetTypeAhead(sMatchString);
|
fCountView->SetTypeAhead(sMatchString);
|
||||||
delete fKeyRunner;
|
delete fKeyRunner;
|
||||||
fKeyRunner = NULL;
|
fKeyRunner = NULL;
|
||||||
@@ -5910,7 +5910,7 @@ BPoseView::KeyDown(const char *bytes, int32 count)
|
|||||||
// remove last char from the typeahead buffer
|
// remove last char from the typeahead buffer
|
||||||
sMatchString[strlen(sMatchString) - 1] = '\0';
|
sMatchString[strlen(sMatchString) - 1] = '\0';
|
||||||
|
|
||||||
sLastKeyTime = system_time();
|
fLastKeyTime = system_time();
|
||||||
|
|
||||||
fCountView->SetTypeAhead(sMatchString);
|
fCountView->SetTypeAhead(sMatchString);
|
||||||
|
|
||||||
@@ -5950,14 +5950,14 @@ BPoseView::KeyDown(const char *bytes, int32 count)
|
|||||||
|
|
||||||
// add char to existing matchString or start new match string
|
// add char to existing matchString or start new match string
|
||||||
// make sure we don't overfill matchstring
|
// make sure we don't overfill matchstring
|
||||||
if (eventTime - sLastKeyTime < (doubleClickSpeed * 2)) {
|
if (eventTime - fLastKeyTime < (doubleClickSpeed * 2)) {
|
||||||
uint32 nchars = B_FILE_NAME_LENGTH - strlen(sMatchString);
|
uint32 nchars = B_FILE_NAME_LENGTH - strlen(sMatchString);
|
||||||
strncat(sMatchString, searchChar, nchars);
|
strncat(sMatchString, searchChar, nchars);
|
||||||
} else {
|
} else {
|
||||||
strncpy(sMatchString, searchChar, B_FILE_NAME_LENGTH - 1);
|
strncpy(sMatchString, searchChar, B_FILE_NAME_LENGTH - 1);
|
||||||
}
|
}
|
||||||
sMatchString[B_FILE_NAME_LENGTH - 1] = '\0';
|
sMatchString[B_FILE_NAME_LENGTH - 1] = '\0';
|
||||||
sLastKeyTime = eventTime;
|
fLastKeyTime = eventTime;
|
||||||
|
|
||||||
fCountView->SetTypeAhead(sMatchString);
|
fCountView->SetTypeAhead(sMatchString);
|
||||||
|
|
||||||
@@ -7559,7 +7559,7 @@ BPoseView::SwitchDir(const entry_ref *newDirRef, AttributeStreamNode *node)
|
|||||||
|
|
||||||
Invalidate();
|
Invalidate();
|
||||||
|
|
||||||
sLastKeyTime = 0;
|
fLastKeyTime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -9321,7 +9321,6 @@ TPoseViewFilter::Filter(BMessage *message, BHandler **)
|
|||||||
|
|
||||||
float BPoseView::sFontHeight = -1;
|
float BPoseView::sFontHeight = -1;
|
||||||
font_height BPoseView::sFontInfo = { 0, 0, 0 };
|
font_height BPoseView::sFontInfo = { 0, 0, 0 };
|
||||||
bigtime_t BPoseView::sLastKeyTime = 0;
|
|
||||||
BFont BPoseView::sCurrentFont;
|
BFont BPoseView::sCurrentFont;
|
||||||
OffscreenBitmap *BPoseView::sOffscreen = new OffscreenBitmap;
|
OffscreenBitmap *BPoseView::sOffscreen = new OffscreenBitmap;
|
||||||
char BPoseView::sMatchString[] = "";
|
char BPoseView::sMatchString[] = "";
|
||||||
|
|||||||
@@ -654,10 +654,10 @@ class BPoseView : public BView {
|
|||||||
static float sFontHeight;
|
static float sFontHeight;
|
||||||
static font_height sFontInfo;
|
static font_height sFontInfo;
|
||||||
static BFont sCurrentFont;
|
static BFont sCurrentFont;
|
||||||
static bigtime_t sLastKeyTime;
|
|
||||||
static char sMatchString[B_FILE_NAME_LENGTH];
|
static char sMatchString[B_FILE_NAME_LENGTH];
|
||||||
// used for typeahead - should be replaced by a typeahead state
|
// used for typeahead - should be replaced by a typeahead state
|
||||||
|
|
||||||
|
bigtime_t fLastKeyTime;
|
||||||
bigtime_t fLastDeskbarFrameCheckTime;
|
bigtime_t fLastDeskbarFrameCheckTime;
|
||||||
BRect fDeskbarFrame;
|
BRect fDeskbarFrame;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user