summaryrefslogtreecommitdiffstats
path: root/chrome/views/views.vcproj
diff options
context:
space:
mode:
authordeanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-09 20:05:26 +0000
committerdeanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-09 20:05:26 +0000
commitb595ba77947ee0881ae8ce16ee92b47d1c48f10a (patch)
tree3a7961e315229ec247fdb3f520d2aeb8034eb2d7 /chrome/views/views.vcproj
parent977471dac3b804a8a2408586c5e76f592b87b219 (diff)
downloadchromium_src-b595ba77947ee0881ae8ce16ee92b47d1c48f10a.zip
chromium_src-b595ba77947ee0881ae8ce16ee92b47d1c48f10a.tar.gz
chromium_src-b595ba77947ee0881ae8ce16ee92b47d1c48f10a.tar.bz2
This changes the approach for our webkit widget area, from using a custom GtkContainer to a GtkFixed container.
Our previous custom container did not track its children, which meant it couldn't propagate size-request and size-allocate. In some ways this is what we wanted, however it prevented GtkSocket from running some important code. Specifically an expose event wouldn't trigger initially on the GtkSocket, leaving the widget window unpainted. Instead of writing / copying container code to manage children, it is much easier if we can reuse an existing container. This changes makes the drawing area a GtkFixed backed by a GdkWindow, and we paint into its window. We implement a small custom widget around GtkSocket, which allows us to control the size requisition phase. This solves the problem of controlling the GtkSocket layout within the container. Plugins are now painted correctly, without having to jiggle the scrollbar. This change additionally groups all of the widget code in a class of statics. GtkFixedSocket implements the GtkSocket with custom size requisition. WebWidgetHostGtkWidget is just a GtkFixed with a window, along with the signal connection handlers. This also means we'll have no custom container implementation to share across test_shell and the browser. It seems we still don't handle keyboard focus exactly right, and youtube videos still need mouse events to repaint. I believe these are subtle issues, and can be solved while keeping the GtkFixed container approach. Review URL: http://codereview.chromium.org/20128 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9407 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views/views.vcproj')
0 files changed, 0 insertions, 0 deletions