ChannelSlider now sends notifications while being dragged, thus allowing the volume to be manipulated in realtime from the media prefs, rather than on mouseup only. Fixes ticket #3338.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29151 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -121,7 +121,7 @@ virtual void _Reserved_BChannelSlider_7(void* , ...);
|
|||||||
uint32 _reserved_[12];
|
uint32 _reserved_[12];
|
||||||
|
|
||||||
void _InitData();
|
void _InitData();
|
||||||
void _FinishChange();
|
void _FinishChange(bool update = false);
|
||||||
void _UpdateFontDimens();
|
void _UpdateFontDimens();
|
||||||
void _DrawThumbs();
|
void _DrawThumbs();
|
||||||
void _DrawGrooveFrame(BView* where, const BRect& area);
|
void _DrawGrooveFrame(BView* where, const BRect& area);
|
||||||
|
|||||||
@@ -677,7 +677,7 @@ BChannelSlider::_InitData()
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BChannelSlider::_FinishChange()
|
BChannelSlider::_FinishChange(bool update)
|
||||||
{
|
{
|
||||||
if (fInitialValues != NULL) {
|
if (fInitialValues != NULL) {
|
||||||
bool *inMask = NULL;
|
bool *inMask = NULL;
|
||||||
@@ -690,11 +690,13 @@ BChannelSlider::_FinishChange()
|
|||||||
inMask[fCurrentChannel] = true;
|
inMask[fCurrentChannel] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
InvokeChannel(NULL, 0, numChannels, inMask);
|
InvokeChannel(update ? NULL : ModificationMessage(), 0, numChannels, inMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetTracking(false);
|
if (!update) {
|
||||||
_Redraw();
|
SetTracking(false);
|
||||||
|
_Redraw();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -863,6 +865,9 @@ BChannelSlider::_MouseMovedCommon(BPoint point, BPoint point2)
|
|||||||
else
|
else
|
||||||
SetValueFor(fCurrentChannel, value);
|
SetValueFor(fCurrentChannel, value);
|
||||||
|
|
||||||
|
if (ModificationMessage())
|
||||||
|
_FinishChange(true);
|
||||||
|
|
||||||
_DrawThumbs();
|
_DrawThumbs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user