diff options
author | Carsten Haitzler <raster@src.gnome.org> | 1998-11-18 03:15:14 +0000 |
---|---|---|
committer | Carsten Haitzler <raster@src.gnome.org> | 1998-11-18 03:15:14 +0000 |
commit | 6343181e2bd80efcb2b59659d60c8a75a6622474 (patch) | |
tree | 1f551ef549ced1be64d1f81c9ba52cea0b786f0d | |
parent | e2f7831640fc7eb191ee5df3594f00518d1250b8 (diff) | |
download | gdk-pixbuf-6343181e2bd80efcb2b59659d60c8a75a6622474.tar.gz |
Tue Nov 17 1998 The Rasterman <raster@redhat.com> Added
Tue Nov 17 1998 The Rasterman <raster@redhat.com>
* gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin
function to correctly determine gdk window position relative to
its "root window" - contains check for an Enlightenment
virtual root window.
* gtk/gtkhandlebox.c: changed gdk_window_get_origin ->
gdk_window_get_deskrelative_origin to get the origin of dragged
handleboxes correctly. Now it works correctly with E.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 9 | ||||
-rw-r--r-- | gdk/gdk.h | 3 | ||||
-rw-r--r-- | gdk/gdkwindow.c | 63 | ||||
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 63 | ||||
-rw-r--r-- | gtk/gtkhandlebox.c | 2 |
11 files changed, 193 insertions, 1 deletions
@@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 00f2f41a3..dee0be2d4 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 00f2f41a3..dee0be2d4 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 00f2f41a3..dee0be2d4 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 00f2f41a3..dee0be2d4 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 00f2f41a3..dee0be2d4 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 00f2f41a3..dee0be2d4 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Tue Nov 17 1998 The Rasterman <raster@redhat.com> + * gdk/gdk.h, gdk/gdkwindow.c: Added gdk_window_get_deskrelative_origin + function to correctly determine gdk window position relative to + its "root window" - contains check for an Enlightenment + virtual root window. + * gtk/gtkhandlebox.c: changed gdk_window_get_origin -> + gdk_window_get_deskrelative_origin to get the origin of dragged + handleboxes correctly. Now it works correctly with E. + Tue Nov 17 1998 Tuomas Lukka <lukka@iki.fi> * gtk/gtktypeutils.c: Fix vital bug where LOOKUP was used when @@ -308,6 +308,9 @@ GdkWindowType gdk_window_get_type (GdkWindow *window); gint gdk_window_get_origin (GdkWindow *window, gint *x, gint *y); +gint gdk_window_get_deskrelative_origin (GdkWindow *window, + gint *x, + gint *y); void gdk_window_get_root_origin (GdkWindow *window, gint *x, gint *y); diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 002696b87..0d0b9a048 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -1302,6 +1302,69 @@ gdk_window_get_origin (GdkWindow *window, return return_val; } +gint +gdk_window_get_deskrelative_origin (GdkWindow *window, + gint *x, + gint *y) +{ + GdkWindowPrivate *private; + gint return_val, num_children, format_return; + Window win, *child, parent, root; + gint tx = 0; + gint ty = 0; + Atom type_return; + static Atom atom = 0; + gulong number_return, bytes_after_return; + guchar *data_return; + + g_return_val_if_fail (window != NULL, 0); + + private = (GdkWindowPrivate*) window; + + return_val = 0; + if (!private->destroyed) + { + if (!atom) + atom = XInternAtom(private->xdisplay, "ENLIGHTENMENT_DESKTOP", False); + win = private->xwindow; + while (XQueryTree(private->xdisplay, win, &root, &parent, + &child, (unsigned int *)&num_children)) + { + if ((child) && (num_children > 0)) + XFree(child); + win = parent; + data_return = NULL; + XGetWindowProperty(private->xdisplay, win, atom, 0, 0x7fffffff, + False, XA_CARDINAL, &type_return, &format_return, + &number_return, &bytes_after_return, &data_return); + if (data_return) + { + if (data_return) + XFree(data_return); + return_val = XTranslateCoordinates (private->xdisplay, + private->xwindow, + win, + 0, 0, &tx, &ty, + &root); + break; + } + } + } + if (!return_val) + return_val = XTranslateCoordinates (private->xdisplay, + private->xwindow, + gdk_root_window, + 0, 0, &tx, &ty, + &root); + + if (x) + *x = tx; + if (y) + *y = ty; + + return return_val; +} + void gdk_window_get_root_origin (GdkWindow *window, gint *x, diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 002696b87..0d0b9a048 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -1302,6 +1302,69 @@ gdk_window_get_origin (GdkWindow *window, return return_val; } +gint +gdk_window_get_deskrelative_origin (GdkWindow *window, + gint *x, + gint *y) +{ + GdkWindowPrivate *private; + gint return_val, num_children, format_return; + Window win, *child, parent, root; + gint tx = 0; + gint ty = 0; + Atom type_return; + static Atom atom = 0; + gulong number_return, bytes_after_return; + guchar *data_return; + + g_return_val_if_fail (window != NULL, 0); + + private = (GdkWindowPrivate*) window; + + return_val = 0; + if (!private->destroyed) + { + if (!atom) + atom = XInternAtom(private->xdisplay, "ENLIGHTENMENT_DESKTOP", False); + win = private->xwindow; + while (XQueryTree(private->xdisplay, win, &root, &parent, + &child, (unsigned int *)&num_children)) + { + if ((child) && (num_children > 0)) + XFree(child); + win = parent; + data_return = NULL; + XGetWindowProperty(private->xdisplay, win, atom, 0, 0x7fffffff, + False, XA_CARDINAL, &type_return, &format_return, + &number_return, &bytes_after_return, &data_return); + if (data_return) + { + if (data_return) + XFree(data_return); + return_val = XTranslateCoordinates (private->xdisplay, + private->xwindow, + win, + 0, 0, &tx, &ty, + &root); + break; + } + } + } + if (!return_val) + return_val = XTranslateCoordinates (private->xdisplay, + private->xwindow, + gdk_root_window, + 0, 0, &tx, &ty, + &root); + + if (x) + *x = tx; + if (y) + *y = ty; + + return return_val; +} + void gdk_window_get_root_origin (GdkWindow *window, gint *x, diff --git a/gtk/gtkhandlebox.c b/gtk/gtkhandlebox.c index a4d8bac29..da6d8cea7 100644 --- a/gtk/gtkhandlebox.c +++ b/gtk/gtkhandlebox.c @@ -859,7 +859,7 @@ gtk_handle_box_motion (GtkWidget *widget, ox = 0; oy = 0; - gdk_window_get_origin (hb->float_window, &ox, &oy); + gdk_window_get_deskrelative_origin (hb->float_window, &ox, &oy); new_x = 0; new_y = 0; gdk_window_get_pointer (hb->float_window, &new_x, &new_y, NULL); |