On Thu, 30 Mar 2000, Chris Peterson wrote: > I really don't know anything about X, so take what I'm proposing with a > grain of salt, but I'm wondering if there would be a way to make it work. > > Could the application make an exact copy of the root window and have all > other apps treat this as the root window. Then, couldn't you intercept > anything coming from the window manager and decide what to do with it before > it gets sent onto the running applications? > That's what the GNOME hint option is suposed to do :) The hint tells the window manager to send clicks in the root window to the application that requested it. -- Alfredo > just a thought, > Chris > ----- Original Message ----- > From: Alfredo Kengi Kojima <kojima@xxxxxxxxxxxx> > To: blinux developers <blinux-develop@xxxxxxxxxx> > Sent: Thursday, March 30, 2000 12:22 PM > Subject: Re: Tracking Events On Another Window > > > On Tue, 16 Feb 1999, Kieran O' Sullivan wrote: > > It's only allowed for a single application to select for > buttonpress events in a window. In the case of the root > window, the window manager already does that before any > app, so you can't do what you want directly. The options > are: > 1) disable root window button press in the window manager, > if it's possible (some window managers have an option for that) > 2) do a passive grab for button presses in the root window > (XGrabButton) > 3) use an existing window manager protocol to tell the > window manager to relay button events to your app (take a > look in teh GNOME wm hints) > 4) rethink whether you really need button events from the > root window > > -- > Alfredo > > > I was on about this befor and I tried the suggestion that I got back and > > some of it was good but SelectInput() causes errors when it is applied to > > the root window. The root window seems to think that you are trying to > > change its assributes so your program crashes. The following was > > something I came up with and for some reason it doesn't work the program > > can process its own events but it gets nothing from the root window. I > > have not tried the function with any other window and I know that the root > > window is listening to ButtonPress events. > > > > root_win = RootWindow(display, root_screen); /* Sets a window structure > > equal to root window. There is nothing wrong with this statement because > > I have used it in a QueryTre() function successfully */ > > > > /* there is a continuous loop here */ > > /* after the program has processed its own events it does the following */ > > > > if(!XCheckWindowEvent(display, root_win, > ButtonPressMask|PointerMotionMask, &report2)) > > > > {/* nothing to do because there are no events */} > > /* XCheckWindowEvent() is used because it checks the event que and > > if it doesn't find anything it returns False and doesn't balck allowing > > the program to do what it has to do with out waiting for events. */ > > > > else > > > > { > > > > printf("\n Something happended ont the root window \n"); > > > > switch (report2.type) > > > > > > > case ButtonPress: > > > > printf("\nButton Press on root window \n"); > > > > break; > > > > > > case MotionNotify: > > > > XQueryPointer (display, win, &rep_root, &rep_child, > > > > &rep_rootx, &rep_rooty, &dx, &dy, &rep_mask); > > > > printf("\nThe pointer was queried %d, %d\n",dx, dy); > > > > break; > > > > default: > > > > break; > > > > } /* End of case for report2 */ > > > > } /* Enf of if */ > > > > } /* End of While loop that processes all the events */ > > > > If anyone can help I would be very grateful. > > > > _____________________________________________________________________ > > Kieran O' Sullivan > > http://snet.wit.ie/BlindPenguin > > > > > > -- > > To unsubscribe: mail blinux-develop-request@xxxxxxxxxx with > > "unsubscribe" as the Subject. > > > > > > > -- > To unsubscribe: mail blinux-develop-request@xxxxxxxxxx with > "unsubscribe" as the Subject. > > > > -- > To unsubscribe: mail blinux-develop-request@xxxxxxxxxx with > "unsubscribe" as the Subject. > >