Webkit / Cocoa window flashing again...

  • I'm really getting tired of this problem, and for a while it was
    fixed, but seems to have broken again recently.

    I have a document based Cocoa application that holds a WebView.  The
    position and size of the window, initially, is a fixed size.  This
    works fine -- the application starts, opens a window, loads a URL, etc.

    However, when another window is opened, in response to a javaScript
    "window.open" call, this is the behaviour:

    1) The new window opens on the screen, in the full size
    2) The window is moved and resized to the correct dimensions
    3) The WebView updates

    This looks terrible, because there's a very evident "flashing" that
    happens.

    If I step into the code with the debugger, there is nothing on screen
    until I make this call:

      [myFrame loadRequest:[NSURLRequest requestWithURL:fileURL]];

    Immediately after that line, when I switch to the paused application,
    I see a full size empty window on the screen.  The resize and
    reposition happens in system code, not accessible.  When I had this
    problem in the past, it didn't appear on this call, so this seems to
    be something new with 10.5.x

    What I want to happen is pretty simple:

    1) At an early point in the load process, I want to put in something
    that says "Never, under any circumstances, show this window until I
    specifically call makeKeyAndOrderFront or do something else manually
    to show the window"
    2) After the WebView has loaded, then, and only then, do I want the
    window to appear.

    Note that this has nothing to do with the "Visible at Launch" flag in
    IB.

    Ideas or suggestions greatly appreciated!

    dale

    --
    a.d. jensen -- <adjensen...>  http://homepage.mac.com/adjensen/

    musical blog:                                  dining blog:
              <A href="http://gcdining.blogspot.com">http://gcdining.blogspot.com
  • Hi Dale

    I have a similar problem with a flashing window - it worked OK in
    Tiger and 10.5 - flashes on 10.5.1 after Radeon firmware upgrade.

    To fix it I found 2 solutions

    1. Make sure that the window that is have trouble redrawing (the
    bottom-most window?) is not a Textured window.

    2. If compiling for 10.5 SDK use
    setPreferredBackingLocation:NSWindowBackingLocationVideoMemory

    In my case the window no longer flashes.

    Does something that work for you too?

    Keith
previous month november 2007 next month
MTWTFSS
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Go to today