[metacity] window: allow minimizing windows which don't advertise support for it



commit 3779d10a31f6668aac17fadd7f485a37f43fdc7e
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Nov 16 15:31:55 2015 -0800

    window: allow minimizing windows which don't advertise support for it
    
    Wine removes the minimize func from its Motif hints on full-screen
    windows, because, as the Win32 API literally says, the minimize button
    is indeed not visible on full-screen windows.
    
    Given that this code was added to prevent minimizing a panel by
    accident, I don't necessarily think that it's relevant anymore.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=758186

 src/core/window.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index c8b10da..7eac51c 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -827,7 +827,7 @@ meta_window_apply_session_info (MetaWindow *window,
                   "Restoring minimized state %d for window %s\n",
                   info->minimized, window->desc);
 
-      if (window->has_minimize_func && info->minimized)
+      if (info->minimized)
         meta_window_minimize (window);
     }
 
@@ -5301,8 +5301,7 @@ meta_window_client_message (MetaWindow *window,
     {
       meta_verbose ("WM_CHANGE_STATE client message, state: %ld\n",
                     event->xclient.data.l[0]);
-      if (event->xclient.data.l[0] == IconicState &&
-          window->has_minimize_func)
+      if (event->xclient.data.l[0] == IconicState)
         meta_window_minimize (window);
 
       return TRUE;
@@ -6556,6 +6555,11 @@ recalc_window_features (MetaWindow *window)
       break;
     }
 
+  /* To prevent users from losing windows, let's prevent users from
+   * minimizing skip-taskbar windows through the window decorations. */
+  if (window->skip_taskbar)
+    window->has_minimize_func = FALSE;
+
   meta_topic (META_DEBUG_WINDOW_OPS,
               "Window %s decorated = %d border_only = %d has_close = %d has_minimize = %d has_maximize = %d 
has_move = %d has_shade = %d skip_taskbar = %d skip_pager = %d\n",
               window->desc,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]