Community

List of XULRunner Issues Related to Visual Page Editor

modified by Yahor Radtsevich in JBoss Tools Development - View the full document

Known problems in XULRunner 1.9.2

org.mozilla.interfaces.inIFlasher

inIFlasher does not work on MacOS. It is needed to show a border around selected elements in VPE.

Workaround: To show a border on MacOS the following style is used: "border: 2px solid COLOR_NAME !important". But the workaround has a drawback: if the selected elements has its own border, it is not visible.

draggesture event

XULRunner does not fire 'draggesture' event on Linux.

Workaround: Special button for Drag&Drop actions is used. Instead of listening to the 'draggesture' events, VPE listens to the 'mousedown' event on this button.

org.mozilla.interfaces.nsIDragService.invokeDragSession(...)

The method invokeDragSession works differently on Windows and Linux. On Windows it exits after the session is ended. On Linux it exits immediately. The following snippet illustrates this:

 

document.addEventListener("dragstart", new nsIDOMEventListener() {
     nsISupports queryInterface(String uuid) {
          return null;
     }
     void handleEvent(nsIDOMEvent event) {
          nsIDragService dragService = (nsIDragService)
                Mozilla.getInstance().getServiceManager()
                         .getServiceByContractID("@mozilla.org/widget/dragservice;1",
                                   nsIDragService.NS_IDRAGSERVICE_IID);
          System.out.println("BEFORE invokeDragSession");
          dragService.invokeDragSession(node, transferables, null,
                nsIDragService.DRAGDROP_ACTION_MOVE
                        | nsIDragService.DRAGDROP_ACTION_COPY
                        | nsIDragService.DRAGDROP_ACTION_LINK);
          System.out.println("AFTER invokeDragSession");
     }
}, false);
document.addEventListener("dragend", new nsIDOMEventListener() {
     nsISupports queryInterface(String uuid) {
          return null;
     }
     void handleEvent(nsIDOMEvent event) {
          System.out.println("dragend");
     }
}, false);
document.addEventListener("dragover", new nsIDOMEventListener() {
     nsISupports queryInterface(String uuid) {
          return null;
     }
     void handleEvent(nsIDOMEvent event) {
          System.out.println("dragover");
     }
}, false);

     Windows output:

BEFORE invokeDragSession

dragover

dragover

...

dragover

dragend
AFTER invokeDragSession

     Linux output:

BEFORE invokeDragSession
AFTER invokeDragSession

dragover
dragover
...
dragover

dragend

Comment by going to Community

Create a new document in JBoss Tools Development at Community