Feature #7666 » 0001-Only-connect-jsScrollVisibilityChanged_-as-needed.patch
| src/Wt/WWebWidget.C | ||
|---|---|---|
|
WWebWidget::OtherImpl::OtherImpl(WWebWidget *const self)
|
||
|
: elementTagName_(nullptr),
|
||
|
tabIndex_(std::numeric_limits<int>::min()),
|
||
|
scrollVisibilityMargin_(0),
|
||
|
jsScrollVisibilityChanged_(self, "scrollVisibilityChanged")
|
||
|
{
|
||
|
jsScrollVisibilityChanged_.connect(self, &WWebWidget::jsScrollVisibilityChanged);
|
||
|
}
|
||
|
scrollVisibilityMargin_(0)
|
||
|
{ }
|
||
|
WWebWidget::OtherImpl::~OtherImpl()
|
||
|
{ }
|
||
| ... | ... | |
|
void WWebWidget::setScrollVisibilityEnabled(bool enabled)
|
||
|
{
|
||
|
if (enabled && !otherImpl_)
|
||
|
if (enabled && !otherImpl_) {
|
||
|
otherImpl_.reset(new OtherImpl(this));
|
||
|
if (!otherImpl_->jsScrollVisibilityChanged_) {
|
||
|
otherImpl_->jsScrollVisibilityChanged_.reset(new JSignal<bool>(this, "scrollVisibilityChanged"));
|
||
|
otherImpl_->jsScrollVisibilityChanged_->connect(this, &WWebWidget::jsScrollVisibilityChanged);
|
||
|
}
|
||
|
}
|
||
|
if (scrollVisibilityEnabled() != enabled) {
|
||
|
flags_.set(BIT_SCROLL_VISIBILITY_ENABLED, enabled);
|
||
| src/Wt/WWebWidget.h | ||
|---|---|---|
|
int scrollVisibilityMargin_;
|
||
|
Signal<bool> scrollVisibilityChanged_;
|
||
|
JSignal<bool> jsScrollVisibilityChanged_;
|
||
|
std::unique_ptr<JSignal<bool> > jsScrollVisibilityChanged_;
|
||
|
OtherImpl(WWebWidget *const self);
|
||
|
~OtherImpl();
|
||