Index: frontends/php/include/blocks.inc.php
===================================================================
--- frontends/php/include/blocks.inc.php	(revision 55764)
+++ frontends/php/include/blocks.inc.php	(working copy)
@@ -567,7 +567,9 @@
 	];
 
 	$triggers = API::Trigger()->get(array_merge($options, [
-		'output' => ['triggerid', 'state', 'error', 'url', 'expression', 'description', 'priority', 'lastchange'],
+		'output' => ['triggerid', 'expression', 'description', 'url', 'priority', 'lastchange', 'comments', 'error',
+			'state'
+		],
 		'selectHosts' => ['hostid', 'name'],
 		'selectLastEvent' => ['eventid', 'acknowledged', 'objectid', 'clock', 'ns'],
 		'withLastEventUnacknowledged' => (isset($filter['extAck']) && $filter['extAck'] == EXTACK_OPTION_UNACK)
@@ -746,18 +748,10 @@
 		}
 
 		// description
-		if ($trigger['url'] !== '') {
-			$description = (new CLink($description, $trigger['url']))->removeSID();
-		}
-		else {
-			$description = (new CSpan($description))->addClass(ZBX_STYLE_LINK_ACTION);
-		}
+		$description = (new CSpan($description))->addClass(ZBX_STYLE_LINK_ACTION);
+
 		if ($trigger['lastEvent']) {
-			$description->setHint(
-				make_popup_eventlist($trigger['triggerid'], $trigger['lastEvent']['eventid'], $backurl),
-				'',
-				$trigger['url'] === ''
-			);
+			$description->setHint(make_popup_eventlist($trigger, $backurl), '', true, 'max-width: 500px');
 		}
 		$description = (new CCol($description))->addClass(getSeverityStyle($trigger['priority']));
 
Index: frontends/php/include/classes/html/CTag.php
===================================================================
--- frontends/php/include/classes/html/CTag.php	(revision 55764)
+++ frontends/php/include/classes/html/CTag.php	(working copy)
@@ -155,16 +155,20 @@
 	}
 
 	/**
-	 * Adds a hint box to the elemt.
+	 * Adds a hint box to the element.
 	 *
-	 * @param string|array|CTag     $text          hint content
-	 * @param string                $spanClass     wrap the content in a span element and assign a this class to the span
-	 * @param bool                  $freezeOnCLick if set to true, it will be possible to "freeze" the hint box via a mouse
-	 *                                          click
+	 * @param string|array|CTag		$text				Hint content.
+	 * @param string				$span_class			Wrap the content in a span element and assign this class
+	 *													to the span.
+	 * @param bool					$freeze_on_click	If set to true, it will be possible to "freeze" the hint box
+	 *													via a mouse click.
+	 * @param string				$styles				Custom css styles.
+	 *													Syntax:
+	 *														property1: value1; property2: value2; property(n): value(n)
 	 *
 	 * @return bool
 	 */
-	public function setHint($text, $spanClass = '', $freezeOnClick = true) {
+	public function setHint($text, $span_class = '', $freeze_on_click = true, $styles = '') {
 		if (empty($text)) {
 			return $this;
 		}
@@ -172,10 +176,16 @@
 		encodeValues($text);
 		$text = unpack_object($text);
 
-		$this->onMouseover('hintBox.HintWraper(event, this, '.zbx_jsvalue($text).', "'.$spanClass.'");');
-		if ($freezeOnClick) {
-			$this->onClick('hintBox.showStaticHint(event, this, '.zbx_jsvalue($text).', "'.$spanClass.'");');
+		$this->onMouseover(
+			'hintBox.HintWraper(event, this, '.zbx_jsvalue($text).', "'.$span_class.'", "'.$styles.'");'
+		);
+
+		if ($freeze_on_click) {
+			$this->onClick(
+				'hintBox.showStaticHint(event, this, '.zbx_jsvalue($text).', "'.$span_class.'", false, "'.$styles.'");'
+			);
 		}
+
 		return $this;
 	}
 
Index: frontends/php/include/defines.inc.php
===================================================================
--- frontends/php/include/defines.inc.php	(revision 55764)
+++ frontends/php/include/defines.inc.php	(working copy)
@@ -1125,6 +1125,8 @@
 define('ZBX_STYLE_NOWRAP', 'nowrap');
 define('ZBX_STYLE_ORANGE', 'orange');
 define('ZBX_STYLE_OVERLAY_CLOSE_BTN', 'overlay-close-btn');
+define('ZBX_STYLE_OVERLAY_DESCR', 'overlay-descr');
+define('ZBX_STYLE_OVERLAY_DESCR_URL', 'overlay-descr-url');
 define('ZBX_STYLE_OVERFLOW_ELLIPSIS', 'overflow-ellipsis');
 define('ZBX_STYLE_OBJECT_GROUP', 'object-group');
 define('ZBX_STYLE_RADIO_SEGMENTED', 'radio-segmented');
Index: frontends/php/include/events.inc.php
===================================================================
--- frontends/php/include/events.inc.php	(revision 55764)
+++ frontends/php/include/events.inc.php	(working copy)
@@ -259,8 +259,42 @@
 
 	return $table;
 }
+/**
+ * Create table with trigger description and events.
+ *
+ * @param array $trigger							An array of trigger data.
+ *
+ * @param string $trigger['triggerid']				Trigger ID to select events.
+ * @param string $trigger['description']			Trigger description.
+ * @param string $trigger['url']					Trigger URL.
+ * @param string $trigger['lastEvent']['eventid']	Last event ID
+ * @param string $backurl							URL to return to.
+ *
+ * @return CDiv
+ */
+function make_popup_eventlist($trigger, $backurl) {
+	// Show trigger description and URL.
+	$div = (new CDiv());
 
-function make_popup_eventlist($triggerId, $eventId, $backurl) {
+	if ($trigger['comments'] !== '') {
+		$trigger['comments'] = zbx_str2links($trigger['comments']);
+
+		$div->addItem(
+			(new CDiv())
+				->addClass(ZBX_STYLE_OVERLAY_DESCR)
+				->addItem($trigger['comments'])
+		);
+	}
+
+	if ($trigger['url'] !== '') {
+		$div->addItem(
+			(new CDiv())
+				->addClass(ZBX_STYLE_OVERLAY_DESCR_URL)
+				->addItem((new CLink($trigger['url'], $trigger['url']))->removeSID())
+		);
+	}
+
+	// Select and show events.
 	$config = select_config();
 
 	$table = new CTableInfo();
@@ -277,8 +311,8 @@
 		'source' => EVENT_SOURCE_TRIGGERS,
 		'object' => EVENT_OBJECT_TRIGGER,
 		'output' => API_OUTPUT_EXTEND,
-		'objectids' => $triggerId,
-		'eventid_till' => $eventId,
+		'objectids' => $trigger['triggerid'],
+		'eventid_till' => $trigger['lastEvent']['eventid'],
 		'select_acknowledges' => API_OUTPUT_COUNT,
 		'sortfield' => ['clock', 'eventid'],
 		'sortorder' => ZBX_SORT_DOWN,
@@ -305,7 +339,9 @@
 		]);
 	}
 
-	return $table;
+	$div->addItem($table);
+
+	return $div;
 }
 
 /**
Index: frontends/php/include/views/js/administration.general.iconmap.js.php
===================================================================
--- frontends/php/include/views/js/administration.general.iconmap.js.php	(revision 55764)
+++ frontends/php/include/views/js/administration.general.iconmap.js.php	(working copy)
@@ -92,7 +92,7 @@
 			})
 			.delegate('img.preview', 'click', function(e) {
 				var img = $('<img>', {src: $(this).data('imageFull')});
-				hintBox.showStaticHint(e, this, img, '', '', true);
+				hintBox.showStaticHint(e, this, img, '', true);
 			});
 
 		addMappindButton.click(function() {
Index: frontends/php/js/main.js
===================================================================
--- frontends/php/js/main.js	(revision 55764)
+++ frontends/php/js/main.js	(working copy)
@@ -363,9 +363,23 @@
  */
 var hintBox = {
 
-	createBox: function(e, target, hintText, className, isStatic) {
+	createBox: function(e, target, hintText, className, isStatic, styles) {
 		var box = jQuery('<div></div>').addClass('overlay-dialogue');
 
+		if (styles) {
+			// property1: value1; property2: value2; property(n): value(n)
+
+			var style_list = styles.split(';');
+
+			for (var i = 0; i < style_list.length; i++) {
+				var style_props = style_list[i].split(':');
+
+				if (style_props[1]) {
+					box.css(style_props[0].trim(), style_props[1].trim());
+				}
+			}
+		}
+
 		if (typeof hintText === 'string') {
 			hintText = hintText.replace(/\n/g, '<br />');
 		}
@@ -392,7 +406,7 @@
 		return box;
 	},
 
-	HintWraper: function(e, target, hintText, className) {
+	HintWraper: function(e, target, hintText, className, styles) {
 		target.isStatic = false;
 
 		jQuery(target).on('mouseenter', function(e, d) {
@@ -399,7 +413,7 @@
 			if (d) {
 				e = d;
 			}
-			hintBox.showHint(e, target, hintText, className, false);
+			hintBox.showHint(e, target, hintText, className, false, styles);
 
 		}).on('mouseleave', function(e) {
 			hintBox.hideHint(e, target);
@@ -412,13 +426,13 @@
 		jQuery(target).trigger('mouseenter', e);
 	},
 
-	showStaticHint: function(e, target, hint, className, resizeAfterLoad) {
+	showStaticHint: function(e, target, hint, className, resizeAfterLoad, styles) {
 		var isStatic = target.isStatic;
 		hintBox.hideHint(e, target, true);
 
 		if (!isStatic) {
 			target.isStatic = true;
-			hintBox.showHint(e, target, hint, className, true);
+			hintBox.showHint(e, target, hint, className, true, styles);
 
 			if (resizeAfterLoad) {
 				hint.one('load', function(e) {
@@ -428,12 +442,12 @@
 		}
 	},
 
-	showHint: function(e, target, hintText, className, isStatic) {
+	showHint: function(e, target, hintText, className, isStatic, styles) {
 		if (target.hintBoxItem) {
 			return;
 		}
 
-		target.hintBoxItem = hintBox.createBox(e, target, hintText, className, isStatic);
+		target.hintBoxItem = hintBox.createBox(e, target, hintText, className, isStatic, styles);
 		hintBox.positionHint(e, target);
 		target.hintBoxItem.show();
 	},
Index: frontends/php/styles/blue-theme.css
===================================================================
--- frontends/php/styles/blue-theme.css	(revision 55764)
+++ frontends/php/styles/blue-theme.css	(working copy)
@@ -578,7 +578,8 @@
   white-space: nowrap; }
 
 .overflow-table {
-  overflow-x: auto; }
+  overflow-x: auto;
+  position: relative; }
 
 /* Filters */
 .filter-btn-container {
@@ -1018,6 +1019,8 @@
 select {
   padding: 3px 3px 3px 0;
   background-color: #fff; }
+  select option {
+    color: #1f2c33; }
   select.select-multiple {
     padding: 4px 5px;
     width: 300px;
@@ -1515,7 +1518,7 @@
     border: none; }
     .dashbrd-widget .list-table tbody tr:last-child td {
       border-bottom: 1px solid #ebeef0; }
-  .dashbrd-widget .debug-output {
+  .dashbrd-widget .debug-output, .dashbrd-widget .overlay-descr {
     margin: 10px 10px 0 10px;
     max-height: 300px;
     border-color: #ebeef0; }
@@ -1855,8 +1858,8 @@
   border: 3px dashed #e99003;
   margin: -3px; }
 
-/* Debug */
-.debug-output {
+/* Debug, Overlay Description */
+.debug-output, .overlay-descr {
   max-height: 600px;
   overflow-y: auto;
   padding: 11px;
@@ -1875,11 +1878,19 @@
   -moz-border-radius: 2px;
   border-radius: 2px; }
 
+.overlay-descr {
+  max-height: 150px;
+  margin: 5px 0;
+  background-color: #fff; }
+
+.overlay-descr-url {
+  padding: 3px 11px 0 11px; }
+
 /* Alerts */
 .green, a.green {
   color: #429e47; }
 
-.red, a.red {
+.red, a.red, select.red, select option.red {
   color: #e33734; }
 
 .orange, a.orange {
@@ -2019,9 +2030,9 @@
   right: -6px;
   border: 2px solid #ebeef0;
   background-color: #34af67;
-  -webkit-border-radius: 50%;
-  -moz-border-radius: 50%;
-  border-radius: 50%; }
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px; }
 
 .msg-good {
   color: #2a502c;
@@ -2101,7 +2112,7 @@
   display: none;
   position: fixed;
   bottom: 0;
-  z-index: 10000;
+  z-index: 20000;
   width: 100%;
   padding: 5px 5px;
   text-align: center;
@@ -2269,11 +2280,11 @@
   padding: 10px 0 0 0;
   text-align: center; }
 
-.available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .msg-details::-webkit-scrollbar {
+.available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .msg-details::-webkit-scrollbar {
   width: 9px; }
-.available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .msg-details::-webkit-scrollbar-track {
+.available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .msg-details::-webkit-scrollbar-track {
   background-color: #ebebeb; }
-.available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .msg-details::-webkit-scrollbar-thumb {
+.available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .msg-details::-webkit-scrollbar-thumb {
   background-color: #ccd5d9;
   border: 1px solid #bdc9ce; }
 
@@ -2310,3 +2321,5 @@
 
 .uppercase {
   text-transform: uppercase; }
+
+/*# sourceMappingURL=blue-theme.css.map */
Index: frontends/php/styles/dark-theme.css
===================================================================
--- frontends/php/styles/dark-theme.css	(revision 55764)
+++ frontends/php/styles/dark-theme.css	(working copy)
@@ -578,7 +578,8 @@
   white-space: nowrap; }
 
 .overflow-table {
-  overflow-x: auto; }
+  overflow-x: auto;
+  position: relative; }
 
 /* Filters */
 .filter-btn-container {
@@ -1018,6 +1019,8 @@
 select {
   padding: 3px 3px 3px 0;
   background-color: #383838; }
+  select option {
+    color: #f2f2f2; }
   select.select-multiple {
     padding: 4px 5px;
     width: 300px;
@@ -1515,7 +1518,7 @@
     border: none; }
     .dashbrd-widget .list-table tbody tr:last-child td {
       border-bottom: 1px solid #383838; }
-  .dashbrd-widget .debug-output {
+  .dashbrd-widget .debug-output, .dashbrd-widget .overlay-descr {
     margin: 10px 10px 0 10px;
     max-height: 300px;
     border-color: #383838; }
@@ -1855,8 +1858,8 @@
   border: 3px dashed #e99003;
   margin: -3px; }
 
-/* Debug */
-.debug-output {
+/* Debug, Overlay Description */
+.debug-output, .overlay-descr {
   max-height: 600px;
   overflow-y: auto;
   padding: 11px;
@@ -1875,11 +1878,19 @@
   -moz-border-radius: 2px;
   border-radius: 2px; }
 
+.overlay-descr {
+  max-height: 150px;
+  margin: 5px 0;
+  background-color: #2b2b2b; }
+
+.overlay-descr-url {
+  padding: 3px 11px 0 11px; }
+
 /* Alerts */
 .green, a.green {
   color: #59db8f; }
 
-.red, a.red {
+.red, a.red, select.red, select option.red {
   color: #e45959; }
 
 .orange, a.orange {
@@ -2019,9 +2030,9 @@
   right: -6px;
   border: 2px solid #0e1012;
   background-color: #34af67;
-  -webkit-border-radius: 50%;
-  -moz-border-radius: 50%;
-  border-radius: 50%; }
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px; }
 
 .msg-good {
   color: #2f9f5e;
@@ -2101,7 +2112,7 @@
   display: none;
   position: fixed;
   bottom: 0;
-  z-index: 10000;
+  z-index: 20000;
   width: 100%;
   padding: 5px 5px;
   text-align: center;
@@ -2269,11 +2280,11 @@
   padding: 10px 0 0 0;
   text-align: center; }
 
-.available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .msg-details::-webkit-scrollbar {
+.available::-webkit-scrollbar, textarea::-webkit-scrollbar, select::-webkit-scrollbar, .setup-right-body::-webkit-scrollbar, .overlay-dialogue .maps-container::-webkit-scrollbar, .notif-body::-webkit-scrollbar, .debug-output::-webkit-scrollbar, .overlay-descr::-webkit-scrollbar, .msg-details::-webkit-scrollbar {
   width: 9px; }
-.available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .msg-details::-webkit-scrollbar-track {
+.available::-webkit-scrollbar-track, textarea::-webkit-scrollbar-track, select::-webkit-scrollbar-track, .setup-right-body::-webkit-scrollbar-track, .overlay-dialogue .maps-container::-webkit-scrollbar-track, .notif-body::-webkit-scrollbar-track, .debug-output::-webkit-scrollbar-track, .overlay-descr::-webkit-scrollbar-track, .msg-details::-webkit-scrollbar-track {
   background-color: #1f1f1f; }
-.available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .msg-details::-webkit-scrollbar-thumb {
+.available::-webkit-scrollbar-thumb, textarea::-webkit-scrollbar-thumb, select::-webkit-scrollbar-thumb, .setup-right-body::-webkit-scrollbar-thumb, .overlay-dialogue .maps-container::-webkit-scrollbar-thumb, .notif-body::-webkit-scrollbar-thumb, .debug-output::-webkit-scrollbar-thumb, .overlay-descr::-webkit-scrollbar-thumb, .msg-details::-webkit-scrollbar-thumb {
   background-color: #383838;
   border: 1px solid #2b2b2b; }
 
@@ -2310,3 +2321,5 @@
 
 .uppercase {
   text-transform: uppercase; }
+
+/*# sourceMappingURL=dark-theme.css.map */
