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