diff -rup gnome-applets-2.12.1.orig/stickynotes/stickynotes_applet.c gnome-applets-2.12.1/stickynotes/stickynotes_applet.c
--- gnome-applets-2.12.1.orig/stickynotes/stickynotes_applet.c	2005-07-13 15:38:36.000000000 +0200
+++ gnome-applets-2.12.1/stickynotes/stickynotes_applet.c	2006-04-22 21:24:38.000000000 +0200
@@ -170,6 +170,11 @@ stickynotes_applet_init (PanelApplet *pa
 	gnome_client_connect (client);
 	gnome_client_flush (client);
 	
+	stickynotes->notes_displayed = gconf_client_get_bool(stickynotes->gconf,
+				GCONF_PATH "/settings/notes_displayed_on_startup", NULL);
+	stickynotes->notes_toggle = gconf_client_get_bool(stickynotes->gconf,
+				GCONF_PATH "/settings/notes_applet_is_toggle", NULL);
+
 	/* Load sticky notes */
 	stickynotes_load (gtk_widget_get_screen (GTK_WIDGET (panel_applet)));
 	
diff -rup gnome-applets-2.12.1.orig/stickynotes/stickynotes_applet_callbacks.c gnome-applets-2.12.1/stickynotes/stickynotes_applet_callbacks.c
--- gnome-applets-2.12.1.orig/stickynotes/stickynotes_applet_callbacks.c	2005-07-13 15:38:36.000000000 +0200
+++ gnome-applets-2.12.1/stickynotes/stickynotes_applet_callbacks.c	2006-04-22 11:24:50.000000000 +0200
@@ -72,6 +72,7 @@ popup_add_note (StickyNotesApplet *apple
 static void
 stickynote_show_notes (gboolean visible)
 {
+	stickynotes->notes_displayed = visible;
 	StickyNote *note;
 	GList *l;
 
@@ -93,9 +94,9 @@ applet_button_cb (GtkWidget         *wid
 		popup_add_note (applet, NULL);
 		return TRUE;
 	}
-	else if (event->button == 1)
+	else if (event->button == 1 && event->type == GDK_BUTTON_RELEASE)
 	{
-		stickynote_show_notes (TRUE);
+		stickynote_show_notes (!stickynotes->notes_toggle || !stickynotes->notes_displayed);
 		return TRUE;
 	}
 
@@ -533,6 +534,11 @@ void preferences_apply_cb(GConfClient *c
 			stickynote_set_font(note, note->font, FALSE);
 		}
 	}
+	
+	else if (!strcmp (entry->key, GCONF_PATH "/settings/notes_applet_is_toggle"))
+	{
+		stickynotes->notes_toggle = gconf_value_get_bool(entry->value);
+	}
 
 	stickynotes_applet_update_prefs();
 	stickynotes_applet_update_menus();
diff -rup gnome-applets-2.12.1.orig/stickynotes/stickynotes_applet.h gnome-applets-2.12.1/stickynotes/stickynotes_applet.h
--- gnome-applets-2.12.1.orig/stickynotes/stickynotes_applet.h	2005-07-13 15:38:36.000000000 +0200
+++ gnome-applets-2.12.1/stickynotes/stickynotes_applet.h	2006-04-22 21:15:55.000000000 +0200
@@ -65,6 +65,9 @@ typedef struct
 
 	GConfClient *gconf;		/* GConf Client */
 	GtkTooltips *tooltips;		/* Tooltips */
+	
+	gboolean notes_displayed; /* Whether or not the notes are displayed */
+	gboolean notes_toggle; /* Whether the panel icon behaves like a toggle */
 } StickyNotes;
 
 /* Sticky Notes Icons */
diff -rup gnome-applets-2.12.1.orig/stickynotes/stickynotes.c gnome-applets-2.12.1/stickynotes/stickynotes.c
--- gnome-applets-2.12.1.orig/stickynotes/stickynotes.c	2005-08-20 04:31:23.000000000 +0200
+++ gnome-applets-2.12.1/stickynotes/stickynotes.c	2006-04-18 20:57:22.000000000 +0200
@@ -926,12 +926,13 @@ stickynotes_load (GdkScreen *screen)
 	wnck_screen_force_update (wnck_screen);
 	*/
 
-	while (tmp1)
-	{
-		StickyNote *note = tmp1->data;
-
-		stickynote_set_visible (note, TRUE);
-		tmp1 = tmp1->next;
+	if (stickynotes->notes_displayed) {
+		while (tmp1)
+		{
+			StickyNote *note = tmp1->data;
+			stickynote_set_visible (note, TRUE);
+			tmp1 = tmp1->next;
+		}
 	}
 
 	g_list_free (new_notes);
diff -rup gnome-applets-2.12.1.orig/stickynotes/stickynotes.schemas.in gnome-applets-2.12.1/stickynotes/stickynotes.schemas.in
--- gnome-applets-2.12.1.orig/stickynotes/stickynotes.schemas.in	2005-07-13 15:38:36.000000000 +0200
+++ gnome-applets-2.12.1/stickynotes/stickynotes.schemas.in	2006-04-22 11:11:39.000000000 +0200
@@ -157,5 +157,29 @@
 	</locale>
 </schema>
 
+<schema>
+	<key>/schemas/apps/stickynotes_applet/settings/notes_displayed_on_startup</key>
+	<applyto>/apps/stickynotes_applet/settings/notes_displayed_on_startup</key>
+	<owner>stickynotes_applet</owner>
+	<type>bool</type>
+	<default>true</default>
+	<locale name="C">
+		<short>Whether the notes is displayed when the applet is started</short>
+		<long>If this option is set, all notes will be displayed when the applet is started</long>
+	</locale>
+</schema>
+
+<schema>
+	<key>/schemas/apps/stickynotes_applet/settings/notes_applet_is_toggle</key>
+	<applyto>/apps/stickynotes_applet/settings/notes_applet_is_toggle</key>
+	<owner>stickynotes_applet</owner>
+	<type>bool</type>
+	<default>false</default>
+	<locale name="C">
+		<short>Controls whether clicking on the applet will show or toggle the notes</short>
+		<long>If this option is set, clicking on the notes applet when the notes are displayed will hide them</long>
+	</locale>
+</schema>
+
 </schemalist>
 </gconfschemafile>
