summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@src.gnome.org>1998-11-18 03:15:14 +0000
committerCarsten Haitzler <raster@src.gnome.org>1998-11-18 03:15:14 +0000
commit6343181e2bd80efcb2b59659d60c8a75a6622474 (patch)
tree1f551ef549ced1be64d1f81c9ba52cea0b786f0d
parente2f7831640fc7eb191ee5df3594f00518d1250b8 (diff)
downloadgdk-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--ChangeLog9
-rw-r--r--ChangeLog.pre-2-09
-rw-r--r--ChangeLog.pre-2-109
-rw-r--r--ChangeLog.pre-2-29
-rw-r--r--ChangeLog.pre-2-49
-rw-r--r--ChangeLog.pre-2-69
-rw-r--r--ChangeLog.pre-2-89
-rw-r--r--gdk/gdk.h3
-rw-r--r--gdk/gdkwindow.c63
-rw-r--r--gdk/x11/gdkwindow-x11.c63
-rw-r--r--gtk/gtkhandlebox.c2
11 files changed, 193 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 00f2f41a3..dee0be2d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/gdk/gdk.h b/gdk/gdk.h
index 84563cf8f..68feea9f7 100644
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -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);