Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Pressing CTRL+ALT+DEL closes the active tab

SA-12312

Summary



When an item (rule or work object) is loaded in a tab, either in the designer studio or an end-user portal, and CTRL+ALT+DEL is pressed to lock the screen, then the item is getting closed. Sometimes this will only happen after the actions menu is opened, but sometimes it can occur as soon as the item is loaded. This has been shown to happen in multiple 7.1.5 environments, but does not appear to happen in a 7.1.7 or 7.1.8 environment.

On the 7.1.5 environment, this has been shown to occur on IE8, IE9 and Chrome.


Error Messages



No Error Message.

Steps to Reproduce



Open a work item in an end-user portal, or a rule such as an activity in the designer studio. Press the actions menu. Press CTRL+ALT+DEL to lock the screen. On unlocking the screen, the work item tab will be closed.

Root Cause



The root cause of this problem is a defect in Pegasystems’ code/rules.
Till ML5 the close event is applied on ctrl+Alt+Del which is then changed to Alt+Del in ML6


Resolution



This issue is resolved in ML6
For ML5 and below it can be fixed through the following local change:

1. Save the userworkform HTML Fragment rule in applcation ruleset.
2. copy the below code into userworkform



<script>
pega.u.d.tabContentAccessibilityHandler = function(ev){
var AccessKeyMap = pega.ui.accessibility.AccessKeyMap;
var tabObj = arguments[1], tabPos = "Top",
liElement = tabObj.get("element");
var pegaTabbedDiv = liElement.parentElement;
while (pegaTabbedDiv && pegaTabbedDiv.id.indexOf("PEGA_TABBED") < 0) {
pegaTabbedDiv = pegaTabbedDiv.parentElement;
}
if (pegaTabbedDiv != null) {
tabPos = pegaTabbedDiv.getAttribute("data-pos");
}
if (tabPos == "" && $("body").hasClass("screen-layout-body")) {
pegaTabbedDiv = $(".dc-main").children().eq(0)[0];
if (pegaTabbedDiv && pegaTabbedDiv.id.indexOf("PEGA_TABBED") >= 0) {
tabPos = pegaTabbedDiv.getAttribute("data-pos");
}
}
switch (ev.type) {
case 'keyup':
if (ev[AccessKeyMap.CLOSE_TAB.modifier1]
&& !ev['ctrlKey']
&& AccessKeyMap.CLOSE_TAB.keyCode == ev.keyCode
&& tabObj.attribs && tabObj.attribs.close == 'yes') {
pega.u.d.doClose.call(pega.u.d, arguments[0]);
} else if (ev[AccessKeyMap.PREVIOUS_TAB_CONTENT.modifier1] && AccessKeyMap.PREVIOUS_TAB_CONTENT.keyCode == ev.keyCode) {
pega.util.Event.preventDefault(ev); // For handling in FF and Chrome.
pega.util.Event.stopPropagation(ev);
var prevLiElement = $(liElement).prev();

if (prevLiElement.length != 0) {
prevLiElement[0].focus();
prevLiElement[0].click();
} else if (prevLiElement.length == 0) {
if (tabPos == "Top") {
$(liElement).parent().children().eq(-2)[0].click();
} else {
$(liElement).parent().children().eq(-1)[0].click();
}
}
} else if (ev[AccessKeyMap.NEXT_TAB_CONTENT.modifier1] && AccessKeyMap.NEXT_TAB_CONTENT.keyCode == ev.keyCode) {
pega.util.Event.preventDefault(ev); // For handling in FF and Chrome.
pega.util.Event.stopPropagation(ev);
var nextLiElement = $(liElement).next();

if (nextLiElement.length > 0 && nextLiElement[0].id != "") {
nextLiElement[0].focus();
nextLiElement[0].click();
} else {
$(liElement).parent().children().eq(0)[0].click();
}
}
break;
}

}

</script>

 

Published July 17, 2015 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us