| 172 | } |
| 173 | |
| 174 | void Viewport::SetVerticalAdjustment( Adjustment::Ptr vertical_adjustment ) { |
| 175 | if( m_vertical_adjustment ) { |
| 176 | m_vertical_adjustment->GetSignal( Adjustment::OnChange ).Disconnect( m_vertical_adjustment_signal_serial ); |
| 177 | } |
| 178 | |
| 179 | m_vertical_adjustment = vertical_adjustment; |
| 180 | |
| 181 | auto weak_this = std::weak_ptr<Widget>( shared_from_this() ); |
| 182 | |
| 183 | m_vertical_adjustment_signal_serial = m_vertical_adjustment->GetSignal( Adjustment::OnChange ).Connect( [weak_this] { |
| 184 | auto shared_this = weak_this.lock(); |
| 185 | |
| 186 | if( !shared_this ) { |
| 187 | return; |
| 188 | } |
| 189 | |
| 190 | auto viewport = std::dynamic_pointer_cast<Viewport>( shared_this ); |
| 191 | |
| 192 | if( !viewport ) { |
| 193 | return; |
| 194 | } |
| 195 | |
| 196 | viewport->UpdateView(); |
| 197 | } ); |
| 198 | } |
| 199 | |
| 200 | void Viewport::HandleRequisitionChange() { |
| 201 | // A child just requested it's size. Because we are a viewport |
no test coverage detected