Add an "override_redirect" bit.
Fri Jul 9 23:26:09 2004 Soeren Sandmann <sandmann@daimi.au.dk> * gdk/x11/gdkwindow-x11.h (struct _GdkWindowImplX11): Add an "override_redirect" bit. * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set it here. * gdk/x11/gdkwindow-x11.c (gdk_window_move, gdk_window_resize, gdk_window_move_resize): Update the local size/position cache immediately for override redirect windows. * gdk/x11/gdkwindow-x11.c (show_window_internal): Invalidate newly mapped child and override redirect windows.
This commit is contained in:
parent
42067dfbab
commit
8889f2b45d
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
|||||||
|
Fri Jul 9 23:26:09 2004 Soeren Sandmann <sandmann@daimi.au.dk>
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.h (struct _GdkWindowImplX11): Add an
|
||||||
|
"override_redirect" bit.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Set it here.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_move, gdk_window_resize,
|
||||||
|
gdk_window_move_resize):
|
||||||
|
Update the local size/position cache
|
||||||
|
immediately for override redirect windows.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (show_window_internal): Invalidate
|
||||||
|
newly mapped child and override redirect windows.
|
||||||
|
|
||||||
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
Fixes #137031:
|
Fixes #137031:
|
||||||
|
@ -1,3 +1,18 @@
|
|||||||
|
Fri Jul 9 23:26:09 2004 Soeren Sandmann <sandmann@daimi.au.dk>
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.h (struct _GdkWindowImplX11): Add an
|
||||||
|
"override_redirect" bit.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Set it here.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_move, gdk_window_resize,
|
||||||
|
gdk_window_move_resize):
|
||||||
|
Update the local size/position cache
|
||||||
|
immediately for override redirect windows.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (show_window_internal): Invalidate
|
||||||
|
newly mapped child and override redirect windows.
|
||||||
|
|
||||||
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
Fixes #137031:
|
Fixes #137031:
|
||||||
|
@ -1,3 +1,18 @@
|
|||||||
|
Fri Jul 9 23:26:09 2004 Soeren Sandmann <sandmann@daimi.au.dk>
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.h (struct _GdkWindowImplX11): Add an
|
||||||
|
"override_redirect" bit.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Set it here.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_move, gdk_window_resize,
|
||||||
|
gdk_window_move_resize):
|
||||||
|
Update the local size/position cache
|
||||||
|
immediately for override redirect windows.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (show_window_internal): Invalidate
|
||||||
|
newly mapped child and override redirect windows.
|
||||||
|
|
||||||
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
Fixes #137031:
|
Fixes #137031:
|
||||||
|
@ -1,3 +1,18 @@
|
|||||||
|
Fri Jul 9 23:26:09 2004 Soeren Sandmann <sandmann@daimi.au.dk>
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.h (struct _GdkWindowImplX11): Add an
|
||||||
|
"override_redirect" bit.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_new): Set it here.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (gdk_window_move, gdk_window_resize,
|
||||||
|
gdk_window_move_resize):
|
||||||
|
Update the local size/position cache
|
||||||
|
immediately for override redirect windows.
|
||||||
|
|
||||||
|
* gdk/x11/gdkwindow-x11.c (show_window_internal): Invalidate
|
||||||
|
newly mapped child and override redirect windows.
|
||||||
|
|
||||||
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
2004-07-09 Federico Mena Quintero <federico@ximian.com>
|
||||||
|
|
||||||
Fixes #137031:
|
Fixes #137031:
|
||||||
|
@ -608,6 +608,8 @@ gdk_window_new (GdkWindow *parent,
|
|||||||
else
|
else
|
||||||
xattributes.override_redirect = False;
|
xattributes.override_redirect = False;
|
||||||
|
|
||||||
|
impl->override_redirect = xattributes.override_redirect;
|
||||||
|
|
||||||
if (private->parent && private->parent->guffaw_gravity)
|
if (private->parent && private->parent->guffaw_gravity)
|
||||||
{
|
{
|
||||||
xattributes.win_gravity = StaticGravity;
|
xattributes.win_gravity = StaticGravity;
|
||||||
@ -683,6 +685,8 @@ gdk_window_new (GdkWindow *parent,
|
|||||||
xattributes.override_redirect = True;
|
xattributes.override_redirect = True;
|
||||||
xattributes.cursor = None;
|
xattributes.cursor = None;
|
||||||
xattributes_mask |= CWSaveUnder | CWOverrideRedirect;
|
xattributes_mask |= CWSaveUnder | CWOverrideRedirect;
|
||||||
|
|
||||||
|
impl->override_redirect = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1215,7 +1219,17 @@ show_window_internal (GdkWindow *window,
|
|||||||
g_assert (GDK_WINDOW_IS_MAPPED (window));
|
g_assert (GDK_WINDOW_IS_MAPPED (window));
|
||||||
|
|
||||||
if (impl->position_info.mapped)
|
if (impl->position_info.mapped)
|
||||||
|
{
|
||||||
XMapWindow (xdisplay, xwindow);
|
XMapWindow (xdisplay, xwindow);
|
||||||
|
|
||||||
|
if (!private->input_only &&
|
||||||
|
(private->window_type == GDK_WINDOW_CHILD ||
|
||||||
|
impl->override_redirect) &&
|
||||||
|
gdk_window_is_viewable (window))
|
||||||
|
{
|
||||||
|
gdk_window_invalidate_rect (window, NULL, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1383,13 +1397,21 @@ gdk_window_move (GdkWindow *window,
|
|||||||
if (!GDK_WINDOW_DESTROYED (window))
|
if (!GDK_WINDOW_DESTROYED (window))
|
||||||
{
|
{
|
||||||
if (GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD)
|
if (GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD)
|
||||||
|
{
|
||||||
_gdk_window_move_resize_child (window, x, y,
|
_gdk_window_move_resize_child (window, x, y,
|
||||||
impl->width, impl->height);
|
impl->width, impl->height);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
XMoveWindow (GDK_WINDOW_XDISPLAY (window),
|
XMoveWindow (GDK_WINDOW_XDISPLAY (window),
|
||||||
GDK_WINDOW_XID (window),
|
GDK_WINDOW_XID (window),
|
||||||
x, y);
|
x, y);
|
||||||
|
|
||||||
|
if (impl->override_redirect)
|
||||||
|
{
|
||||||
|
private->x = x;
|
||||||
|
private->y = y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1429,18 +1451,28 @@ gdk_window_resize (GdkWindow *window,
|
|||||||
if (!GDK_WINDOW_DESTROYED (window))
|
if (!GDK_WINDOW_DESTROYED (window))
|
||||||
{
|
{
|
||||||
if (GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD)
|
if (GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD)
|
||||||
|
{
|
||||||
_gdk_window_move_resize_child (window, private->x, private->y,
|
_gdk_window_move_resize_child (window, private->x, private->y,
|
||||||
width, height);
|
width, height);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (private->impl);
|
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (private->impl);
|
||||||
|
|
||||||
if (width != impl->width || height != impl->height)
|
|
||||||
private->resize_count += 1;
|
|
||||||
|
|
||||||
XResizeWindow (GDK_WINDOW_XDISPLAY (window),
|
XResizeWindow (GDK_WINDOW_XDISPLAY (window),
|
||||||
GDK_WINDOW_XID (window),
|
GDK_WINDOW_XID (window),
|
||||||
width, height);
|
width, height);
|
||||||
|
|
||||||
|
if (impl->override_redirect)
|
||||||
|
{
|
||||||
|
impl->width = width;
|
||||||
|
impl->height = height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (width != impl->width || height != impl->height)
|
||||||
|
private->resize_count += 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1480,17 +1512,28 @@ gdk_window_move_resize (GdkWindow *window,
|
|||||||
if (!GDK_WINDOW_DESTROYED (window))
|
if (!GDK_WINDOW_DESTROYED (window))
|
||||||
{
|
{
|
||||||
if (GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD)
|
if (GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD)
|
||||||
|
{
|
||||||
_gdk_window_move_resize_child (window, x, y, width, height);
|
_gdk_window_move_resize_child (window, x, y, width, height);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (private->impl);
|
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (private->impl);
|
||||||
|
|
||||||
if (width != impl->width || height != impl->height)
|
|
||||||
private->resize_count += 1;
|
|
||||||
|
|
||||||
XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window),
|
XMoveResizeWindow (GDK_WINDOW_XDISPLAY (window),
|
||||||
GDK_WINDOW_XID (window),
|
GDK_WINDOW_XID (window),
|
||||||
x, y, width, height);
|
x, y, width, height);
|
||||||
|
if (impl->override_redirect)
|
||||||
|
{
|
||||||
|
private->x = x;
|
||||||
|
private->y = y;
|
||||||
|
impl->width = width;
|
||||||
|
impl->height = height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (width != impl->width || height != impl->height)
|
||||||
|
private->resize_count += 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3286,11 +3329,16 @@ gdk_window_set_override_redirect (GdkWindow *window,
|
|||||||
|
|
||||||
if (!GDK_WINDOW_DESTROYED (window))
|
if (!GDK_WINDOW_DESTROYED (window))
|
||||||
{
|
{
|
||||||
attr.override_redirect = (override_redirect == FALSE)?False:True;
|
GdkWindowObject *private = (GdkWindowObject *)window;
|
||||||
|
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (private->impl);
|
||||||
|
|
||||||
|
attr.override_redirect = (override_redirect? True : False);
|
||||||
XChangeWindowAttributes (GDK_WINDOW_XDISPLAY (window),
|
XChangeWindowAttributes (GDK_WINDOW_XDISPLAY (window),
|
||||||
GDK_WINDOW_XID (window),
|
GDK_WINDOW_XID (window),
|
||||||
CWOverrideRedirect,
|
CWOverrideRedirect,
|
||||||
&attr);
|
&attr);
|
||||||
|
|
||||||
|
impl->override_redirect = attr.override_redirect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@ struct _GdkWindowImplX11
|
|||||||
GdkXPositionInfo position_info;
|
GdkXPositionInfo position_info;
|
||||||
GdkToplevelX11 *toplevel; /* Toplevel-specific information */
|
GdkToplevelX11 *toplevel; /* Toplevel-specific information */
|
||||||
gint8 toplevel_window_type;
|
gint8 toplevel_window_type;
|
||||||
|
guint override_redirect : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GdkWindowImplX11Class
|
struct _GdkWindowImplX11Class
|
||||||
|
Loading…
Reference in New Issue
Block a user