The cursor position is now correctly maintained in the HeaderView as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6631 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
6a2a85f498
commit
b797c2778b
@ -416,6 +416,13 @@ DataView::SetSelection(int32 start, int32 end, view_focus focus)
|
||||
return;
|
||||
}
|
||||
|
||||
// notify our listeners
|
||||
if (fStart != start) {
|
||||
BMessage update;
|
||||
update.AddInt64("position", start);
|
||||
SendNotices(kDataViewCursorPosition, &update);
|
||||
}
|
||||
|
||||
// remove old selection
|
||||
// ToDo: this could be drastically improved if only the changed
|
||||
// parts are drawn! Of course, this would only work for the
|
||||
|
@ -14,6 +14,7 @@
|
||||
class DataEditor;
|
||||
|
||||
static const uint32 kMsgBaseType = 'base';
|
||||
static const uint32 kDataViewCursorPosition = 'curs';
|
||||
|
||||
enum base_type {
|
||||
kHexBase,
|
||||
|
@ -530,6 +530,23 @@ void
|
||||
HeaderView::MessageReceived(BMessage *message)
|
||||
{
|
||||
switch (message->what) {
|
||||
case B_OBSERVER_NOTICE_CHANGE: {
|
||||
int32 what;
|
||||
if (message->FindInt32(B_OBSERVE_WHAT_CHANGE, &what) != B_OK)
|
||||
break;
|
||||
|
||||
switch (what) {
|
||||
case kDataViewCursorPosition:
|
||||
off_t offset;
|
||||
if (message->FindInt64("position", &offset) == B_OK) {
|
||||
fOffset = offset;
|
||||
UpdateOffsetViews(fPositionSlider->Position());
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case kMsgSliderUpdate:
|
||||
{
|
||||
off_t position = fPositionSlider->Position();
|
||||
@ -642,6 +659,7 @@ void
|
||||
ProbeView::AttachedToWindow()
|
||||
{
|
||||
fEditor.StartWatching(this);
|
||||
fDataView->StartWatching(fHeaderView, kDataViewCursorPosition);
|
||||
|
||||
// Add menu to window
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user