Merge remote-tracking branch 'origin/release' into stable
Change-Id: Idcaa9b0c63aca5ba11ee3fa2da456178655a1ae3
This commit is contained in:
commit
1b5f9bec03
@ -473,6 +473,39 @@ static QTouchDevice *touchDevice = 0;
|
||||
[self handleMouseEvent:theEvent];
|
||||
}
|
||||
|
||||
- (void)updateTrackingAreas
|
||||
{
|
||||
[super updateTrackingAreas];
|
||||
|
||||
// [NSView addTrackingArea] is slow, so bail out early if we can:
|
||||
if (NSIsEmptyRect([self visibleRect]))
|
||||
return;
|
||||
|
||||
QCocoaAutoReleasePool pool;
|
||||
if (NSArray *trackingArray = [self trackingAreas]) {
|
||||
NSUInteger size = [trackingArray count];
|
||||
for (NSUInteger i = 0; i < size; ++i) {
|
||||
NSTrackingArea *t = [trackingArray objectAtIndex:i];
|
||||
[self removeTrackingArea:t];
|
||||
}
|
||||
}
|
||||
|
||||
// Ideally, we shouldn't have NSTrackingMouseMoved events included below, it should
|
||||
// only be turned on if mouseTracking, hover is on or a tool tip is set.
|
||||
// Unfortunately, Qt will send "tooltip" events on mouse moves, so we need to
|
||||
// turn it on in ALL case. That means EVERY QCocoaView gets to pay the cost of
|
||||
// mouse moves delivered to it (Apple recommends keeping it OFF because there
|
||||
// is a performance hit). So it goes.
|
||||
NSUInteger trackingOptions = NSTrackingMouseEnteredAndExited | NSTrackingActiveInActiveApp
|
||||
| NSTrackingInVisibleRect | NSTrackingMouseMoved;
|
||||
NSTrackingArea *ta = [[[NSTrackingArea alloc] initWithRect:[self frame]
|
||||
options:trackingOptions
|
||||
owner:self
|
||||
userInfo:nil]
|
||||
autorelease];
|
||||
[self addTrackingArea:ta];
|
||||
}
|
||||
|
||||
- (void)mouseMoved:(NSEvent *)theEvent
|
||||
{
|
||||
[self handleMouseEvent:theEvent];
|
||||
|
@ -770,6 +770,7 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
|
||||
HANDLE_PLATFORM_WINDOW_EVENT(xcb_unmap_notify_event_t, event, handleUnmapNotifyEvent);
|
||||
case XCB_CLIENT_MESSAGE:
|
||||
handleClientMessageEvent((xcb_client_message_event_t *)event);
|
||||
break;
|
||||
case XCB_ENTER_NOTIFY:
|
||||
HANDLE_PLATFORM_WINDOW_EVENT(xcb_enter_notify_event_t, event, handleEnterNotifyEvent);
|
||||
case XCB_LEAVE_NOTIFY:
|
||||
|
Loading…
x
Reference in New Issue
Block a user