Changeset 28902 in webkit


Ignore:
Timestamp:
Dec 20, 2007 1:06:54 PM (16 years ago)
Author:
kdecker@apple.com
Message:

Reviewed by Anders.


Fixed: <rdar://problem/5638288> REGRESSION: Flash movies show up in other tabs above the page (16373)

  • Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView updateAndSetWindow]): QuickDraw plug-ins must manually be told when to stop writing to the window backing store. The problem was that change-set 28400 introduced an early return which prevented this necessary operation. The fix is to limit the scope of the early return to CG and GL plug-ins and to tweak the needsFocus check to prevent an exception from occurring in QuickDraw-based plug-ins.
Location:
trunk/WebKit/mac
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/mac/ChangeLog

    r28884 r28902  
     12007-12-20  Kevin Decker  <kdecker@apple.com>
     2
     3        Reviewed by Anders.
     4       
     5        Fixed: <rdar://problem/5638288> REGRESSION: Flash movies show up in other tabs above the page (16373)
     6
     7        * Plugins/WebBaseNetscapePluginView.mm:
     8        (-[WebBaseNetscapePluginView updateAndSetWindow]): QuickDraw plug-ins must manually be told when to stop
     9         writing to the window backing store. The problem was that change-set 28400 introduced an early return
     10         which prevented this necessary operation. The fix is to limit the scope of the early return to CG and GL
     11         plug-ins and to tweak the needsFocus check to prevent an exception from occurring in QuickDraw-based plug-ins.
     12
    1132007-12-19  Geoffrey Garen  <ggaren@apple.com>
    214
  • trunk/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm

    r28400 r28902  
    11951195    // A plug-in can only update if it's (1) already been started (2) isn't stopped
    11961196    // and (3) is able to draw on-screen. To meet condition (3) the plug-in must not
    1197     // be hidden and be attached to a window.
    1198     if (!isStarted || ![self canDraw])
     1197    // be hidden and be attached to a window. QuickDraw plug-ins are an important
     1198    // excpetion to rule (3) because they manually must be told when to stop writing
     1199    // bits to the window backing store, thus to do so requires a new call to
     1200    // NPP_SetWindow() with an empty NPWindow struct.
     1201    if (!isStarted)
    11991202        return;
    1200 
    1201     BOOL needsFocus = [NSView focusView] != self;
     1203    if ((drawingModel == NPDrawingModelCoreGraphics || drawingModel == NPDrawingModelOpenGL)  && ![self canDraw])
     1204        return;
     1205   
     1206    BOOL needsFocus = [self window] && ([NSView focusView] != self);
    12021207    if (needsFocus)
    1203         [self lockFocus];   
     1208        [self lockFocus];
     1209
    12041210    PortState portState = [self saveAndSetNewPortState];
    12051211    if (portState) {
     
    12071213        [self restorePortState:portState];
    12081214        free(portState);
    1209     }
     1215    }   
    12101216    if (needsFocus)
    12111217        [self unlockFocus];
Note: See TracChangeset for help on using the changeset viewer.