diff -uNr metacity-2.5.2/src/window.c metacity-2.5.2-94111/src/window.c
--- metacity-2.5.2/src/window.c	2003-05-20 18:27:15.000000000 +0200
+++ metacity-2.5.2-94111/src/window.c	2003-06-05 14:45:03.000000000 +0200
@@ -5339,6 +5339,17 @@
       window->has_maximize_func = FALSE;
     }
 
+  if (window->maximized)
+    {
+      window->has_move_func = FALSE;
+      window->has_resize_func = FALSE;
+    }
+
+  if (window->shaded)
+    {
+      window->has_resize_func = FALSE;
+    }
+
   meta_topic (META_DEBUG_WINDOW_OPS,
               "Window %s fullscreen = %d not resizable, maximizable = %d fullscreenable = %d min size %dx%d max size %dx%d\n",
               window->desc,
diff -uNr metacity-2.5.2/src/window.h metacity-2.5.2-94111/src/window.h
--- metacity-2.5.2/src/window.h	2003-03-17 07:36:39.000000000 +0100
+++ metacity-2.5.2-94111/src/window.h	2003-06-05 14:45:03.000000000 +0200
@@ -287,8 +287,8 @@
   MetaGroup *cached_group;
 };
 
-#define META_WINDOW_ALLOWS_MOVE(w)     ((w)->has_move_func && !(w)->maximized && !(w)->fullscreen)
-#define META_WINDOW_ALLOWS_RESIZE_EXCEPT_HINTS(w)   ((w)->has_resize_func && !(w)->maximized && !(w)->fullscreen && !(w)->shaded)
+#define META_WINDOW_ALLOWS_MOVE(w)     ((w)->has_move_func)
+#define META_WINDOW_ALLOWS_RESIZE_EXCEPT_HINTS(w)   ((w)->has_resize_func)
 #define META_WINDOW_ALLOWS_RESIZE(w)   (META_WINDOW_ALLOWS_RESIZE_EXCEPT_HINTS (w) &&                \
                                         (((w)->size_hints.min_width < (w)->size_hints.max_width) ||  \
                                          ((w)->size_hints.min_height < (w)->size_hints.max_height)))
