diff --git a/core/js/apps.js b/core/js/apps.js
index 5f221bb9826a045b294741ffa057ddc7d1bb15f2..d874f8598fa3481e21e13a274e7fbab1114d857a 100644
--- a/core/js/apps.js
+++ b/core/js/apps.js
@@ -43,15 +43,26 @@
                 var areaSelector = $(button).data('apps-slide-toggle');
                 var area = $(areaSelector);
 
+				function hideArea() {
+					area.slideUp(function() {
+						area.trigger(new $.Event('hide'));
+					});
+				}
+				function showArea() {
+					area.slideDown(function() {
+						area.trigger(new $.Event('show'));
+					});
+				}
+
                 // do nothing if the area is animated
                 if (!area.is(':animated')) {
 
                     // button toggles the area
                     if (button === event.target) {
                         if (area.is(':visible')) {
-                            area.slideUp();
+                            hideArea();
                         } else {
-                            area.slideDown();
+                            showArea();
                         }
 
                     // all other areas that have not been clicked but are open
@@ -59,7 +70,7 @@
                     } else {
                         var closest = $(event.target).closest(areaSelector);
                         if (area.is(':visible') && closest[0] !== area[0]) {
-                            area.slideUp();
+                            hideArea();
                         }
                     }
                 }
@@ -73,4 +84,4 @@
         registerAppsSlideToggle();
     });
 
-}(document, jQuery, OC));
\ No newline at end of file
+}(document, jQuery, OC));