+2006-08-10 Michael Natterer <mitch@imendio.com>
+
+ * gdk/quartz/gdkwindow-quartz.c
+ (gdk_window_maximize)
+ (gdk_window_unmaximize)
+ (gdk_window_iconify)
+ (gdk_window_deiconify): don't try to set the state of unmapped
+ windows, call gdk_synthesize_window_state() instead. Also added
+ autorelease pools back, seems they are needed after all.
+
+ * gdk/quartz/gdkwindow-quartz.c (show_window_internal): maximize
+ and iconify windows here if the state says so.
+
2006-08-09 Michael Natterer <mitch@imendio.com>
* gdk/quartz/gdkwindow-quartz.c (gdk_window_set_geometry_hints):
+2006-08-10 Michael Natterer <mitch@imendio.com>
+
+ * gdk/quartz/gdkwindow-quartz.c
+ (gdk_window_maximize)
+ (gdk_window_unmaximize)
+ (gdk_window_iconify)
+ (gdk_window_deiconify): don't try to set the state of unmapped
+ windows, call gdk_synthesize_window_state() instead. Also added
+ autorelease pools back, seems they are needed after all.
+
+ * gdk/quartz/gdkwindow-quartz.c (show_window_internal): maximize
+ and iconify windows here if the state says so.
+
2006-08-09 Michael Natterer <mitch@imendio.com>
* gdk/quartz/gdkwindow-quartz.c (gdk_window_set_geometry_hints):
}
static void
-show_window_internal (GdkWindow *window, gboolean raise)
+show_window_internal (GdkWindow *window,
+ gboolean raise)
{
GdkWindowObject *private;
GdkWindowImplQuartz *impl;
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_WITHDRAWN, 0);
+ if (private->state & GDK_WINDOW_STATE_MAXIMIZED)
+ gdk_window_maximize (window);
+
+ if (private->state & GDK_WINDOW_STATE_ICONIFIED)
+ gdk_window_iconify (window);
+
GDK_QUARTZ_RELEASE_POOL;
}
g_return_if_fail (GDK_IS_WINDOW (window));
-
if (GDK_WINDOW_DESTROYED (window))
return;
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
- if (impl->toplevel && ![impl->toplevel isZoomed])
- [impl->toplevel zoom:nil];
+ if (GDK_WINDOW_IS_MAPPED (window))
+ {
+ GDK_QUARTZ_ALLOC_POOL;
+
+ if (impl->toplevel && ![impl->toplevel isZoomed])
+ [impl->toplevel zoom:nil];
+
+ GDK_QUARTZ_RELEASE_POOL;
+ }
+ else
+ {
+ gdk_synthesize_window_state (window,
+ 0,
+ GDK_WINDOW_STATE_MAXIMIZED);
+ }
}
void
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
- if (impl->toplevel && [impl->toplevel isZoomed])
- [impl->toplevel zoom:nil];
+ if (GDK_WINDOW_IS_MAPPED (window))
+ {
+ GDK_QUARTZ_ALLOC_POOL;
+
+ if (impl->toplevel && [impl->toplevel isZoomed])
+ [impl->toplevel zoom:nil];
+
+ GDK_QUARTZ_RELEASE_POOL;
+ }
+ else
+ {
+ gdk_synthesize_window_state (window,
+ GDK_WINDOW_STATE_MAXIMIZED,
+ 0);
+ }
}
void
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
- if (impl->toplevel)
- [impl->toplevel miniaturize:nil];
+ if (GDK_WINDOW_IS_MAPPED (window))
+ {
+ GDK_QUARTZ_ALLOC_POOL;
+
+ if (impl->toplevel)
+ [impl->toplevel miniaturize:nil];
+
+ GDK_QUARTZ_RELEASE_POOL;
+ }
+ else
+ {
+ gdk_synthesize_window_state (window,
+ 0,
+ GDK_WINDOW_STATE_ICONIFIED);
+ }
}
void
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
- if (impl->toplevel)
- [impl->toplevel deminiaturize:nil];
+ if (GDK_WINDOW_IS_MAPPED (window))
+ {
+ GDK_QUARTZ_ALLOC_POOL;
+
+ if (impl->toplevel)
+ [impl->toplevel deminiaturize:nil];
+
+ GDK_QUARTZ_RELEASE_POOL;
+ }
+ else
+ {
+ gdk_synthesize_window_state (window,
+ GDK_WINDOW_STATE_ICONIFIED,
+ 0);
+ }
}
void