Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5 1 new backport x11 fs rework #1485

Merged
merged 11 commits into from Jun 18, 2017
Merged

5 1 new backport x11 fs rework #1485

merged 11 commits into from Jun 18, 2017

Conversation

drewbarbs
Copy link
Contributor

Cherry-pick the relevant commits from master to add X11 multi-monitor fullscreen selection and borderless window support to 5_1-new. Notable impacts:

  • Include c++11 language standard flags from master, since the X11 rework used some c++11 features. Have compiled this changeset on VS2013, XCode/Clang on macOS, GCC 7.1 on Arch Linux, and GCC 4.8 on Ubuntu 14.04
  • Bump CMAKE_OSX_DEPLOYMENT_TARGET to 10.7 from 10.6; as otherwise XCode 8 (and apparently other recent XCode versions, see here) will not allow libc++/c++11 compilation. Have not looked into whether we can use libstdc++ instead. Not sure how big a deal this is, as Lion (10.7) has been out 5 years.

roothorick and others added 11 commits June 17, 2017 12:00
Squash of roothorick's PR #497
(also includes Kyzentun's CMake changes from PR #716)
Implement option to select between monitors for exclusive fullscreen mode
on X11 (using XRandR 1.2), or use a fullscreen borderless window.

Reimplement resolution/refresh rate/display mode-related option rows
using Lua, update choices dynamically so only known-good groupings of
resolution/refresh rate/aspect ratio can be selected.

Minimally update Windows/MacOS LowLevelWindow implementations to support
changes made for Linux side. Fullscreen Borderless Window/multi monitor
support from X11 not implemented for those in this commit.
When libXinerama is available, SM tries to use it to find the proper
monitor indexes to use to set _NET_WM_FULLSCREEN_MONITORS (on borderless
fullscreen). xfwm4 seems to assume that monitors are numbered in increasing
order from left to right (rather than using the Xinerama-assigned numbers),
so _NET_WM_FULLSCREEN_MONITORS misbehaves on Xfce.

This commit bypasses use of libXinerama, and instead forces SM to induce fullscreen
on the desired monitor in the backup, hacky way: remove all window hints, move window
to desired monitor, then add _NET_WM_STATE_FULLSCREEN hint. This works on
mutter and Xfce.
This used to be hard-coded due to pthread related items, but now it's dynamically determined.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants