Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

[PC / Mac] Modal vs. Non-modal ScriptUI windows issue

Advocate ,
Oct 26, 2012 Oct 26, 2012

Hi,

in Photoshop ScriptUI 'dialog' Windows are supported (they're modal windows), while 'palette' Window's behavior is peculiar (they're non-modal, and as long as there's something going on in the script, they keep displaying - otherwise they automatically close). Apparently, this is different in InDesign (for instance), where palettes can stay idle - at least this is what I've been told.

I've found a couple of workarounds to work with palette Windows (my goal is to show them in order to let the user interact with either PS and the script's GUI - just like you'd do with regular panels and extensions - that is: to work with them as non-modal, idle palettes that mimic extension behavior), namely:

// usual Window stuff

win.show()

while (isDone === false) { // isDone is set true in win.onClose() etc.

  app.refresh();

}

or

var s2t = function(stringID) {

  return app.stringIDToTypeID(stringID);

};

var waitForRedraw = function() {

  var d;

  d = new ActionDescriptor();

  d.putEnumerated(s2t('state'), s2t('state'), s2t('redrawComplete'));

  return executeAction(s2t('wait'), d, DialogModes.NO);

};

// Window stuff

while (isDone === false) { // isDone is set true in win.onClose() etc.

  waitForRedraw()

}

The problem is as follows:

1. They both work on Mac, either CS5 and CS6

2. app.refresh() seems to work on PC + CS5, but not PC + CS6

3. waitForRedraw() fails on both PC + CS5 and PC + CS6.

Mind you: When I wrote that the workarounds fails in CS5 and/or CS6 on PC, I mean that the 'palette', idle windows are modal and not non-modal as it is on Mac (which is my main coding platform).

[EDIT] Further testing has shown that PC palettes are... halfway between modal and non-modal. For instance, you can click on menus, but not select a Tool; you can collapse or drag a panel, but not access its content. You can't absolutely click on the image - for instance I'm desperately trying to enable panning on PC palettes: no way, you can't have the Hand tool to click&drag the image. For some reason, a "soft-scrolling" is enabled (on my MacBookPro, two fingers scrolling in all directions in the trackpad - but how to mimic this behavior in a desktop PC with no trackpad I don't know). Weirdly enough, the trackpad's "soft-scrolling" works in all directions on PC + CS5 64bits only, either CS5 @32bits, CS6 @32/64bits goes up and down only, no left/right allowed - frankly, to deal with platform-dependent issues is one thing, to take into account 32/64bits too is... ehm...

So, to sum up there are big differences in the ScriptUI behavior depending on how platform and PS version are combined:

PC, 'palette' Window:

CS5 + waitForRedraw() = modal

CS5 + app.refresh() =  non-modal

CS6 + (app.refresh() OR waitForRedraw()) = modal

Mac, 'palette' Window:

(CS5 OR CS6) + (app.refresh() OR waitForRedraw()) = non-modal

Is there any... "working workaround" to make on PC CS6 a 'palette' ScriptUI Window to keep a non-modal, idling behavior? (the unasked question is: why is that palettes are behaving as non-modal in CS5 and not in CS6?! )

Thanks in advance!

Davide

Message was edited by: DBarranca - added blue text, further testing comparing 32/64bit versions

TOPICS
Actions and scripting
2.6K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Advocate , Nov 01, 2012 Nov 01, 2012

In the meantime, I've published two posts either describing in detail my issues:

ScriptUI Window in Photoshop - palette vs. dialog

and testing a workaround:

ScriptUI - BridgeTalk persistent window examples

Hopefully they may be useful to others as well.

Regards

Davide

Translate
Adobe
Advocate ,
Nov 01, 2012 Nov 01, 2012

In the meantime, I've published two posts either describing in detail my issues:

ScriptUI Window in Photoshop - palette vs. dialog

and testing a workaround:

ScriptUI - BridgeTalk persistent window examples

Hopefully they may be useful to others as well.

Regards

Davide

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Aug 22, 2013 Aug 22, 2013
LATEST

I am having this same problem in Adobe Bridge. On the mac side its fine. But on the PC Side with multiple windows open the window is modal and attached to the parent window. If that window is closed it kills the modal child Script UI pallette window.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines