2016-12-06 116 views

回答

1

我不太確定你試圖達到的是什麼qx.ui.core.Blocker的目的。實施沒有考慮到在該區塊期間焦點被移動。

如果調用block代碼試圖確定哪些是重點之前的程序完成並保存該插件的插件的方法,然後將焦點設置給小窗口以被阻塞,恢復的重點,以保存窗口小部件當解鎖時。

加入少量在子類中,你能避免焦點保存/恢復:

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); 
     } 
    } 
    }); 

,並使用攔截器是這樣的:

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

這可以防止阻斷從竊取可能在塊中設置的重點。