summaryrefslogtreecommitdiff
path: root/gdk/gdkwindow.c
diff options
context:
space:
mode:
authorrhlabs <rhlabs>1998-03-11 21:44:22 +0000
committerrhlabs <rhlabs>1998-03-11 21:44:22 +0000
commitb7a6cd6750f83c2a68730e25035545db1a26496d (patch)
treede43f648ffb5dd7db2751624965e09f82af2ed42 /gdk/gdkwindow.c
parentffc1084029713b5dfde5c96ceb2cb8937cf8288a (diff)
downloadgtk+-b7a6cd6750f83c2a68730e25035545db1a26496d.tar.gz
<raster@redhat.com>
<raster@redhat.com> final fixes to STUPId comparison of types of loop end - i missed the unsigned bit! i will NEVEr use unsigned ints ever again!
Diffstat (limited to 'gdk/gdkwindow.c')
-rw-r--r--gdk/gdkwindow.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index f7696f23f2..d3ec24e3c8 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -77,13 +77,15 @@ gdk_window_xid_at(Window base, gint bx, gint by, gint x, gint y)
return base;
if (list)
{
- for (i=num-1;i>=0;i--)
+ for (i=num-1;;i--)
{
if ((child=gdk_window_xid_at(list[i],wx,wy,x,y))!=0)
{
+ printf("-> %x\n",child);
XFree(list);
return child;
}
+ if (!i) break;
}
XFree(list);
}
@@ -112,26 +114,39 @@ gdk_window_xid_at_coords(gint x, gint y, GList *excludes)
Window *list=NULL;
Window root,child=0,parent_win=0,root_win=0;
unsigned int num,i;
+ GList *gl;
window=(GdkWindow*)&gdk_root_parent;
private=(GdkWindowPrivate*)window;
disp=private->xdisplay;
root=private->xwindow;
XGrabServer(disp);
+ num=g_list_length(excludes);
+ printf("coords %i %i\n",x,y);
+ for(i=0;i<num;i++)
+ {
+ gl=g_list_nth(excludes,i);
+ printf("excludes %x\n",gl->data);
+ }
if (!XQueryTree(disp,root,&root_win,&parent_win,&list,&num))
- return root;
+ {
+ printf("Mouse in %x\n",root);
+ return root;
+ }
if (list)
{
- for (i=num-1;i>=0;i--)
+ for (i=num-1;;i--)
{
if ((child=gdk_window_xid_at(list[i],0,0,x,y))!=0)
{
+ printf("%x\n",child);
if (excludes)
{
if (!g_list_find(excludes,(gpointer)child))
{
- XUngrabServer(disp);
XFree(list);
+ XUngrabServer(disp);
+ printf("Mouse in %x\n",child);
return child;
}
}
@@ -139,12 +154,16 @@ gdk_window_xid_at_coords(gint x, gint y, GList *excludes)
{
XFree(list);
XUngrabServer(disp);
+ printf("Mouse in %x\n",child);
return child;
}
}
+ if (!i) break;
}
+ XFree(list);
}
XUngrabServer(disp);
+ printf("Mouse in %x\n",root);
return root;
}