Files
platform-external-webrtc/modules/desktop_capture
Bryan Ferguson e08ca23ec9 Include overlapping dialogs when capturing a window via screen cropping
This change includes windows owned by the primary captured window in the
captured frames if these conditions are met:
1) The owned window (e.g. dialog) overlaps the primary window (in whole
or part)
2) The primary window is otherwise eligible for the crop-from-screen
path (CroppingWindowCapturer is being used, and other conditions in
ShouldUseScreenCapturer are met)

In practice, this means that dialog windows / message boxes are captured
in many cases where they aren't today. This seems beneficial to some
scenarios (e.g. demonstrating / recording how to do something, or
requesting help with something, that involves dialogs).

This is a logical revert of a change for https://crbug.com/webrtc/8062 .
There's some commentary in the newer bug that attempts to make a case
for revisiting that change. (In summary: cases where a dialog would be
substantialy clipped / partial seem relatively uncommon and have
workarounds. Clipping may already occur for menus & tooltips. Clipping
seems less surprising than complete absence.)

Changing the GA_ROOT flag back to GA_ROOTOWNER is sufficient to restore
the older behavior. The removal of the EnumChildWindows call is just a
minor optimization (it was unnecessary/superfluous, since every child
window would match the GA_ROOT check; dialogs are owned root windows,
not child windows).

Removing condition (2) above (capturing dialogs & other related
overlapping windows when not using the crop-from-screen path) is tracked
by https://crbug.com/980864 .

Bug: webrtc:10767
Change-Id: If7b418365685a7b96dc93901ef9367844f9ee99e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147421
Commit-Queue: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#28711}
2019-07-30 23:54:50 +00:00
..
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2019-02-20 16:02:59 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00
2018-06-19 14:00:39 +00:00
2018-06-19 14:00:39 +00:00
2019-07-08 13:45:15 +00:00
2018-06-19 14:00:39 +00:00