Mercurial > hg > orthanc-stone
comparison Framework/Viewport/WidgetViewport.cpp @ 54:01aa453d4d5b wasm
IWidget::HasRenderMouseOver
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Apr 2017 17:49:29 +0200 |
parents | c2dc924f1a63 |
children | f0f354a97581 |
comparison
equal
deleted
inserted
replaced
53:c2dc924f1a63 | 54:01aa453d4d5b |
---|---|
202 else | 202 else |
203 { | 203 { |
204 mouseTracker_.reset(NULL); | 204 mouseTracker_.reset(NULL); |
205 } | 205 } |
206 | 206 |
207 observers_.NotifyChange(this);; | 207 observers_.NotifyChange(this); |
208 } | 208 } |
209 | 209 |
210 | 210 |
211 void WidgetViewport::MouseUp() | 211 void WidgetViewport::MouseUp() |
212 { | 212 { |
217 | 217 |
218 if (mouseTracker_.get() != NULL) | 218 if (mouseTracker_.get() != NULL) |
219 { | 219 { |
220 mouseTracker_->MouseUp(); | 220 mouseTracker_->MouseUp(); |
221 mouseTracker_.reset(NULL); | 221 mouseTracker_.reset(NULL); |
222 observers_.NotifyChange(this);; | 222 observers_.NotifyChange(this); |
223 } | 223 } |
224 } | 224 } |
225 | 225 |
226 | 226 |
227 void WidgetViewport::MouseMove(int x, | 227 void WidgetViewport::MouseMove(int x, |
233 } | 233 } |
234 | 234 |
235 lastMouseX_ = x; | 235 lastMouseX_ = x; |
236 lastMouseY_ = y; | 236 lastMouseY_ = y; |
237 | 237 |
238 bool repaint = false; | |
239 | |
238 if (mouseTracker_.get() != NULL) | 240 if (mouseTracker_.get() != NULL) |
239 { | 241 { |
240 mouseTracker_->MouseMove(x, y); | 242 mouseTracker_->MouseMove(x, y); |
241 } | 243 repaint = true; |
242 | 244 } |
243 // The scene must be repainted | 245 else |
244 observers_.NotifyChange(this); | 246 { |
247 repaint = centralWidget_->HasRenderMouseOver(x, y); | |
248 } | |
249 | |
250 if (repaint) | |
251 { | |
252 // The scene must be repainted, notify the observers | |
253 observers_.NotifyChange(this); | |
254 } | |
245 } | 255 } |
246 | 256 |
247 | 257 |
248 void WidgetViewport::MouseEnter() | 258 void WidgetViewport::MouseEnter() |
249 { | 259 { |