[squeak-dev] The Inbox: Morphic-cbc.1665.mcz

Chris Cunningham cunningham.cb at gmail.com
Sat Jun 6 16:36:58 UTC 2020


Ok.  There are definite benefits with this.  However, a stray mouse click
still reduces the usefulness of a list chooser.

Maybe ListChooser should be able to request the message rejects keyboard
(this dialog is all about choosing a value, not about displaying a notice),
while others could use ct.1666?  At least with this the enter button will
close the dialog - but allow full interaction with the message (as long as
you start by using the mouse).

-cbc

On Sat, Jun 6, 2020 at 5:22 AM Thiede, Christoph <
Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:

> Hi Chris,
>
>
> what do you think about Morphic-ct.1666? :-) It would be nice if we did
> not completely lose the opportunity to manually activate the message and
> interact with it via keyboard.
>
>
> Best,
>
> Christoph
>
>
> ------------------------------
> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
> Auftrag von Chris Cunningham <cunningham.cb at gmail.com>
> *Gesendet:* Samstag, 6. Juni 2020 04:41:50
> *An:* The general-purpose Squeak developers list
> *Betreff:* Re: [squeak-dev] The Inbox: Morphic-cbc.1665.mcz
>
> This fixes the mangling I accidentally did to Marcel's changes, following
> his suggestion (roughly).
>
> I now get the best of both worlds in my image.  If noone objects, I'll
> move it to trunk in a few days.
>
> -cbc
>
> On Fri, Jun 5, 2020 at 7:38 PM <commits at source.squeak.org> wrote:
>
>> A new version of Morphic was added to project The Inbox:
>> http://source.squeak.org/inbox/Morphic-cbc.1665.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Morphic-cbc.1665
>> Author: cbc
>> Time: 5 June 2020, 7:38:31.284262 pm
>> UUID: c887ffd7-40ae-3547-8240-13186db081c8
>> Ancestors: Morphic-cbc.1664
>>
>> Add support for locking a morph so that it doesn't accept keyboard
>> actions - but is still accessible with the mouse.  Sending
>> #rejectKeyboardFocus will make that morph completely ignore keyboard events
>> of any kind.  A morph can be tested with #shouldRejectKeyboardFocus to see
>> if this should happen.
>> DialogWindow has been modified to reject keyboard focus, so that in (say,
>> ConfirmDialogs) you can still use the keyboard to interact with the keys
>> AND you can interact with the message text via the mouse.
>> (Also updated StringMorph similarly.)
>>
>> =============== Diff against Morphic-cbc.1664 ===============
>>
>> Item was changed:
>>   ----- Method: DialogWindow>>createMessage: (in category
>> 'initialization') -----
>>   createMessage: aString
>>
>>         messageMorph := aString asText asMorph.
>>         messageMorph
>>                 name: 'Message';
>>                 readOnly: true;
>>                 setProperty: #indicateKeyboardFocus toValue: #never;
>> +               rejectKeyboardFocus.
>> -               lock.
>>         self setMessageParameters.
>>         ^ messageMorph!
>>
>> Item was added:
>> + ----- Method: Morph>>rejectKeyboardFocus (in category 'accessing') -----
>> + rejectKeyboardFocus
>> +       self rejectKeyboardFocus: true.!
>>
>> Item was added:
>> + ----- Method: Morph>>rejectKeyboardFocus: (in category 'accessing')
>> -----
>> + rejectKeyboardFocus: boolean
>> +       self setProperty: #rejectKeyboardFocus toValue: boolean!
>>
>> Item was changed:
>>   ----- Method: Morph>>rejectsEvent: (in category 'events-processing')
>> -----
>>   rejectsEvent: anEvent
>>         "Return true to reject the given event. Rejecting an event means
>> neither the receiver nor any of it's submorphs will be given any chance to
>> handle it."
>> +       ^self isLocked or: [self visible not or: [anEvent isKeyboard and:
>> [self shouldRejectKeyboardFocus]]]!
>> -       ^self isLocked or:[self visible not]!
>>
>> Item was added:
>> + ----- Method: Morph>>rejectsKeyboardFocus (in category 'testing') -----
>> + rejectsKeyboardFocus
>> +       ^self valueOfProperty: #rejectKeyboardFocus ifAbsent: [false]!
>>
>> Item was added:
>> + ----- Method: Morph>>shouldRejectKeyboardFocus (in category 'testing')
>> -----
>> + shouldRejectKeyboardFocus
>> +       ^self valueOfProperty: #rejectKeyboardFocus ifAbsent: [false]!
>>
>> Item was changed:
>>   ----- Method: StringMorph>>wouldAcceptKeyboardFocus (in category 'event
>> handling') -----
>>   wouldAcceptKeyboardFocus
>> +       ^ self isLocked not and: [self shouldRejectKeyboardFocus not]!
>> -       ^ self isLocked not!
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200606/cdc0969f/attachment.html>


More information about the Squeak-dev mailing list