557be7cf1b
* Use XRandR 1.2 to set fullscreen resolution for single output Squash of roothorick's PR #497 (also includes Kyzentun's CMake changes from PR #716) * Cherry-pick json c++1x stuff (b9e3d7174e) * Cherry-pick c++11 support from 5bba5c0038 and 9f8b045309 * rework Linux (X11) fullscreen, improve display-related Graphics Options 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. * allow forcibly disabling xinerama use on Linux 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. * Remove multiple warnings on redundant define. This used to be hard-coded due to pthread related items, but now it's dynamically determined. * fix _fallback menu behavior for unrecognized aspect ratios * Fix error recreating existing FS texture * Bump deployment target to 10.7 to use libc++ on XCode 8 * Add explicit casts to please clang * Update changelog
53 lines
1.9 KiB
CMake
53 lines
1.9 KiB
CMake
# This is borrowed from FreeRDP.
|
|
# - Find XINERAMA
|
|
# Find the XINERAMA libraries
|
|
#
|
|
# This module defines the following variables:
|
|
# XINERAMA_FOUND - true if XINERAMA_INCLUDE_DIR & XINERAMA_LIBRARY are found
|
|
# XINERAMA_LIBRARIES - Set when XINERAMA_LIBRARY is found
|
|
# XINERAMA_INCLUDE_DIRS - Set when XINERAMA_INCLUDE_DIR is found
|
|
#
|
|
# XINERAMA_INCLUDE_DIR - where to find Xinerama.h, etc.
|
|
# XINERAMA_LIBRARY - the XINERAMA library
|
|
#
|
|
|
|
#=============================================================================
|
|
# Copyright 2011 O.S. Systems Software Ltda.
|
|
# Copyright 2011 Otavio Salvador <otavio@ossystems.com.br>
|
|
# Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#=============================================================================
|
|
|
|
find_path(XINERAMA_INCLUDE_DIR NAMES X11/extensions/Xinerama.h
|
|
PATHS /opt/X11/include
|
|
PATH_SUFFIXES X11/extensions
|
|
DOC "The Xinerama include directory"
|
|
)
|
|
|
|
find_library(XINERAMA_LIBRARY NAMES Xinerama
|
|
PATHS /opt/X11/lib
|
|
DOC "The Xinerama library"
|
|
)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Xinerama DEFAULT_MSG XINERAMA_LIBRARY XINERAMA_INCLUDE_DIR)
|
|
|
|
if(XINERAMA_FOUND)
|
|
set( XINERAMA_LIBRARIES ${XINERAMA_LIBRARY} )
|
|
set( XINERAMA_INCLUDE_DIRS ${XINERAMA_INCLUDE_DIR} )
|
|
endif()
|
|
|
|
mark_as_advanced(XINERAMA_INCLUDE_DIR XINERAMA_LIBRARY)
|
|
|