@@ -261,6 +261,7 @@ protected static void notifyAttributeChangeListeners(final HtmlAttributeChangeEv
261261 }
262262 }
263263 }
264+
264265 final DomNode parentNode = element .getParentNode ();
265266 if (parentNode instanceof HtmlElement htmlElement ) {
266267 notifyAttributeChangeListeners (event , htmlElement , oldAttributeValue , notifyMutationObservers );
@@ -696,34 +697,21 @@ public Page type(final Keyboard keyboard) throws IOException {
696697 final int key = (int ) entry [0 ];
697698 final boolean pressed = (boolean ) entry [1 ];
698699 switch (key ) {
699- case KeyboardEvent .DOM_VK_SHIFT :
700- shiftPressed_ = pressed ;
701- break ;
702-
703- case KeyboardEvent .DOM_VK_CONTROL :
704- ctrlPressed_ = pressed ;
705- break ;
706-
707- case KeyboardEvent .DOM_VK_ALT :
708- altPressed_ = pressed ;
709- break ;
710-
711- default :
700+ case KeyboardEvent .DOM_VK_SHIFT -> shiftPressed_ = pressed ;
701+ case KeyboardEvent .DOM_VK_CONTROL -> ctrlPressed_ = pressed ;
702+ case KeyboardEvent .DOM_VK_ALT -> altPressed_ = pressed ;
703+ default -> { }
712704 }
705+
713706 if (pressed ) {
714- boolean keyPress = true ;
715- boolean keyUp = true ;
716- switch (key ) {
717- case KeyboardEvent .DOM_VK_SHIFT :
718- case KeyboardEvent .DOM_VK_CONTROL :
719- case KeyboardEvent .DOM_VK_ALT :
720- keyPress = false ;
721- keyUp = false ;
722- break ;
723-
724- default :
707+ if (key == KeyboardEvent .DOM_VK_SHIFT
708+ || key == KeyboardEvent .DOM_VK_CONTROL
709+ || key == KeyboardEvent .DOM_VK_ALT ) {
710+ page = type (key , true , false , false , i == keys .size () - 1 );
711+ }
712+ else {
713+ page = type (key , true , true , true , i == keys .size () - 1 );
725714 }
726- page = type (key , true , keyPress , keyUp , i == keys .size () - 1 );
727715 }
728716 else {
729717 page = type (key , false , false , true , i == keys .size () - 1 );
@@ -794,18 +782,6 @@ private Page type(final int keyCode,
794782 fireEvent (keyUp );
795783 }
796784
797- // final HtmlForm form = getEnclosingForm();
798- // if (form != null && keyCode == '\n' && isSubmittableByEnter()) {
799- // if (!getPage().getWebClient().getBrowserVersion()
800- // .hasFeature(BUTTON_EMPTY_TYPE_BUTTON)) {
801- // final HtmlSubmitInput submit = form.getFirstByXPath(".//input[@type='submit']");
802- // if (submit != null) {
803- // return submit.click();
804- // }
805- // }
806- // form.submit((SubmittableElement) this);
807- // page.getWebClient().getJavaScriptEngine().processPostponedActions();
808- // }
809785 return page .getWebClient ().getCurrentWindow ().getEnclosedPage ();
810786 }
811787
@@ -846,13 +822,13 @@ private DomText getDoTypeNode() {
846822 if (scriptElement .isIsContentEditable ()
847823 || "on" .equals (((Document ) scriptElement .getOwnerDocument ()).getDesignMode ())) {
848824
849- DomNodeList < DomNode > children = getChildNodes () ;
850- while (! children . isEmpty () ) {
851- final DomNode lastChild = children . get ( children . size () - 1 );
852- if ( lastChild instanceof DomText text ) {
853- return text ;
854- }
855- children = lastChild . getChildNodes () ;
825+ DomNode node = this ;
826+ while (node . getLastChild () != null ) {
827+ node = node . getLastChild ( );
828+ }
829+
830+ if ( node instanceof DomText text ) {
831+ return text ;
856832 }
857833
858834 final DomText domText = new DomText (getPage (), "" );
0 commit comments