331{
333 switch (event->type()) {
334 case QEvent::FocusIn: {
335 QFocusEvent *fevent = static_cast<QFocusEvent*>(event);
337
338
339
341
344 }
345
348
350
351 object->removeEventFilter(this);
352 object->installEventFilter(this);
353
356
357 const QPoint globalPos = QCursor::pos();
358 const QPoint localPos =
d->
canvas->canvasWidget()->mapFromGlobal(globalPos);
359 QWidget *canvasWindow =
d->
canvas->canvasWidget()->window();
360 const QPoint windowsPos = canvasWindow ? canvasWindow->mapFromGlobal(globalPos) : localPos;
361
362 QEnterEvent event(localPos, windowsPos, globalPos);
364 break;
365 }
366 case QEvent::FocusOut: {
368 break;
369 }
370 case QEvent::Enter: {
371 break;
372 }
373 case QEvent::Leave: {
375 break;
376 }
377 case QEvent::Wheel: {
378 QWidget *widget = static_cast<QWidget*>(object);
379 widget->setFocus();
380 break;
381 }
382 case QEvent::MouseButtonPress:
383 case QEvent::MouseButtonRelease:
384 case QEvent::TabletPress:
385 case QEvent::TabletRelease:
387
390 return true;
391 }
392 break;
393 case QEvent::MouseButtonDblClick:
396 return true;
397 }
398 break;
399 case QEvent::MouseMove:
400 case QEvent::TabletMove: {
401 QWidget *widget = static_cast<QWidget*>(object);
402
403 if (!widget->hasFocus()) {
404 const int delay =
407
410 }
411 }
412 break;
413 default:
414 break;
415 }
416 }
417 return QObject::eventFilter(object, event);
418}
void setDelayThreshold(int delay, int cancelDelay=-1)
#define KIS_SAFE_ASSERT_RECOVER_BREAK(cond)