Skip to content

Commit 55614c0

Browse files
committed
Expose set_minimized. Implement for macOS (rust-windowing#985)
1 parent 29e2481 commit 55614c0

File tree

8 files changed

+57
-0
lines changed

8 files changed

+57
-0
lines changed

src/platform_impl/android/mod.rs

+5
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,11 @@ impl Window {
358358
Err(ExternalError::NotSupported(NotSupportedError::new()))
359359
}
360360

361+
#[inline]
362+
pub fn set_minimized(&self, _minimized: bool) {
363+
unimplemented!()
364+
}
365+
361366
#[inline]
362367
pub fn set_maximized(&self, _maximized: bool) {
363368
// N/A

src/platform_impl/emscripten/mod.rs

+5
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,11 @@ impl Window {
657657
Err("Setting cursor position is not possible on Emscripten.".to_owned())
658658
}
659659

660+
#[inline]
661+
pub fn set_minimized(&self, _minimized: bool) {
662+
unimplemented!()
663+
}
664+
660665
#[inline]
661666
pub fn set_maximized(&self, _maximized: bool) {
662667
// iOS has single screen maximized apps so nothing to do

src/platform_impl/ios/window.rs

+4
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ impl Inner {
153153
debug!("`Window::set_cursor_visible` is ignored on iOS")
154154
}
155155

156+
pub fn set_minimized(&self, _minimized: bool) {
157+
warn!("`Window::set_minimized` is ignored on iOS")
158+
}
159+
156160
pub fn set_maximized(&self, _maximized: bool) {
157161
warn!("`Window::set_maximized` is ignored on iOS")
158162
}

src/platform_impl/linux/wayland/window.rs

+4
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,10 @@ impl Window {
278278
*(self.need_frame_refresh.lock().unwrap()) = true;
279279
}
280280

281+
pub fn set_minimized(&self, minimized: bool) {
282+
unimplemented!();
283+
}
284+
281285
pub fn set_maximized(&self, maximized: bool) {
282286
if maximized {
283287
self.frame.lock().unwrap().set_maximized();

src/platform_impl/linux/x11/window.rs

+5
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,11 @@ impl UnownedWindow {
615615
self.xconn.primary_monitor()
616616
}
617617

618+
#[inline]
619+
pub fn set_minimized(&self, minimized: bool) {
620+
unimplemented!();
621+
}
622+
618623
fn set_maximized_inner(&self, maximized: bool) -> util::Flusher<'_> {
619624
let horz_atom = unsafe {
620625
self.xconn

src/platform_impl/macos/window.rs

+19
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,25 @@ impl UnownedWindow {
609609
trace!("Unocked shared state in `restore_state_from_fullscreen`");
610610
self.set_maximized(maximized);
611611
}
612+
613+
#[inline]
614+
pub fn set_minimized(&self, minimized: bool) {
615+
let is_minimized: BOOL = unsafe { msg_send![*self.ns_window, isMiniaturized] };
616+
let is_minimized: bool = is_minimized == YES;
617+
if is_minimized == minimized {
618+
return;
619+
}
620+
621+
if minimized {
622+
unsafe {
623+
NSWindow::miniaturize_(*self.ns_window, *self.ns_window);
624+
}
625+
} else {
626+
unsafe {
627+
NSWindow::deminiaturize_(*self.ns_window, *self.ns_window);
628+
}
629+
}
630+
}
612631

613632
#[inline]
614633
pub fn set_maximized(&self, maximized: bool) {

src/platform_impl/windows/window.rs

+5
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,11 @@ impl Window {
410410
WindowId(self.window.0)
411411
}
412412

413+
#[inline]
414+
pub fn set_minimized(&self, minimized: bool) {
415+
unimplemented!();
416+
}
417+
413418
#[inline]
414419
pub fn set_maximized(&self, maximized: bool) {
415420
let window = self.window.clone();

src/window.rs

+10
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,16 @@ impl Window {
529529
self.window.set_resizable(resizable)
530530
}
531531

532+
/// Sets the window to minimized or back
533+
///
534+
/// ## Platform-specific
535+
///
536+
/// - **iOS:** Has no effect
537+
#[inline]
538+
pub fn set_minimized(&self, minimized: bool) {
539+
self.window.set_minimized(minimized);
540+
}
541+
532542
/// Sets the window to maximized or back.
533543
///
534544
/// ## Platform-specific

0 commit comments

Comments
 (0)