Modify

Opened 11 years ago

Closed 11 years ago

#96 closed Bug (No Bug)

Display problems with 2 embedded WebBrowser objects in GUI

Reported by: DaleHohm Owned by:
Milestone: Component: AutoIt
Version: 3.2.11.0 Severity:
Keywords: Cc:

Description

When 2 WebBrowser controls are embedded in a GUI and are sequentially updated, the content of the first becomes invisible when the second is updated. Visibility is restored by occlude/expose, content selection or minimize/restore.

Tested on: AutoIt 3.2.10.0 and 3.2.11.0 beta, Windows XP SP2

Note: Similar issues have been reported previously involving GUI Tabs and having embedded browsers on multiple tabs. The people experiencing this issue did not create simple reproducers, not log bug reports. A reproducer for this is NOT being presented here, but it is being mentioned in case it adds further clues for isolation and resolution.

Issue reported in the forum by Romm here:
http://www.autoitscript.com/forum/index.php?showtopic=63391&st=0&gopid=473052&#entry473052

Reproducer code:

#include <GUIConstants.au3>

; Create two WebBrowser controls to embed
$oIE1 = ObjCreate("Shell.Explorer.2")
$oIE2 = ObjCreate("Shell.Explorer.2")

; Setup the parent GUI and embed the controls
$hwnd = GUICreate("Embedded Web control Test", 1200, 700)
$GUIActiveX1 = GUICtrlCreateObj($oIE2, 980, 1, 100, 600)
$GUIActiveX2 = GUICtrlCreateObj($oIE1, 1, 1, 970, 660)

GUISetState()     ;Show GUI

; Update first control
$oIE1.navigate("http://www.autoitscript.com")
; Wait for document object to be created
While Not IsObj($oIE1.document)
	Sleep(100)
WEnd
; Wait for document load to complete
While $oIE1.document.readyState <> "complete"
	Sleep(100)
WEnd

; Update second control
$oIE2.navigate("http://www.autoitscript.com")
; Wait for document object to be created
While Not IsObj($oIE2.document)
	Sleep(100)
WEnd
; Wait for document load to complete
While $oIE2.document.readyState <> "complete"
	Sleep(100)
WEnd

; When the second control is updated, the content in the first control becomes invisible.
; If occluding and exposing the first control with another window, dragging accross it with Mouse-button 1
; or minimizing and restoring the full window causes it to display properly.
;
; Wait 5 seconds, then minimize and restore the window to demonstrate the fact that the
; content in control 1 suddenly becomes visible
;
Sleep(5000)

WinSetState($hwnd, "", @SW_MINIMIZE)
WinSetState($hwnd, "", @SW_RESTORE)

; Waiting for user to close the window
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
    EndSelect
WEnd

GUIDelete()

Exit

Attachments (0)

Change History (1)

comment:1 Changed 11 years ago by Jpm

  • Resolution set to nobug
  • Status changed from new to closed

Just reread rthe doc, $WS_CLIPCHILDREN is needed

$hwnd = GUICreate("Embedded Web control Test", 1200, 700,-1,-1,BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPCHILDREN))

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

Action
as closed The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.