Re: [Rhythmbox-devel] [patch] tray icon rework patch



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]