[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:47:38 -0700 (PDT) |
My apologies for replying to myself this time...
Alternatively you could, of course, post a patch which would let others examine
the issue without disturbing the repository.
GJC
--- Gregory John Casamento <greg_casamento@yahoo.com> wrote:
>
> --- 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/
>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> http://lists.gnu.org/mailman/listinfo/discuss-gnustep
=====
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, 2004/06/12
- Re: GWorkspace as windowmanager?,
Gregory John Casamento <=
- 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