Re: Blackbox allows several instances of Opera.
Actually, this happens with netscape as well. If you pass netscape the -remote parameter so that it doesn't think it has to start a session from scratch, and netscape is on a different workspace, you'll hit the same problem. I do not believe it has anything to do with opera not doing things right. I believe the error is how blackbox handles windows (XChangeProperty to withdrawn state via setState() ) when it switches workspaces. I think that sets the window into a state that causes it to not received calls that it otherwise would. On Wed, 2001-12-12 at 17:37, Christian Dysthe wrote: > On 12 Dec 2001 14:32:15 -0500 > "Jason 'vanRijn' Kasper" <[EMAIL PROTECTED]> wrote: > > > I believe that I've fixed this, actually. WOOT. > > Does this mean that this is not really an Opera issue, or something > that Opera should fix? > > -- > Christian Dysthe > http://www.dysthe.net > ICQ: 3945810 > Registered Linux User #228949 > > "Everybody ought to have a Lower East Side >in their life" > > -Irving Berlin- > -- %<--%< Jason Kasper (vanRijn) bash$ :(){ :|:&};: Numbers 6:24-26
Re: Blackbox allows several instances of Opera.
On 12-Dec-2001 Christian Dysthe wrote: > On 12 Dec 2001 14:32:15 -0500 > "Jason 'vanRijn' Kasper" <[EMAIL PROTECTED]> wrote: > >> I believe that I've fixed this, actually. WOOT. > > Does this mean that this is not really an Opera issue, or something > that Opera should fix? > Sounds like shoddy coding on Opera's part to me. That said, vanR's fix will likely go in.
Re: Blackbox allows several instances of Opera.
On 12 Dec 2001 14:32:15 -0500 "Jason 'vanRijn' Kasper" <[EMAIL PROTECTED]> wrote: > I believe that I've fixed this, actually. WOOT. Does this mean that this is not really an Opera issue, or something that Opera should fix? -- Christian Dysthe http://www.dysthe.net ICQ: 3945810 Registered Linux User #228949 "Everybody ought to have a Lower East Side in their life" -Irving Berlin-
Re: Blackbox allows several instances of Opera.
> > Slightly different. I've not had a chance to look at what exactly the > difference in results is =:) > wmaker unmaps the frame after the client which should not really matter. The piece of suspect code in my mind is the event mask bb uses. Notice how wmaker is careful to preserve the existing mask and blackbox just overwrites it.
Re: Blackbox allows several instances of Opera.
Actually, wmaker's code looks like this /* prevent window withdrawal when getting UnmapNotify */ XSelectInput(dpy, wwin->client_win, wwin->event_mask & ~StructureNotifyMask); XUnmapWindow(dpy, wwin->client_win); XSelectInput(dpy, wwin->client_win, wwin->event_mask); XUnmapWindow(dpy, wwin->frame->core->window); .. , whereas blackbox's code is this .. XUnmapWindow(display, frame.window); XSelectInput(display, client.window, NoEventMask); XUnmapWindow(display, client.window); XSelectInput(display, client.window, PropertyChangeMask | StructureNotifyMask | FocusChangeMask); Slightly different. I've not had a chance to look at what exactly the difference in results is =:) On Wed, 2001-12-12 at 14:41, Sean 'Shaleh' Perry wrote: > > > > Shaleh, please take a gander at this and see if you have any objections > > to putting it in 61.2. The affect that this has (at least with this > > opera situation) is that opera's state hasn't changed to Withdrawn and > > he's now able to receive the "open a new link" message. Now, granted, > > opera doesn't magically switch the desktop to where it is, but it does > > get the message to open a new link and doesn't open a brand new window > > on the current desktop > > > > So, again, the fix that I've come up with is as follows Window.cc > > should have this > > > > Window maker's code look just like yours vanR. I would like to know if Brad > had a reason for the state call. -- %<--%< Jason Kasper (vanRijn) bash$ :(){ :|:&};: Numbers 6:24-26
Re: Blackbox allows several instances of Opera.
> > Shaleh, please take a gander at this and see if you have any objections > to putting it in 61.2. The affect that this has (at least with this > opera situation) is that opera's state hasn't changed to Withdrawn and > he's now able to receive the "open a new link" message. Now, granted, > opera doesn't magically switch the desktop to where it is, but it does > get the message to open a new link and doesn't open a brand new window > on the current desktop > > So, again, the fix that I've come up with is as follows Window.cc > should have this > Window maker's code look just like yours vanR. I would like to know if Brad had a reason for the state call.
Re: Blackbox allows several instances of Opera.
I believe that I've fixed this, actually. WOOT. This has annoyed me to no end. The problem as I see it is that blackbox sets the window state for any window not currently on the current workspace to "withdrawn". I believe this causes opera to behave differently and not know that it already has a window open. If you comment out line 1428 (in my blackbox source anyway) of Window.cc, in BlackboxWindow::withdraw(void) where he does setState(WithdrawnState);, it should fix this. Brad, if you're reading is there any reason that this was put in? Simply XUnmapWindow'ing windows that aren't on the current workspace seems to work fine. Shaleh, please take a gander at this and see if you have any objections to putting it in 61.2. The affect that this has (at least with this opera situation) is that opera's state hasn't changed to Withdrawn and he's now able to receive the "open a new link" message. Now, granted, opera doesn't magically switch the desktop to where it is, but it does get the message to open a new link and doesn't open a brand new window on the current desktop So, again, the fix that I've come up with is as follows Window.cc should have this void BlackboxWindow::withdraw(void) { visible = False; iconic = False; // setState(WithdrawnState); XUnmapWindow(display, frame.window); XSelectInput(display, client.window, NoEventMask); XUnmapWindow(display, client.window); XSelectInput(display, client.window, PropertyChangeMask | StructureNotifyMask | FocusChangeMask); if (windowmenu) windowmenu->hide(); } On Wed, 2001-12-12 at 11:33, Sean 'Shaleh' Perry wrote: > On 12-Dec-2001 Christian Dysthe wrote: > > Hi, > > > > I asked about this a while back, but got no answer. Maybe someone > > now knows why Blackbox allows several instanses of Opera (the web > > browser) as long as each instance is opened on different desktops? > > > > For instance, if I click on a link in my mailer an Opera instance is > > opened even though another instance of Opera is running on another > > desktop. In other WM's a click on an e-mail link switches to the > > desktop where Opera is already running opening a window with the > > link content, while in Blackbox one is opened on the current > > desktop. > > > > I know for a fact that Opera is not designed to allow several > > instances of itself. So why is Blackbox allowing it for this > > application while other WM's I have tried this on (KDE, Gnome, IceWM > > and XFce) don't? > > > > That is not the wm's job. If the app wants to only allow one instance it can > handle that. Switching workspaces (desktops) is even worse behaviour. -- %<--%< Jason Kasper (vanRijn) bash$ :(){ :|:&};: Numbers 6:24-26
Re: Blackbox allows several instances of Opera.
On 12-Dec-2001 Christian Dysthe wrote: > Hi, > > I asked about this a while back, but got no answer. Maybe someone > now knows why Blackbox allows several instanses of Opera (the web > browser) as long as each instance is opened on different desktops? > > For instance, if I click on a link in my mailer an Opera instance is > opened even though another instance of Opera is running on another > desktop. In other WM's a click on an e-mail link switches to the > desktop where Opera is already running opening a window with the > link content, while in Blackbox one is opened on the current > desktop. > > I know for a fact that Opera is not designed to allow several > instances of itself. So why is Blackbox allowing it for this > application while other WM's I have tried this on (KDE, Gnome, IceWM > and XFce) don't? > That is not the wm's job. If the app wants to only allow one instance it can handle that. Switching workspaces (desktops) is even worse behaviour.
Blackbox allows several instances of Opera.
Hi, I asked about this a while back, but got no answer. Maybe someone now knows why Blackbox allows several instanses of Opera (the web browser) as long as each instance is opened on different desktops? For instance, if I click on a link in my mailer an Opera instance is opened even though another instance of Opera is running on another desktop. In other WM's a click on an e-mail link switches to the desktop where Opera is already running opening a window with the link content, while in Blackbox one is opened on the current desktop. I know for a fact that Opera is not designed to allow several instances of itself. So why is Blackbox allowing it for this application while other WM's I have tried this on (KDE, Gnome, IceWM and XFce) don't? TIA -- Christian Dysthe http://www.dysthe.net ICQ: 3945810 Registered Linux User #228949 "Everybody ought to have a Lower East Side in their life" -Irving Berlin-