Skip to content

Commit fb32587

Browse files
committed
Merge pull request #618 from Octopus-ITSM/fix_553b
fix #553 by handling Initial resize and OnSizeChanged
2 parents 7dd065e + b72f3b7 commit fb32587

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

CefSharp.Core/ManagedCefBrowserAdapter.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -481,16 +481,10 @@ namespace CefSharp
481481
*(CefBrowserSettings*)browserSettings->_internalBrowserSettings, NULL);
482482
}
483483

484-
void OnPaint(IntPtr^ sourceHandle)
484+
void Resize(int width, int height)
485485
{
486-
HWND hWnd = static_cast<HWND>(sourceHandle->ToPointer());
487-
RECT rect;
488-
GetClientRect(hWnd, &rect);
489-
HDWP hdwp = BeginDeferWindowPos(1);
490-
491486
HWND browserHwnd = _renderClientAdapter->GetBrowserHwnd();
492-
hdwp = DeferWindowPos(hdwp, browserHwnd, NULL, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER);
493-
EndDeferWindowPos(hdwp);
487+
SetWindowPos(browserHwnd, NULL, 0, 0, width, height, SWP_NOZORDER);
494488
}
495489

496490
void RegisterJsObject(String^ name, Object^ object)

CefSharp.WinForms.Example/BrowserForm.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ private void AddTab(string url, int? insertIndex = null)
4040
{
4141
Dock = DockStyle.Fill
4242
};
43-
43+
44+
//This call isn't required for the sample to work.
45+
//It's sole purpose is to demonstrate that #553 has been resolved.
46+
browser.CreateControl();
47+
4448
tabPage.Controls.Add(browser);
4549

4650
if (insertIndex == null)

CefSharp.WinForms/ChromiumWebBrowser.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,11 @@ public ChromiumWebBrowser(string address)
5353
Cef.AddDisposable(this);
5454
Address = address;
5555

56-
Paint += OnPaint;
57-
58-
//Redraw on Resize so Cef is notified and updates accordingly
59-
SetStyle(ControlStyles.ResizeRedraw, true);
60-
6156
Dock = DockStyle.Fill;
6257
}
6358

6459
protected override void Dispose(bool disposing)
6560
{
66-
Paint -= OnPaint;
67-
6861
Cef.RemoveDisposable(this);
6962

7063
if (disposing)
@@ -82,6 +75,8 @@ void IWebBrowserInternal.OnInitialized()
8275
{
8376
IsBrowserInitialized = true;
8477

78+
ResizeBrowser();
79+
8580
var handler = IsBrowserInitializedChanged;
8681

8782
if (handler != null)
@@ -349,12 +344,20 @@ public Task<string> GetTextAsync()
349344
return taskStringVisitor.Task;
350345
}
351346

352-
private void OnPaint(object sender, PaintEventArgs e)
347+
protected override void OnSizeChanged(EventArgs e)
348+
{
349+
base.OnSizeChanged(e);
350+
if (managedCefBrowserAdapter != null)
351+
{
352+
ResizeBrowser();
353+
}
354+
}
355+
356+
private void ResizeBrowser()
353357
{
354-
// Size is 0x0 when we are on a modeless Form which is minimized.
355-
if (!Size.IsEmpty && managedCefBrowserAdapter != null)
358+
if (IsBrowserInitialized)
356359
{
357-
managedCefBrowserAdapter.OnPaint(Handle);
360+
managedCefBrowserAdapter.Resize(Width, Height);
358361
}
359362
}
360363
}

0 commit comments

Comments
 (0)