ポップアップオブジェクト:右クリックに反応します

Product :4D - 4D Server
4D : v16 207104 64bit v15.3nb207568
OS : Windows10 windows7
ポップアップオブジェクトが右クリックでリストが表示されます。
本来は、リストが表示されず、クリックイベントが取得できるのが正しい動作だと思います。

保坂さま

ご連絡ありがとうございます。

ポップアップオブジェクトについてですが、右クリックでリストが表示されるのは仕様と言えます。

ポップアップオブジェクトでクリックイベントが発生されるタイミングを見てみると、
左クリック・右クリックとも、オブジェクトがクリックされたときではなく、
リスト内の値を選択したタイミングでイベントが
発生しているのがお分かりいただけるかと思います。

初回クリック時にイベントが発生していない以上、
それが左クリックか右クリックかを検知する方法はありません。

左・右クリックごとの挙動を設定したい場合には、3Dボタンの仕様をご検討いただけませんでしょうか。

お手数をおかけして申し訳ありませんが、よろしくお願いします。

右クリックに反応するのは4Dだけですよ。OSの挙動にあわせるのではないのでしょうか?

3Dボタンで独自に作るのは、切羽詰まった状態でしたらその様なことをしますが、
ここで指摘しているのはそういう意図ではありません。

保坂さま

大変失礼致しました。

本件につきましては、
ACI0096319
でバグ登録いたしました。

お手数をおかけして大変申し訳ありません、よろしくお願いします。

近日中のNightly Buildで修正が反映されるはずです。

ポップアップドロップダウンリスト以外にも見落としているオブジェクトはないでしょうか。

開発部の話では,包括的なガイドラインのようなものは見つけられなかった,とのことでした。

続報です。

v16 build 208493
v15 build 208492

以降で修正されることになりました。

v15nb208671で確認しましたが、こちらもなおっていない様です。

208492は,バージョン管理システム上の"pending"となっていました。
15.4リリース直前につき,コードがロックされていたため,v15のほうは修正が保留となっています。
一両日中のNightly Buildで修正が反映されるかと思います。
申し訳ございませんでした。

: Keisuke MIYAKO

近日中のNightly Buildで修正が反映されるはずです。

ポップアップドロップダウンリスト以外にも見落としているオブジェクトはないでしょうか。

開発部の話では,包括的なガイドラインのようなものは見つけられなかった,とのことでした。
とりあえずv16nb208673 32bitで右クリックに反応しないことは確認しました。
右クリックイベントは取得できませんでした。

■ポップアップドロップダウンリスト以外のオブジェクトについて
現状の状態を調べてみました。見落としがあるかもしれませんが…

右クリックで動作するもの(本来動作してはいけなと思うもの)
3Dボタン、ボタン、透明ボタン、ピクチャーボタン、ボタングリッド、階層ポップアップメニュー、ピクチャポップアップメニュー、タブコントロール、
リストボックス(両方の動作が必要かも)

右クリックで動作しないもの(右クリックを見分けているもの)
コンボボックス、ハイライトボタン、ラジオボタン、チェックボックス、3Dラジオボタン、3Dチェックボックス

■右クリックの処理について
右クリックの判定変更にともなって、ポップアップドロップダウンリストとコンボボックスのイベント発生については見直してほしいです。
・ポップアップドロップダウンリストについては、候補を選択したときではなくて右クリックされた時に発生。
・コンボボックスは、テキスト入力があるので入力状態中と候補を出すボタンを右クリック押した時に発生。

・リストボックスについては、行が反転しない場合と、反転する場合が存在するのでどちらにも対応してほしいです。
入力状態で右クリックイベントを発生。

動作とイベント発生についてオブジェクト毎にイベントの発生に差異があるので統一できるところは統一してほしい。
できるだろうと思ってやってみるとオブジェクトによって動作が違うので困る事が多いです。

ご意見をお寄せいただきありがとうございました。

「オブジェクト毎にイベントの発生に差異がある」のは,ある程度,仕方がないと思うのですが,いかがでしょうか。

具体的には,ボタンダウンでクリックが発生するオブジェクトとボタンアップでクリックが発生するオブジェクトを統一することには無理があると思います。

右クリック(コンテキストクリック)は,一般にボタンダウンで発生するものですから,単純に「このオブジェクトタイプだから発生」するというわけにはいかず,「ドラッグ可」プロパティも影響があるはずです。

4Dには,独立したフォームイベントとして右クリックがない(Arrow click, long click, header clickは別)ですから,Right clickまたはContextual click(発生条件は右クリックとは別)でイベントを判別するためには,On Clickedイベントの発生が必要です。(透明ボタンなど)

今回は,ポップアップメニューの出現を抑制することができない,ということで,おそらく誰もが納得できる動作の変更だったと思いますが,他のオブジェクトも一律,右クリックに反応しない(On Clickedも発生しない)となると,むしろ不便なのではないでしょうか。

おせわになります。

ある程度しかたがないのは理解しています。
少し違うのは、クリックイベントは拾いたけど、右クリックで左クリックと同じ動作(アニメーション?)はしないということです。
ご指摘から透明ボタンは除外できると思いますが、ほかのオブジェクトでは統一してよいのではないでしょうか?
"右クリック時にクリックイベントが発生しない"もしくは”右クリック時にクリックイベントを発生させる”プロパティがあればなお良いと考えます。

他にも例えば、
1.コンテキストメニュー処理が書けないオブジェクトが存在する。
入力エリアではイベントが拾えるので、コンテキストメニューの表示など処理が書けるのですが、
入力状態があるコンボボックスとリストボックスはイベントが発生せずコンテキストメニュー表示の処理がかけません。

2.背景色が変更できない。
入力エリアでは背景色を変更できますが、コンボボックスなどではできません。
webなどでよくある入力内容のうち、問題箇所の背景色を変えて指摘する処理が書けません。(他の方法で回避はここでは論点ではありません)

3.フィールドの入力エリアで文字列、テキスト以外はピッカー(コピペのコンテキストメニュー)表示のプロパティがない。
標準のコンテキストメニューが表示できるものが限定的です。

こう言うところを統一してほしいと希望します。 :pray: