On Sat, 2005-11-12 at 08:22 +0100, Paul van Tilburg wrote: > On Sat, Nov 12, 2005 at 03:03:41PM +1100, James Livingston wrote: > > If Rhythmbox isn't the focused top-level window, cvs currently requires > > two click because the first will bring it to the front (described > > below). Perhaps we should change this, if it annoying people. > > I didn't know yet that this was done on purpose :). I think it was done that way because it was easy to do, and we didn't think it would cause problems. I've attached a patch that does it in a better way; which treats it as not visible when on another workspace, and visible when it's on the current one but not on top. If someone can check that it works and I haven't done anything stupid, I'll commit it to cvs. > Hmm. Gossip moves itself to the current desktop if it is visible but on > another desktop. This feels quite natural actually, it is however indeed > different from what the window list and selector do. > It's more the meaning that is different, with the window list/selector, > I mean: take me there, but with a click on a trayicon of Gossip or Rhythmbox > or whatever application, I mean: you're not visibile, show yourself. I guess it really depends on how you use your workspaces. What you've said makes perfect sense, but I always keep Rhythmbox on a particular workspace so go-to-workspace works better for me. I don't think it really matters too much, so we might as well leave it as-is. Cheers, James "Doc" Livingston -- If at first you don't succeed, sky diving is not for you.
diff -u -u -r1.355 rb-shell.c --- shell/rb-shell.c 16 Nov 2005 03:05:19 -0000 1.355 +++ shell/rb-shell.c 16 Nov 2005 06:59:21 -0000 @@ -1147,14 +1147,18 @@ static gboolean rb_shell_get_visibility (RBShell *shell) { - rb_debug ("FOO %d %d %d", - GTK_WIDGET_REALIZED (shell->priv->window), - !shell->priv->iconified, - gtk_window_is_active (GTK_WINDOW (shell->priv->window))); + GdkWindowState state; - return GTK_WIDGET_REALIZED (shell->priv->window) - && !shell->priv->iconified; -/* && gtk_window_is_active (GTK_WINDOW (shell->priv->window));*/ + if (!GTK_WIDGET_REALIZED (shell->priv->window)) + return FALSE; + if (shell->priv->iconified) + return FALSE; + + state = gdk_window_get_state (GTK_WIDGET (shell->priv->window)->window); + if (state & (GDK_WINDOW_STATE_WITHDRAWN | GDK_WINDOW_STATE_ICONIFIED)) + return FALSE; + + return TRUE; } static gboolean
Attachment:
signature.asc
Description: This is a digitally signed message part