Changeset 57403 in webkit


Ignore:
Timestamp:
Apr 9, 2010 7:59:27 PM (14 years ago)
Author:
eric@webkit.org
Message:

2010-04-09 Jer Noble <jer.noble@apple.com>

Reviewed by Darin Adler.

Work around QTMovieView bug (<rdar://problem/7712713>) by using a QTMovieLayer instead.
https://bugs.webkit.org/show_bug.cgi?id=37311 / <rdar://problem/7749993>

  • WebView/WebVideoFullscreenController.mm: (-[WebVideoFullscreenController windowDidLoad]): (-[WebVideoFullscreenController setMediaElement:WebCore::]):
Location:
trunk/WebKit/mac
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/mac/ChangeLog

    r57373 r57403  
     12010-04-09  Jer Noble  <jer.noble@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Work around QTMovieView bug (<rdar://problem/7712713>) by using a QTMovieLayer instead.
     6        https://bugs.webkit.org/show_bug.cgi?id=37311 / <rdar://problem/7749993>
     7
     8        * WebView/WebVideoFullscreenController.mm:
     9        (-[WebVideoFullscreenController windowDidLoad]):
     10        (-[WebVideoFullscreenController setMediaElement:WebCore::]):
     11
    1122010-04-09  Alexey Proskuryakov  <ap@apple.com>
    213
  • trunk/WebKit/mac/WebView/WebVideoFullscreenController.mm

    r57348 r57403  
    3838
    3939SOFT_LINK_FRAMEWORK(QTKit)
    40 SOFT_LINK_CLASS(QTKit, QTMovieView)
     40SOFT_LINK_CLASS(QTKit, QTMovieLayer)
    4141
    4242SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
     
    8686- (void)windowDidLoad
    8787{
     88#ifdef BUILDING_ON_TIGER
     89    // WebVideoFullscreenController is not supported on Tiger:
     90    ASSERT_NOT_REACHED();
     91#else
    8892    WebVideoFullscreenWindow *window = [self fullscreenWindow];
    89     QTMovieView *view = [[getQTMovieViewClass() alloc] init];
    90     [view setFillColor:[NSColor clearColor]];
    91     [window setContentView:view];
    92     [view setControllerVisible:NO];
    93     [view setPreservesAspectRatio:YES];
     93    QTMovieLayer *layer = [[getQTMovieLayerClass() alloc] init];
     94    [[window contentView] setLayer:layer];
     95    [[window contentView] setWantsLayer:YES];
    9496    if (_mediaElement)
    95         [view setMovie:_mediaElement->platformMedia().qtMovie];
     97        [layer setMovie:_mediaElement->platformMedia().qtMovie];
    9698    [window setHasShadow:YES]; // This is nicer with a shadow.
    9799    [window setLevel:NSPopUpMenuWindowLevel-1];
    98     [view release];
     100    [layer release];
     101#endif
    99102}
    100103
     
    106109- (void)setMediaElement:(WebCore::HTMLMediaElement*)mediaElement;
    107110{
     111#ifdef BUILDING_ON_TIGER
     112    // WebVideoFullscreenController is not supported on Tiger:
     113    ASSERT_NOT_REACHED();
     114#else
    108115    _mediaElement = mediaElement;
    109116    if ([self isWindowLoaded]) {
    110         QTMovieView *movieView = (QTMovieView *)[[self fullscreenWindow] contentView];
    111117        QTMovie *movie = _mediaElement->platformMedia().qtMovie;
    112 
    113         ASSERT(movieView && [movieView isKindOfClass:[getQTMovieViewClass() class]]);
     118        QTMovieLayer *movieLayer = (QTMovieLayer *)[[[self fullscreenWindow] contentView] layer];
     119
     120        ASSERT(movieLayer && [movieLayer isKindOfClass:[getQTMovieLayerClass() class]]);
    114121        ASSERT(movie);
    115         [movieView setMovie:movie];
     122        [movieLayer setMovie:movie];
    116123        [[NSNotificationCenter defaultCenter] addObserver:self
    117124                                                 selector:@selector(rateChanged:)
     
    119126                                                   object:movie];
    120127    }
     128#endif
    121129}
    122130
Note: See TracChangeset for help on using the changeset viewer.