diff --git a/EVENTS.txt b/EVENTS.txt
index 1a3b2594a2..65e2c3ce03 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -1066,3 +1066,15 @@ EndRssEntryArray: at the end of copying a notice to an array
NoticeDeleteRelated: at the beginning of deleting related fields to a notice
- $notice: notice being deleted
+
+StartShowHeadTitle: when beginning to show the
element
+- $action: action being shown
+
+EndShowHeadTitle: when done showing the
+- $action: action being shown
+
+StartShowPageTitle: when beginning to show the page title
+- $action: action being shown
+
+EndShowPageTitle: when done showing the page title
+- $action: action being shown
\ No newline at end of file
diff --git a/lib/action.php b/lib/action.php
index 2b3b707c59..1d85f19e99 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -121,7 +121,10 @@ class Action extends HTMLOutputter // lawsuit
// XXX: attributes (profile?)
$this->elementStart('head');
if (Event::handle('StartShowHeadElements', array($this))) {
- $this->showTitle();
+ if (Event::handle('StartShowHeadTitle', array($this))) {
+ $this->showTitle();
+ Event::handle('EndShowHeadTitle', array($this));
+ }
$this->showShortcutIcon();
$this->showStylesheets();
$this->showOpenSearch();
@@ -235,7 +238,7 @@ class Action extends HTMLOutputter // lawsuit
Event::handle('EndShowDesign', array($this));
}
Event::handle('EndShowStyles', array($this));
-
+
if (common_config('custom_css', 'enabled')) {
$css = common_config('custom_css', 'css');
if (Event::handle('StartShowCustomCss', array($this, &$css))) {
@@ -616,7 +619,10 @@ class Action extends HTMLOutputter // lawsuit
function showContentBlock()
{
$this->elementStart('div', array('id' => 'content'));
- $this->showPageTitle();
+ if (Event::handle('StartShowPageTitle', array($this))) {
+ $this->showPageTitle();
+ Event::handle('EndShowPageTitle', array($this));
+ }
$this->showPageNoticeBlock();
$this->elementStart('div', array('id' => 'content_inner'));
// show the actual content (forms, lists, whatever)