~mir-team/qtmir/trunk

« back to all changes in this revision

Viewing changes to src/platforms/mirserver/qteventfeeder.cpp

  • Committer: Nick Dedekind
  • Date: 2015-09-01 16:16:47 UTC
  • mto: (381.1.6 wheelEvent)
  • mto: This revision was merged to the branch mainline in revision 395.
  • Revision ID: nick.dedekind@canonical.com-20150901161647-829z580lczgu0i1l
touch events tracepoints

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
#include "qteventfeeder.h"
18
18
#include "logging.h"
 
19
#include "timestamp.h"
 
20
#include "tracepoints.h" // generated from tracepoints.tp
19
21
 
20
22
#include <qpa/qplatforminputcontext.h>
21
23
#include <qpa/qplatformintegration.h>
511
513
    if (!mQtWindowSystem->hasTargetWindow())
512
514
        return;
513
515
 
514
 
    auto timestamp = mir_input_event_get_event_time(ev) / 1000000;
 
516
    auto timestamp = qtmir::compressTimestamp(mir_input_event_get_event_time(ev));
515
517
 
516
518
    auto pev = mir_input_event_get_pointer_event(ev);
517
519
    auto modifiers = getQtModifiersFromMir(mir_pointer_event_modifiers(pev));
529
531
    if (!mQtWindowSystem->hasTargetWindow())
530
532
        return;
531
533
 
532
 
    ulong timestamp = mir_input_event_get_event_time(event) / 1000000;
 
534
    auto timestamp = qtmir::compressTimestamp(mir_input_event_get_event_time(event));
533
535
 
534
536
    auto kev = mir_input_event_get_keyboard_event(event);
535
537
    xkb_keysym_t xk_sym = mir_keyboard_event_key_code(kev);
586
588
    if (!mQtWindowSystem->hasTargetWindow())
587
589
        return;
588
590
 
 
591
    qint64 timestamp = mir_input_event_get_event_time(event);
 
592
 
 
593
    tracepoint(qtmirserver, touchEventDisptach_start, timestamp);
 
594
 
589
595
    auto tev = mir_input_event_get_touch_event(event);
590
596
    qCDebug(QTMIR_MIR_INPUT) << "Received" << qPrintable(mirTouchEventToString(tev));
591
597
 
629
635
        touchPoints.append(touchPoint);
630
636
    }
631
637
 
 
638
    auto compressedTimestamp = qtmir::compressTimestamp(timestamp);
 
639
 
632
640
    // Qt needs a happy, sane stream of touch events. So let's make sure we're not forwarding
633
641
    // any insanity.
634
 
    validateTouches(mir_input_event_get_event_time(event) / 1000000, touchPoints);
 
642
    validateTouches(compressedTimestamp, touchPoints);
635
643
 
636
644
    // Touch event propagation.
637
645
    qCDebug(QTMIR_MIR_INPUT) << "Sending to Qt" << qPrintable(touchesToString(touchPoints));
638
646
    mQtWindowSystem->handleTouchEvent(
639
647
        //scales down the nsec_t (int64) to fit a ulong, precision lost but time difference suitable
640
 
        mir_input_event_get_event_time(event) / 1000000,
 
648
        compressedTimestamp,
641
649
        mTouchDevice,
642
650
        touchPoints);
 
651
 
 
652
    tracepoint(qtmirserver, touchEventDisptach_end, timestamp);
643
653
}
644
654
 
645
655
void QtEventFeeder::start()