* The Be API requires that options and mask is 0 to remove a mask using
BView::SetEventMask(). This fixes bug #3928. * And while the app_server handled that correctly, BView actually did not, and stored the wrong value. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30772 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -104,7 +104,10 @@ VolumeControl::AttachedToWindow()
|
|||||||
{
|
{
|
||||||
BSlider::AttachedToWindow();
|
BSlider::AttachedToWindow();
|
||||||
|
|
||||||
SetEventMask(_IsReplicant() ? 0 : B_POINTER_EVENTS, B_NO_POINTER_HISTORY);
|
if (_IsReplicant())
|
||||||
|
SetEventMask(0, 0);
|
||||||
|
else
|
||||||
|
SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY);
|
||||||
|
|
||||||
BMediaRoster* roster = BMediaRoster::CurrentRoster();
|
BMediaRoster* roster = BMediaRoster::CurrentRoster();
|
||||||
if (roster != NULL && fMixerControl->GainNode() != media_node::null) {
|
if (roster != NULL && fMixerControl->GainNode() != media_node::null) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2001-2008, Haiku.
|
* Copyright 2001-2009, Haiku.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
@@ -1587,7 +1587,9 @@ BView::SetEventMask(uint32 mask, uint32 options)
|
|||||||
if (fEventMask == mask && fEventOptions == options)
|
if (fEventMask == mask && fEventOptions == options)
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|
||||||
fEventMask = mask | (fEventMask & 0xffff0000);
|
// don't change the mask if it's zero and we've got options
|
||||||
|
if (mask != 0 || options == 0)
|
||||||
|
fEventMask = mask | (fEventMask & 0xffff0000);
|
||||||
fEventOptions = options;
|
fEventOptions = options;
|
||||||
|
|
||||||
fState->archiving_flags |= B_VIEW_EVENT_MASK_BIT;
|
fState->archiving_flags |= B_VIEW_EVENT_MASK_BIT;
|
||||||
|
|||||||
Reference in New Issue
Block a user