← Back to team overview

cairo-dock-team team mailing list archive

[Merge] lp:~matttbe/cairo-dock-plug-ins/SN-hide-icon into lp:cairo-dock-plug-ins

 

Matthieu Baerts has proposed merging lp:~matttbe/cairo-dock-plug-ins/SN-hide-icon into lp:cairo-dock-plug-ins.

Requested reviews:
  Fabounet (fabounet03)

For more details, see:
https://code.launchpad.net/~matttbe/cairo-dock-plug-ins/SN-hide-icon/+merge/96740

It's just to hide Status-Notifier icon if no application uses it.
-- 
https://code.launchpad.net/~matttbe/cairo-dock-plug-ins/SN-hide-icon/+merge/96740
Your team Cairo-Dock Team is subscribed to branch lp:cairo-dock-plug-ins.
=== modified file 'Status-Notifier/src/applet-draw.c'
--- Status-Notifier/src/applet-draw.c	2012-01-31 01:01:11 +0000
+++ Status-Notifier/src/applet-draw.c	2012-03-09 10:34:19 +0000
@@ -190,6 +190,11 @@
 void cd_satus_notifier_reload_compact_mode (void)
 {
 	cd_debug ("=== %s ()", __func__);
+
+	cd_status_notifier_remove_or_add_icons_if_no_item ();
+	if (myData.bIsHidden)
+		return;
+
 	// re-compute the grid.
 	int iPrevSize = myData.iItemSize;
 	if (myConfig.bResizeIcon)
@@ -317,3 +322,17 @@
 		}
 	}
 }
+
+void cd_status_notifier_remove_or_add_icons_if_no_item (void)
+{
+	if (g_list_length (myData.pItems) == 0)
+	{ // hide the icon if no items in the stack
+		cairo_dock_detach_icon_from_dock (myIcon, myDock);
+		myData.bIsHidden = TRUE;
+	}
+	else if (myData.bIsHidden)
+	{
+		cairo_dock_insert_icon_in_dock (myIcon, myDock, CAIRO_DOCK_ANIMATE_ICON);
+		myData.bIsHidden = FALSE;
+	}
+}

=== modified file 'Status-Notifier/src/applet-init.c'
--- Status-Notifier/src/applet-init.c	2012-01-02 01:37:37 +0000
+++ Status-Notifier/src/applet-init.c	2012-03-09 10:34:19 +0000
@@ -90,11 +90,13 @@
 		}
 	}
 	
+	myData.bIsHidden = FALSE;
 	myData.iDefaultWidth = myIcon->iImageWidth;
 	myData.iDefaultHeight = myIcon->iImageHeight;
 	cd_debug ("=== default size: %dx%d", myData.iDefaultWidth, myData.iDefaultHeight);
 	
 	cd_satus_notifier_launch_service ();
+	
 CD_APPLET_INIT_END
 
 

=== modified file 'Status-Notifier/src/applet-struct.h'
--- Status-Notifier/src/applet-struct.h	2012-03-05 10:27:02 +0000
+++ Status-Notifier/src/applet-struct.h	2012-03-09 10:34:19 +0000
@@ -120,6 +120,7 @@
 	gdouble fDesktopNameAlpha;  // in compact desklet mode, alpha for the currently hovered item title.
 	gint iDefaultWidth;  // in compact mode, initial icon size.
 	gint iDefaultHeight;
+	gboolean bIsHidden;
 	} ;