Defect #506
完了アプリケーションを終了できない?
yusuke kokubo さんが13年以上前に追加. 13年以上前に更新.
説明
Mac環境でお使いの方でRedmineAirを正常終了できないと報告をもらいました。
http://twitter.com/g_maeda/status/20102879730
http://twitter.com/g_maeda/status/20103805111
Macのことはよくわからないのですが
Macの場合はDockIconに格納されて操作するようになってると思います。
http://www.r-labs.org/projects/redmineair/repository/entry/trunk/src/redmineair.as#L124
なにかわかる方いらっしゃいますか?
ファイル
スクリーンショット(2010-08-02_22.26.30).png (112 KB) スクリーンショット(2010-08-02_22.26.30).png | Yasuhiro Morikawa, 2010/08/02 22:27 | ||
patch.txt (1.7 KB) patch.txt | Akiko Takano, 2010/08/03 02:33 | ||
redmineair.air (654 KB) redmineair.air | パッチを当ててビルドしてみました。 | Akiko Takano, 2010/08/03 12:38 | |
quit_menu.png (62.5 KB) quit_menu.png | Macにおける終了メニュー | Go Maeda, 2010/08/04 14:17 | |
kill_process.png (55.1 KB) kill_process.png | 強制終了画面 | Go Maeda, 2010/08/04 14:17 | |
redmineair_prevents_logout.png (30.1 KB) redmineair_prevents_logout.png | RedmineAirを強制終了させなければログアウト不可 | Go Maeda, 2010/08/04 14:17 |
Akiko Takano さんが13年以上前に更新
私もMacユーザではないので、変わるかどうか不明ですが...。
NativeApplication.nativeApplication.exit() に変えてみるとどうでしょうか。
ためしにコンパイルできるか確認してみますね。
動作的に変わるかわからないのですが、Windowsで問題なければ一度コミットしてみます。
Yasuhiro Morikawa さんが13年以上前に更新
とりあえず、0.0.1で確認しました。
redmineair→redmineairを終了ではredmineairは終了しないので、Dockを右クリックして、exitを押す必要がありますね(スナップショット参照)。
メニューの終了から終了した場合は終了させるようにしておくとよいのでしょうか。
あと、設定画面に終了ボタンがあると良いのかもしれませんね。
yusuke kokubo さんが13年以上前に更新
お二人とも確認と対応ありがとうございます。
自分がmacユーザーではないので試せないのですが
バージョンは0.0.1でもtrunkでも同様みたいです。
Akiko Takano さんが13年以上前に更新
morikawaさん、スクリーンショットありがとうございます。
なるほど、Macは標準で『終了』メニューがくっついて来るんですね。
OSで標準で付いてくる『終了』メニューでも、exitと同じ動作にするのであれば、こんな感じでしょうか...。
(あと、Macの場合はexitメニューは表示させないようにするといいのかな)
NativeApplication.nativeApplication.addEventListener(Event.EXITING, function(event:Event):void{ saveStickies(); NativeApplication.nativeApplication.exit(); });
ビルドは出来たので、パッチを添付します。
もし必要なら、コミットするか、手元でビルドしたものを添付しますね。
Akiko Takano さんが13年以上前に更新
- ファイル redmineair.air redmineair.air を追加
担当は難しいのですが、とりあえずビルドしたものを添付します。
これ以上はMac環境が無いと無理なので、こちらの検証からは外れますね。
Go Maeda さんが13年以上前に更新
ログイン時に自動起動する項目がないゲストアカウントでログインしましたが、結果は同じでした。
私のマシンにインストールされているAirアプリは他にはPixelPerfectとTweetDeckがあるのですが、これらは問題なく終了させることができます。
PixelPerfect:
http://www.adobe.com/devnet/air/flex/samples.html
Go Maeda さんが13年以上前に更新
yusuke kokubo さんが13年以上前に更新
ちょうど自分がアプリを常駐化させるために終了イベントを無視するようにしてからみたいですね^^;
ちょっと気になったのですが、この対応は0.0.1では入ってないはずですけど、0.0.1でも同様の現象になるのでしたっけ?
Go Maeda さんが13年以上前に更新
改めて下記URLからダウンロードした0.0.1をインストールしてみたところ、現象発生しませんでした。
http://www.r-labs.org/projects/redmineair/wiki/GettingStart
trunkを使っていたものの、バージョン情報の表示だけを見て"0.0.1"と報告していました。誤った情報で混乱させてしまい失礼しました。
Akiko Takano さんが13年以上前に更新
前田さん、kokuboさん、ありがとうございます。
Macのデフォルトの『終了』メニューを使うと良いかと思って、添付したビルドでは右クリック(コンテキストメニュー)はつけないでおいてしまいました。
ソースを見直したら、タスクトレイへの常駐は、メインのアプリを閉じて終了させているわけではなく、visible=falseにしているだけなんですね、なるほど。(実際はClosingしてないですね)
動作としては、終了は終了(プロセスも付箋の画面もみんな終了)、というほうがいいかなと思います。
私もTweetDecを使っているのですが、設定画面でこのあたりの動作が選べますね。
- Close時はアプリも全終了
- Close時は通知エリアを隠す
このあたりは個人設定(プリファレンス)っぽい感じなので、そこまで設定できるようになるまでは、こういうほうがいいのかなと思っています。(Macユーザの方にとって一番自然な方法がいいかと思います)
- 画面を閉じたらアプリ終了
- コンテキストメニューは、終了、もしくはメイン画面を隠す(付箋のみ表示)
Go Maeda さんが13年以上前に更新
- ファイル quit_menu.png quit_menu.png を追加
- ファイル kill_process.png kill_process.png を追加
- ファイル redmineair_prevents_logout.png redmineair_prevents_logout.png を追加
Macのアプリとして違和感ないのは以下の動作です。
- 画面を閉じてもアプリは終了しない(現状のRedmineAirと同様)。
- メニューの「終了」またはDockアイコン右クリックの終了でアプリ終了
現状の問題点は、RedmineAirのメニューの「終了」を選んだりショートカットキーの Command + Q を押しても終了させることができないことです。強制終了以外にアプリケーションを終了させることができません。
RedmineAirの強制終了を行わなければ、OSのシャットダウンやログアウトも行うことができません。以下のような画面が表示されてしまいます。
yusuke kokubo さんが13年以上前に更新
とりあえず現状直す必要がある点として
メニューの「終了」またはDockアイコン右クリックの終了でアプリ終了
だと思いました。
Macをまともに触ったことすらないので前田さんに貼りつけていただいた
画像でうっすらイメージするしかないのですが
- メニューの「終了」
- Dockアイコン右クリックの「終了」
をそれぞれ対応する方法があればそうしたいです。
Akiko Takano さんが13年以上前に更新
ここが参考になるかもしれませんので、貼っておきますね。
http://blog.quq.jp/2009/06/correspondence-of-end-with-adobeair-altf4-and-commandq/
Akiko Takano さんが13年以上前に更新
Viewに関する調整だと、Flex(Flash)Builderのプロジェクトタイプが必要ですね。
修正が必要なのは、redmineair.as が大部分で、あとはredmineair.mxmlの冒頭くらいかと思います。
Eclipseなどの調整はすこし設定などに時間がかかるかと思います。
JDKとANT、それからFlexSDK&AIR SDKがあれば、Haruさんの用意してくださったbuild.xmlとプロパティファイルを修正して、最低限ビルドとパッケージ(*.air)の作成が出来ます。
Wikiに書きますので、それでも良ければ。
Yasuhiro Morikawa さんが13年以上前に更新
私もMacユーザなので一言。
Macにおける終了or画面のclose処理は
1. command + Q --- アプリケーションの終了
2. command + W --- アプリケーションの最小化
3. 左上(Macの上部)メニューからの終了 --- アプリケーションの終了
4. 左上(Macの上部)メニューからの隠す --- アプリケーションの最小化
5. Dockメニューからの終了 --- アプリケーションの終了
6. Dockメニューからの隠す --- アプリケーションの最小化
7. アプリケーションの[×] --- アプリケーションの最小化
8. アプリケーションの[-] --- アプリケーションの最小化
上記のようにアプリケーション自体を終了する動作は、1,3,5になりますねー。
TweetDeckやSaezuriなどを参考に書いてみてます。
参考までに。
yusuke kokubo さんが13年以上前に更新
trunkを使っていたものの、バージョン情報の表示だけを見て"0.0.1"と報告していました。誤った情報で混乱させてしまい失礼しました。
いえいえリリースマネージできてなかった問題なのでぼくのミスです…。
確かにバージョンの表示だけ見ても何を使っているのか判りにくいですね。
バージョンにHudsonのビルド番号を入れましょうか?
おおっ。
簡単にできるならお願いしていいですか。
yusuke kokubo さんが13年以上前に更新
#512 で対応しました。
ありがとうございます。
この問題ちょっと停滞し始めているので、
打開策が難しいようならMacの場合だけwindow.close()で
e.preventDefault();
をしないようにして当面しのごうかと思ってます…。
yusuke kokubo さんが13年以上前に更新
Go Maeda は書きました:
本件の検証のためにRedmineAirのビルド環境を作りたいのですが、「Adobe AIR SDK」があればよいでしょうか? どなたかご指導いただけますでしょうか。
wikiにまとめてもらったので
お時間あるときに試してみてください。
http://www.r-labs.org/projects/redmineair/wiki/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83
yusuke kokubo さんが13年以上前に更新
- ステータス を 新規(New) から 担当(Assigned) に変更
http://blog.quq.jp/2009/06/correspondence-of-end-with-adobeair-altf4-and-commandq/
ここを参考にMac向けに
stage.nativeWindow.addEventListener(Event.CLOSE, appExit)
を追加してみました。
Macをお使いの方は最新のバージョンで試していただいてよろしいでしょうか。
yusuke kokubo さんが13年以上前に更新
- ステータス を 担当(Assigned) から 解決(Resolved) に変更
ウィンドウのクローズ時は以前のようにDockに残るのが理想ですが、ウィンドウの最小化で邪魔にならないように隠すことはできますので、現状の動作でも大きな問題はないと考えます(Macのアプリの動作としては若干違和感はあります)。
windowのcloseでは終了しないと思ってたので予想外ですが
最悪の状態は回避できたみたいですね。
とりあえず今回はこれで終了してまた別途対応を検討する必要がありそうです。