Bug 37419 - [Haiku] Fix bridging Widget to native top-level BView.
Summary: [Haiku] Fix bridging Widget to native top-level BView.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Other
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-11 15:45 PDT by Stephan Aßmus
Modified: 2010-04-13 10:20 PDT (History)
2 users (show)

See Also:


Attachments
[Haiku] Fix bridging to top-level platform widget. (7.80 KB, patch)
2010-04-11 15:46 PDT, Stephan Aßmus
no flags Details | Formatted Diff | Diff
[Haiku] Fix bridging to top-level platform widget. (7.99 KB, patch)
2010-04-11 16:45 PDT, Stephan Aßmus
levin: review-
Details | Formatted Diff | Diff
[Haiku] Fix bridging to top-level platform widget. (7.99 KB, patch)
2010-04-13 08:47 PDT, Stephan Aßmus
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stephan Aßmus 2010-04-11 15:45:04 PDT
In the Haiku port, there is no mapping between native widgets and WebCore Widget instances. There is only a top-level BView which renders a web page into a bitmap. For certain WebCore widget functionality, we need to access this BView, like for setting the current cursor or forcing focus. On the other hand, setting a platform widget pointer on Widget results into completely different behavior, like ScrollView tries to forward everything instead of handling stuff itself. To make this work, the pointer to a "top-level" BView is stored in every Widget for the Haiku port.
Comment 1 Stephan Aßmus 2010-04-11 15:46:14 PDT
Created attachment 53115 [details]
[Haiku] Fix bridging to top-level platform widget.
Comment 2 WebKit Review Bot 2010-04-11 15:50:43 PDT
Attachment 53115 [details] did not pass style-queue:

Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1
WebCore/platform/haiku/WidgetHaiku.cpp:43:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:44:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:49:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:50:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:55:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:100:  Tab found; better to use spaces  [whitespace/tab] [1]
WebCore/platform/haiku/WidgetHaiku.cpp:111:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 7 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Stephan Aßmus 2010-04-11 16:45:25 PDT
Created attachment 53118 [details]
[Haiku] Fix bridging to top-level platform widget.

Sorry about the tabs. Got confused which files I already ran check-webkit-style on...
Comment 4 David Levin 2010-04-13 08:15:07 PDT
Comment on attachment 53118 [details]
[Haiku] Fix bridging to top-level platform widget.

> Index: WebCore/platform/haiku/WidgetHaiku.cpp
> +        if (!m_widget || m_widget->LockLooperWithTimeout(5000) != B_OK)
> +           m_widget = 0;

Your indent is off by one here.
Comment 5 Stephan Aßmus 2010-04-13 08:47:26 PDT
Created attachment 53256 [details]
[Haiku] Fix bridging to top-level platform widget.

Fixed the patch in place (and looked for similar problems).
Comment 6 WebKit Commit Bot 2010-04-13 10:20:51 PDT
Comment on attachment 53256 [details]
[Haiku] Fix bridging to top-level platform widget.

Clearing flags on attachment: 53256

Committed r57521: <http://trac.webkit.org/changeset/57521>
Comment 7 WebKit Commit Bot 2010-04-13 10:20:56 PDT
All reviewed patches have been landed.  Closing bug.