[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GWorkspace as windowmanager?
From: |
Gregory John Casamento |
Subject: |
Re: GWorkspace as windowmanager? |
Date: |
Sat, 12 Jun 2004 12:20:57 -0700 (PDT) |
--- Enrico Sersale <enrico@imago.ro> wrote:
> On 2004-06-12 18:33:14 +0300 Enrico Sersale <enrico@imago.ro> wrote:
>
> > On 2004-06-12 18:10:27 +0300 Enrico Sersale <enrico@imago.ro> wrote:
> >
> >> On 2004-06-12 15:03:49 +0300 Enrico Sersale <enrico@imago.ro> wrote:
> >>
> >>> On 2004-06-12 14:05:37 +0300 Gregory John Casamento
> >>> <greg_casamento@yahoo.com> wrote:
> >>>
> >>>>
> >>>>>> <snip>
> >>>>>
> >>>>> Is there a way to have a NSWindow which _windowNum is 0, that is, the X
>
> >>>>> root
> >>>>> window?
> >>>>> In XGServerWindow we have a -_rootWindowForScreen: method returning a
> >>>>> gswindow_device_t structure that represents the root window; it is used
>
> >>>>> in
> >>>>> -window::: to set the root window for all the new windows.
> >>>>> I've tried to subclass NSWindow to override -_initBackendWindow: and
> >>>>> then add
> >>>>> something in XGServerWindow to setup all the stuff, but I can't because
> >>>>> -_initBackendWindow: accesses windowmaps, a class variable of NSWindow.
> >>>>
> >>>> If you find the answer to this, please let me know as well.
> >>>> InnerSpace.app,
> >>>> the screensaver in my GAP project, needs to have a window which sits at
> >>>> this
> >>>> level as well.
> >>>
> >>> Only a idea...
> >>>
> >>> If a window is deferred, NSWindow calls -_initBackendWindow: only in
> >>> -orderWindow:relativeTo:.
> >>> NSDesktopWindowLevel is a GNUstep addition, so, the case of a window that
>
> >>> is deferred *and* which level is NSDesktopWindowLevel could be used to
> >>> identify the root window.
> >>> In this case NSWindow, instead of -_initBackendWindow:, could use a other
>
> >>> method, say "-_initRootBackendWindow:", that, throught a appropiate
> method
> >>> in GSDisplayServer (instead of -window:::, -rootwindow:::, for example),
> >>> let the backend class setup the window. (The backend part should be easy
> >>> to write, I think).
> >>
> >> This seems to work, but I'm getting a "Desktop[9837] X-Windows error -
> >> BadAccess (attempt to access private resource denied)" in the new backend
> >> method. I'm doing something wrong with some X function. Could somebody a
> >> little more expert in X take a look at this? Gregory?
> >
> > The problem is here:
> >
> > XSelectInput(dpy, window->ident, ExposureMask | KeyPressMask |
> > KeyReleaseMask | ButtonPressMask |
> > ButtonReleaseMask | ButtonMotionMask |
> > StructureNotifyMask | PointerMotionMask |
> > EnterWindowMask | LeaveWindowMask |
> > FocusChangeMask | PropertyChangeMask |
> > ColormapChangeMask | KeymapStateMask |
> > VisibilityChangeMask);
> >
> > Anyway, I can confirm that this works; I'm adding NSViews in the root
> window
> > and drawing in them. The only thing that doesn't work are the events.
>
> Excuse me. This is the third time I reply to my mail :-)
>
> It seems that there are some restrictions in setting the event-mask in
> XSelectInput(); I never used XLib and I didn't know this. I can't get mouse
> and key events beacause the window manager has already selected them.
>
> Is there any way to go around this?
>
> All the other things work perfectly, the Desktop.app window is now the real X
> root window (windowNumber = 0); and this only with four lines added in
> NSWindow.m, a little method in GSDisplayServer and the rest in
> XGServerWindow.
> I think that it would be a pity not make it to work...
I'm wondering if changing this would cause issues with the window manager.
What do you think? :/
You should probably go ahead and commit what you've changed, so that the rest
of us can take a look at it. My knowledge of "pure" X is a little rusty, but I
might be able to figure it out.
GJC
=====
Gregory John Casamento -- CEO/President Open Logic Corp.
#### Maintainer of Gorm for GNUstep.
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
- GWorkspace as windowmanager?, Charles Kerr, 2004/06/10
- Re: GWorkspace as windowmanager?, Frederico Muñoz, 2004/06/10
- Re: GWorkspace as windowmanager?, Armando Di Cianno, 2004/06/10
- Re: GWorkspace as windowmanager?, Enrico Sersale, 2004/06/12
- Re: GWorkspace as windowmanager?, Gregory John Casamento, 2004/06/12
- Re: GWorkspace as windowmanager?, Enrico Sersale, 2004/06/12
- Re: GWorkspace as windowmanager?, Enrico Sersale, 2004/06/12
- Re: GWorkspace as windowmanager?, Enrico Sersale, 2004/06/12
- Re: GWorkspace as windowmanager?, Enrico Sersale, 2004/06/12
- Re: GWorkspace as windowmanager?,
Gregory John Casamento <=
- Re: GWorkspace as windowmanager?, Gregory John Casamento, 2004/06/12
- Re: GWorkspace as windowmanager?, Alexander Malmberg, 2004/06/12
- Re: GWorkspace as windowmanager?, Enrico Sersale, 2004/06/12
- Re: GWorkspace as windowmanager?, Alex Perez, 2004/06/13
- Re: GWorkspace as windowmanager?, Gregory John Casamento, 2004/06/13
- Re: GWorkspace as windowmanager?, Frederico Muñoz, 2004/06/13
- Re: GWorkspace as windowmanager?, Kazunobu Kuriyama, 2004/06/13