340{
342 switch (event->type()) {
343 case QEvent::FocusIn: {
344 QFocusEvent *fevent = static_cast<QFocusEvent*>(event);
346
347
348
350
353 }
354
357
359
360 object->removeEventFilter(this);
361 object->installEventFilter(this);
362
365
366 const QPoint globalPos = QCursor::pos();
367 const QPoint localPos =
d->
canvas->canvasWidget()->mapFromGlobal(globalPos);
368 QWidget *canvasWindow =
d->
canvas->canvasWidget()->window();
369 const QPoint windowsPos = canvasWindow ? canvasWindow->mapFromGlobal(globalPos) : localPos;
370
371 QEnterEvent event(localPos, windowsPos, globalPos);
373 break;
374 }
375 case QEvent::FocusOut: {
377 break;
378 }
379 case QEvent::Enter: {
380 break;
381 }
382 case QEvent::Leave: {
384 break;
385 }
386 case QEvent::Wheel: {
387 QWidget *widget = static_cast<QWidget*>(object);
388 widget->setFocus();
389 break;
390 }
391 case QEvent::MouseButtonPress:
392 case QEvent::MouseButtonRelease:
393 case QEvent::TabletPress:
394 case QEvent::TabletRelease:
396
399 return true;
400 }
401 break;
402 case QEvent::MouseButtonDblClick:
405 return true;
406 }
407 break;
408 case QEvent::MouseMove:
409 case QEvent::TabletMove: {
410 QWidget *widget = static_cast<QWidget*>(object);
411
412 if (!widget->hasFocus()) {
413 const int delay =
416
419 }
420 }
421 break;
422 default:
423 break;
424 }
425 }
426 return QObject::eventFilter(object, event);
427}
void setDelayThreshold(int delay, int cancelDelay=-1)
#define KIS_SAFE_ASSERT_RECOVER_BREAK(cond)