Commit Graph
36 Commits
Author SHA1 Message Date
Brad Werth e8fc3af8ac Bug 1764201 Part 1: Make widget::Screen track if the screen is HDR capable. r=geckoview-reviewers,ahale,m_kato
This duplicates existing HDR checks in gfxPlatformMac and
gfxWindowsPlatform. A later part of this patch series will remove that
redundant code, as it replaces calls to gfxPlatform functions with calls
to ScreenManager functions.

Differential Revision: https://phabricator.services.mozilla.com/D203670
2024-03-22 00:55:46 +00:00
Sandor Molnar 938c7c0e0d Backed out 3 changesets (bug 1764201) for causing multiple failures, including build bustages @ widget/windows/ScreenHelperWin.cpp CLOSED TREE
Backed out changeset ea6921c88429 (bug 1764201)
Backed out changeset ff751c2ce8ef (bug 1764201)
Backed out changeset 2d21d14a2df3 (bug 1764201)
2024-03-19 17:12:40 +02:00
Brad Werth 654c74bb8d Bug 1764201 Part 1: Make widget::Screen track if the screen is HDR capable. r=geckoview-reviewers,ahale,m_kato
This duplicates existing HDR checks in gfxPlatformMac and
gfxWindowsPlatform. A later part of this patch series will remove that
redundant code, as it replaces calls to gfxPlatform functions with calls
to ScreenManager functions.

Differential Revision: https://phabricator.services.mozilla.com/D203670
2024-03-19 13:52:31 +00:00
Makoto Kato b05e6c0ce4 Bug 1812938 - Part 1. GetWidgetScreen returns Screen instead of nsIScreen. r=emilio,geckoview-reviewers,owlish
`nsIWidget` isn't scriptable, so it is unnecessary to return `nsIScreen` for
`GetWidgetScreen`.

Differential Revision: https://phabricator.services.mozilla.com/D168029
2023-02-06 04:51:26 +00:00
Emilio Cobos Álvarez de04902104 Bug 1767172 - Remove custom screen info handling from GfxInfo, use ScreenManager for that. r=jrmuizel,handyman,stransky
This removes a bunch of custom code from GfxInfo to obtain screen
information, and instead collects that screen information in
ScreenManager.

This, apart of removing duplicated code, has the extra benefit of
reporting multi-monitor information on GTK (and potentially in the
future reporting scale and refresh rate properly as well, I've kept the
telemetry as it was on that regard).

Differential Revision: https://phabricator.services.mozilla.com/D145178
2022-05-06 23:37:25 +00:00
Cosmin Sabou 0eb9f934ae Backed out changeset b2bea8e0b400 (bug 1767172) for causing startup crashes (Bug 1768260). a=backout 2022-05-07 01:28:53 +03:00
Emilio Cobos Álvarez 6d48fc3fcb Bug 1767172 - Remove custom screen info handling from GfxInfo, use ScreenManager for that. r=jrmuizel,handyman,stransky
This removes a bunch of custom code from GfxInfo to obtain screen
information, and instead collects that screen information in
ScreenManager.

This, apart of removing duplicated code, has the extra benefit of
reporting multi-monitor information on GTK (and potentially in the
future reporting scale and refresh rate properly as well, I've kept the
telemetry as it was on that regard).

Differential Revision: https://phabricator.services.mozilla.com/D145178
2022-05-05 15:07:03 +00:00
Emilio Cobos Álvarez 3a87dd940a Bug 1763184 - Clean-up some GTK screen code. r=stransky
Clean up logging and remove some useless namespacing.

Differential Revision: https://phabricator.services.mozilla.com/D142963
2022-04-06 10:08:58 +00:00
Emilio Cobos Álvarez f7c36a8d26 Bug 1754858 - Simplify screen orientation API implementation. r=smaug,m_kato,geckoview-reviewers
Make the ScreenOrientation part of the screen struct, as it should. Stop
using HAL to propagate just screen orientation updates, use the more
general screen manager.

Instead of HAL observers, add a simple observer service notification,
and clean a bunch of the code.

This will simplify bug 1754802 a bit, and is generally simpler.
Shouldn't change behavior. I've tested the events and some common
orientation locking use cases like Youtube, and they behave the same.

Differential Revision: https://phabricator.services.mozilla.com/D138477
2022-02-15 20:22:54 +00:00
Makoto Kato 089263ad33 Bug 1747677 - Add utility method to convert to ScreenConfiguration. r=gsvelto,geckoview-reviewers,calu
Gecko uses the redundant code from nsIScreen to SCreenConfiguration. So we
should add a convert method for newer platform implementations.

Differential Revision: https://phabricator.services.mozilla.com/D134698
2021-12-30 05:09:40 +00:00
Makoto Kato d27a3de135 Bug 1700370 - Don't use ScreenManager after shutdown phase is started. r=gsvelto
When terminating Firefox, if OS notifies screen change, Firefox seems to crash
according to crash data.

So we should consider this situation.

Differential Revision: https://phabricator.services.mozilla.com/D133058
2021-12-09 12:13:28 +00:00
Jan Alexander Steffens (heftig) 9354866f9f Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky
Using `dlsym` for `gdk_wayland_display_get_type` is a cleaner solution
to bug 1696319, allowing running with a GTK that lacks the Wayland
backend.

Also adds a symmetric implementation for `gdk_x11_display_get_type`,
which should help running without X11.

Differential Revision: https://phabricator.services.mozilla.com/D107406
2021-03-11 14:32:53 +00:00
Narcis Beleuzu 7cd3bb34b4 Backed out changeset a4f4f640eaa7 (bug 1696845) for bustages on pangofc-fontmap.h 2021-03-10 04:49:51 +02:00
Jan Alexander Steffens (heftig) 0b6c0281d2 Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky
Using `dlsym` for `gdk_wayland_display_get_type` is a cleaner solution
to bug 1696319, allowing running with a GTK that lacks the Wayland
backend.

Also adds a symmetric implementation for `gdk_x11_display_get_type`,
which should help running without X11.

Differential Revision: https://phabricator.services.mozilla.com/D107406
2021-03-09 22:55:47 +00:00
Martin Stransky 5cf13c2ab3 Bug 1654775 [Wayland] Don't flood console with 'Getting screen in wayland, primary display will be returned', r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D85257
2020-08-05 07:43:54 +00:00
Simon Giesecke 1ee0a47195 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in widget. r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D66012
2020-03-16 10:56:57 +00:00
Bogdan Tara 22b0fa7e80 Backed out 4 changesets (bug 1613985) for causing build bustages CLOSED TREE
Backed out changeset fba0caac746c (bug 1613985)
Backed out changeset 8605d7a19107 (bug 1613985)
Backed out changeset 41e858fbf235 (bug 1613985)
Backed out changeset 847433cf1e0a (bug 1613985)
2020-03-16 12:41:41 +02:00
Simon Giesecke 36f6c9d797 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in widget. r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D66012
2020-03-16 09:14:12 +00:00
Sylvestre Ledru 3a389404c5 Bug 1605934 - Use nested namespaces r=sg
Done with:
./mach static-analysis check --checks="-*, modernize-concat-nested-namespaces" --fix .
and then clang-format on the files

Differential Revision: https://phabricator.services.mozilla.com/D58217
2020-01-18 13:48:34 +00:00
Dorel Luca 8cc61e1d4b Backed out changeset bbb39655cf71 (bug 1605934) for build bustage in widget/gtk/mozwayland/mozwayland.c 2020-01-18 15:39:55 +02:00
Sylvestre Ledru 8cc3e9bf3f Bug 1605934 - Use nested namespaces r=sg
Done with:
./mach static-analysis check --checks="-*, modernize-concat-nested-namespaces" --fix .
and then clang-format on the files

Differential Revision: https://phabricator.services.mozilla.com/D58217
2020-01-18 13:16:39 +00:00
Jan Horak 8ea9360242 Bug 1589601 - Return the fallback to primary monitor on Wayland to not break PIP; r=stransky
Differential Revision: https://phabricator.services.mozilla.com/D51600
2019-11-05 08:14:18 +00:00
Jan Horak 990296a4c9 Bug 1589541 Don't consider headless display as wayland; r=stransky
This fixes the related test failures.

Differential Revision: https://phabricator.services.mozilla.com/D49744
2019-10-18 13:56:44 +00:00
Jan Horak e9ad02ca34 Bug 1565401 - return valid screen size on multimonitor setup under Wayland; r=stransky,NeilDeakin
By getting the right screen size we can shrink the popup menus which overflows
the screen size under Wayland. The ScreenManager does not help us, because we
can't get absolute window position, but we can use gdk_display_get_monitor_at_window
and gdk_monitor_get_workarea to get the correct screen rectangle.

Differential Revision: https://phabricator.services.mozilla.com/D49289
2019-10-17 11:27:08 +00:00
Cosmin Sabou 2de4fb1c31 Backed out changeset 23e9fe8a919b (bug 1565401) for causing build bustages on nsWindow.h. CLOSED TREE 2019-10-16 18:45:09 +03:00
Jan Horak 2108f9372b Bug 1565401 - return valid screen size on multimonitor setup under Wayland; r=stransky,NeilDeakin
By getting the right screen size we can shrink the popup menus which overflows
the screen size under Wayland. The ScreenManager does not help us, because we
can't get absolute window position, but we can use gdk_display_get_monitor_at_window
and gdk_monitor_get_workarea to get the correct screen rectangle.

Differential Revision: https://phabricator.services.mozilla.com/D49289
2019-10-16 13:03:43 +00:00
Andrew Osmond 516fb80b00 Bug 1581606 - Consider all screens when deciding to turn on WebRender. r=jrmuizel
Before this patch, we only considered the primary screen when deciding
whether or not WebRender should be enabled. This is problematic for
Intel users where we don't want to turn on WebRender for large screens;
several small screens are just as bad as one large screen. Now we sum
the pixel count for all the screens when making this decision.

Differential Revision: https://phabricator.services.mozilla.com/D46066
2019-10-02 18:48:11 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Emilio Cobos Álvarez 4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Milan Sreckovic 1a108fed6c Bug 1423559: Use BaseRect access methods instead of member variables in widget/ r=mstange
MozReview-Commit-ID: AqnztoUbsmk
2018-01-10 11:14:16 -05:00
Jonathan Watt 90b6f15254 Bug 1413217 - Fix some includes etc. in widget code. r=jimm
MozReview-Commit-ID: 8bW6WIPMun4
2017-10-12 17:03:35 +01:00
Samael Wang af1d75a350 Bug 1350643 - Part 3: Add GetDPI to nsIScreen & ScreenDetails. r=kanru
MozReview-Commit-ID: HEFyuYV26Wy
2017-06-06 18:09:34 +08:00
Masatoshi Kimura 090b0af302 Bug 1363055 - Find a nearest screen if no screen overlaps. r=kanru
MozReview-Commit-ID: 8BCcVmTC96W
2017-05-17 23:30:05 +09:00
Masatoshi Kimura d79bff15ab Bug 1356023 - Remove nsIScreenManager.systemDefaultScale. r=jfkthame
MozReview-Commit-ID: 6Ha8XrJBSiU
2017-04-13 07:20:35 +09:00
Kan-Ru Chen f338a740fd Bug 1194751 - Part 6. Use mozilla::widget::ScreenManager in content process. r=mconley
This is the most important part of the patch series. It removes the
PScreenManager protocol and use ScreenManager directly in the content
processes.

Initial and subsequent updates are sent via PContent::RefreshScreens.
struct ScreenDetails are kept to serialize Screen over IPC.

nsIScreenManager::ScreenForNativeWidget is removed because
nsIWidget::GetWidgetScreen can replace it. nsIScreen::GetId is removed
because it's not useful for the more general Screen class.

MozReview-Commit-ID: 5dJO3isgBuQ
2017-03-09 19:30:26 +08:00
Kan-Ru Chen afb599ef1b Bug 1194751 - Part 4. Add ScreenManager and Screen classes. r=jimm,karlt,mconley
ScreenManager takes the common parts of ScreenManagerWin,
ScreenManagerGtk and ScreenManagerCocoa. It caches all screen
information in the new Screen class. The cache are updated when the OS
notifies there is a monitor config change; all changes will be pushed to
content processes via PContent (patch part 6.)

Screen is a pure data object. All platform dependent logic will be in
widget specific helper classes.

Each process will have a singleton ScreenManager object. Widget
specific helper object is held alive by the ScreenManager when
necessary, for example to receive updates from the OS.

The change to to VsyncDispatcher.cpp is due to unified-build bustage.

ScreenManager::ScreenForNativeWidget is not implemented because it
will be removed in patch part 6.

MozReview-Commit-ID: 5ezytAXSqHp
***
fixup

MozReview-Commit-ID: DQtq3UVZytA
2017-03-14 18:44:54 +08:00