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 {