Re: Blackbox allows several instances of Opera.

2001-12-12 Thread Jason 'vanRijn' Kasper

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.

2001-12-12 Thread Sean 'Shaleh' Perry

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.

2001-12-12 Thread Christian Dysthe

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.

2001-12-12 Thread Sean 'Shaleh' Perry

> 
> 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.

2001-12-12 Thread Jason 'vanRijn' Kasper

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.

2001-12-12 Thread Sean 'Shaleh' Perry

> 
> 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.

2001-12-12 Thread Jason 'vanRijn' Kasper

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.

2001-12-12 Thread Sean 'Shaleh' Perry

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.

2001-12-12 Thread Christian Dysthe

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-