Get rid of FullScreenState::get_monitor()

This commit is contained in:
Pedro Côrte-Real 2017-08-29 02:08:12 +01:00
parent b3ef9c8b22
commit 60b575a7c1
5 changed files with 13 additions and 19 deletions

View file

@ -4,8 +4,10 @@ use std::sync::atomic::AtomicBool;
use wayland_client::{EventQueue, EventQueueHandle, Proxy};
use wayland_client::protocol::{wl_display,wl_surface};
use {CreationError, MouseCursor, CursorState, WindowAttributes};
use {CreationError, MouseCursor, CursorState, WindowAttributes, FullScreenState};
use platform::MonitorId as PlatformMonitorId;
use window::MonitorId as RootMonitorId;
use super::context::MonitorId as WaylandMonitorId;
use super::{WaylandContext, EventsLoop};
use super::wayland_window;
@ -54,7 +56,7 @@ impl Window {
*(decorated.handler()) = Some(DecoratedHandler::new());
// set fullscreen if necessary
if let Some(PlatformMonitorId::Wayland(ref monitor_id)) = attributes.fullscreen.get_monitor() {
if let FullScreenState::Exclusive(RootMonitorId(PlatformMonitorId::Wayland(ref monitor_id))) = attributes.fullscreen {
ctxt.with_output(monitor_id.clone(), |output| {
decorated.set_fullscreen(Some(output))
});

View file

@ -384,8 +384,8 @@ impl Window {
fn create_window(attrs: &WindowAttributes) -> Option<IdRef> {
unsafe {
let screen = match attrs.fullscreen.get_monitor() {
Some(ref monitor_id) => {
let screen = match attrs.fullscreen {
FullScreenState::Exclusive(ref monitor_id) => {
let native_id = match monitor_id.get_native_identifier() {
NativeMonitorId::Numeric(num) => num,
_ => panic!("OS X monitors should always have a numeric native ID")
@ -411,7 +411,7 @@ impl Window {
};
Some(matching_screen.unwrap_or(appkit::NSScreen::mainScreen(nil)))
},
None => None
_ => None,
};
let frame = match screen {
Some(screen) => appkit::NSScreen::frame(screen),

View file

@ -21,6 +21,7 @@ use CursorState;
use MouseCursor;
use WindowAttributes;
use FullScreenState;
use MonitorId as RootMonitorId;
use dwmapi;
use kernel32;
@ -328,12 +329,13 @@ unsafe fn init(window: WindowAttributes, pl_attribs: PlatformSpecificWindowBuild
// switching to fullscreen if necessary
// this means adjusting the window's position so that it overlaps the right monitor,
// and change the monitor's resolution if necessary
if let Some(ref monitor) = window.fullscreen.get_monitor() {
let fullscreen = if let FullScreenState::Exclusive(RootMonitorId(ref monitor)) = window.fullscreen {
try!(switch_to_fullscreen(&mut rect, monitor));
true
} else {
false
};
let fullscreen = window.fullscreen.get_monitor().is_some();
// computing the style and extended style of the window
let (ex_style, style) = if fullscreen || !window.decorations {
(winapi::WS_EX_APPWINDOW,