Fixed an issue with potential invalid ID passed to Create, and once again updated the logic for browser sizing.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
// For compilers that support precompilation, includes "wx.h".
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
|
#include "wx/splitter.h"
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
@@ -145,7 +146,7 @@ bool wxWebKitCtrl::Create(wxWindow *parent,
|
|||||||
SetInitialFrameRect(pos,sizeInstance);
|
SetInitialFrameRect(pos,sizeInstance);
|
||||||
#else
|
#else
|
||||||
m_macIsUserPane = false;
|
m_macIsUserPane = false;
|
||||||
wxControl::Create(parent, m_windowID, pos, size, style , validator , name);
|
wxControl::Create(parent, winID, pos, size, style , validator , name);
|
||||||
m_peer = new wxMacControl(this);
|
m_peer = new wxMacControl(this);
|
||||||
WebInitForCarbon();
|
WebInitForCarbon();
|
||||||
HIWebViewCreate( m_peer->GetControlRefAddr() );
|
HIWebViewCreate( m_peer->GetControlRefAddr() );
|
||||||
@@ -284,8 +285,32 @@ void wxWebKitCtrl::OnSize(wxSizeEvent &event){
|
|||||||
|
|
||||||
while(parent != NULL)
|
while(parent != NULL)
|
||||||
{
|
{
|
||||||
if ( parent->GetClassInfo()->GetClassName() == wxT("wxSplitterWindow") ){
|
if ( parent->IsKindOf( CLASSINFO( wxSplitterWindow ) ) && GetParent()->IsKindOf( CLASSINFO( wxSplitterWindow ) ) ){
|
||||||
//do nothing in this case
|
// When parent is not a wxSplitterWindow, we can rely on it's GetPosition() to give us the correct
|
||||||
|
// coordinates, but when the parent is a wxSplitterWindow, we need to manually calculate
|
||||||
|
// the sash position of it and any parent wxSplitterWindows into the webkit's position.
|
||||||
|
wxSplitterWindow* splitter;
|
||||||
|
splitter = dynamic_cast<wxSplitterWindow*>(parent);
|
||||||
|
if (splitter->GetSplitMode() == wxSPLIT_HORIZONTAL){
|
||||||
|
if (splitter->GetPosition().y > 0)
|
||||||
|
y += splitter->GetPosition().y;
|
||||||
|
|
||||||
|
if (splitter->GetSashSize() > 0)
|
||||||
|
y += splitter->GetSashSize();
|
||||||
|
|
||||||
|
if (splitter->GetSashPosition() > 0)
|
||||||
|
y += splitter->GetSashPosition();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (splitter->GetPosition().x > 0)
|
||||||
|
x += splitter->GetPosition().x;
|
||||||
|
|
||||||
|
if (splitter->GetSashSize() > 0)
|
||||||
|
x += splitter->GetSashSize();
|
||||||
|
|
||||||
|
if (splitter->GetSashPosition() > 0)
|
||||||
|
x += splitter->GetSashPosition();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if (!parent->IsTopLevel()) {
|
if (!parent->IsTopLevel()) {
|
||||||
@@ -321,7 +346,7 @@ void wxWebKitCtrl::OnSize(wxSizeEvent &event){
|
|||||||
|
|
||||||
if ( parent->IsKindOf( CLASSINFO( wxNotebook ) ) ){
|
if ( parent->IsKindOf( CLASSINFO( wxNotebook ) ) ){
|
||||||
//Not sure why calcs are off in this one scenario...
|
//Not sure why calcs are off in this one scenario...
|
||||||
x -= 3;
|
y -= 4;
|
||||||
//printf("x: %d, y:%d\n", x, y);
|
//printf("x: %d, y:%d\n", x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user