2016-12-06 10 views

Antwort

1

Ich bin mir nicht ganz sicher, dass das, was Sie versuchen, zu erreichen, was für die qx.ui.core.Blocker vorgesehen war. Die Implementierung berücksichtigt nicht, dass der Fokus während des Blocks verschoben wird.

Wenn Sie die Methode aufrufen block der Code des Widgets zu bestimmen versucht, die vor der Block fertig fokussiert wurde, und speichert diese Widget setzt dann der Fokus auf das Widget blockiert werden und stellt den Fokus auf die gespeicherte Widget beim Entsperren.

Mit einem kleinen Zusatz in einer Unterklasse, könnten Sie, dass der Fokus Speicher/Wiederherstellen vermeiden:

qx.Class.define("qx.ui.core.MyBlocker", 
    { 
    extend : qx.ui.core.Blocker, 

    properties : { 

     backupActiveWidget : 
     { 
     check : "Boolean", 
     init : true 
     } 

    }, 

    members : { 
     // overridden 
     _backupActiveWidget : function() { 
     if(this.getBackupActiveWidget() === false) { 
      return 
     } 

     this.base(arguments); 
     } 
    } 
    }); 

und den Blocker auf diese Weise verwenden:

var blocker = new qx.ui.core.MyBlocker(widgetToBeBlocked); 
blocker.setBackupActiveWidget(false); 

Dieser den Blocker aus Stehlen verhindern sollte der Fokus, der während des Blocks eingestellt werden kann.

Verwandte Themen