* 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:
parent
314854708a
commit
d69a73dfc7
@ -104,7 +104,10 @@ VolumeControl::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();
|
||||
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.
|
||||
*
|
||||
* Authors:
|
||||
@ -1587,7 +1587,9 @@ BView::SetEventMask(uint32 mask, uint32 options)
|
||||
if (fEventMask == mask && fEventOptions == options)
|
||||
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;
|
||||
|
||||
fState->archiving_flags |= B_VIEW_EVENT_MASK_BIT;
|
||||
|
Loading…
Reference in New Issue
Block a user