GemTalk / JadeiteForPharo

IDE for GemStone Smalltalk application development in Pharo using Rowan code management
MIT License
0 stars 0 forks source link

Interactive prompts are too easy to miss ... #80

Open dalehenrich opened 3 months ago

dalehenrich commented 3 months ago

...and when I'm working with a browser that is full screen a click on the browser will obscure the prompt and then "block" all menu items that require interaction ...

it would be better to have the prompt show up under the mouse, since that is exactly where I'm looking when I make my menu selection and/or the prompt should insist on staying on top of the window it was launched from until responded to ... and multiple "stacked" prompts should be illegal as well ...

ericwinger commented 3 months ago

There are numerous prompts in Jadeite. Can you give me an example of one which is not placed well?

dalehenrich commented 3 months ago

The ones that have tripped me up are the remove method prompts ... and then once you miss one of those ... the system acts like it is still working and an then an add category prompt for name ... Yesterday I had a stack of 5 or 6 missed prompts (remove was the first and I tried several times before I gave up and figured I'd remove the method on disk and tried to add a category so I could copy and paste the method and that prompt was hidden as well) that were all stacked up once I realized they were behind the browser then I had to click on yes/no prompts with very little information about what I was saying yes/no to ... I held my breath and clicked no until they were gone ...

ericwinger commented 3 months ago

I don't much like the window positioning. There are some controls in Pharo settings that can help until I can figure out how to control this. Go to Pharo>Settings then here's a screen shot. You want Window Position Strategy. image

ericwinger commented 3 months ago

I added a method in RealEstateAgent which can be invoked to put all your windows at the cursor point (if possible). Needs review and enhancement to be viable in the product.

  1. Add this method to RealEstateAgent class

    cursorPointFor: aView initialExtent: initialExtent world: aWorld
    
    | position allowedArea |
    allowedArea := self maximumUsableAreaInWorld: aWorld.
    position := aWorld firstHand cursorPoint. 
    ^ (position extent: initialExtent)
        translatedAndSquishedToBeWithin: allowedArea
  2. Execute this in a workspace
    RealEstateAgent usedStrategy: #cursorPointFor:initialExtent:world:
ericwinger commented 3 months ago

Checked above mentioned change in for convenience. https://github.com/GemTalk/JadeiteForPharo/commit/c962595a25976f4154d565f0949e285216cc39cb

ericwinger commented 3 months ago

@LisaAlmarode is going to provide feedback after reviewing the feature.

LisaAlmarode commented 1 month ago

Doesn't help at all, AFAIKT, with Dale's example (the remove method prompt). Window position strategy is cascade. The remove method prompt (with no mention of the method name!) is non-modal and appears near the upper left (that is, cascaded from the window position, not the cursor position), and rather hard to spot. You can easily setup a whole stack of them in the exact same location.

ericwinger commented 1 month ago
Window position strategy is cascade.

It sounds like the workspace execution wasn't run. While the commit includes the necessary code, (for now) you have to run the code below to change where windows appear. If it's an improvement, I'll make JfP use it by default.

RealEstateAgent usedStrategy: #cursorPointFor:initialExtent:world:
LisaAlmarode commented 1 month ago

Incorrectly closed by workflow