探検


Debian GNU/Linux スレッド Ver.93

■ このスレッドは過去ログ倉庫に格納されています
2019/11/12(火) 12:39:57.83ID:cTFOpr3a
extend:checked:vvvvv:1000:512
extend:checked:vvvvv:1000:512
次スレを立てる方は↑を二行重ねて書いてください

公式
https://www.debian.org/index.ja.html

過去ログは各自検索して見つけること
大体参考にならないので過度な期待は禁物

前スレ
Debian GNU/Linux スレッド Ver.92
https://mao.5ch.net/test/read.cgi/linux/1565609547/
2019/11/16(土) 17:20:38.65ID:BpgM/gFF
>>51
だから関係ないものを出して何がいいたいの?

お前プログラミングしたことないだろ
2019/11/16(土) 17:23:27.14ID:JrM8kLnB
Wayland
https://mevius.5ch.net/test/read.cgi/unix/1323873988/

Wayland の話題ならココ
DE の話を wayland のスレでやるなよ?
2019/11/16(土) 17:28:41.35ID:r61e+iIc
>>52
waylandの機構じゃコントロールの機能をsoに過不足なく詰め込んでコモンコントロールにして、
更にそのsoの”ソースも抜きに”機能を派生させたsoを作って、
その派生させたsoを言語問わずに再利用とかできないか、できるにしてもWindowsみたいな
メッセージキューみたいなのをウィンドウシステムとツールキットの間に挟まなきゃなんないだろ

ソースがありゃいじり放題だけど、多分世の多くのコーダーはそんな事は求めてない
機能が分離されてて親ウィンドウのクラスのソースにあっさりハンドラを記述したり
カスタムコントロールにするまでもないようなのはウィンドウのWndProc()で
WM_NOTIFYの時にイベントを横取りして工数を削減したいだろう
2019/11/16(土) 17:30:12.25ID:BpgM/gFF
>>54
もう一度言うよ

お前プログラミングしたことないだろ
デタラメ書くのやめて
2019/11/16(土) 17:39:54.05ID:r61e+iIc
>>55
https://docs.microsoft.com/ja-jp/cpp/mfc/receiving-notification-from-common-controls?view=vs-2019

おまえ、なんでMSがこんな事してるか未だに理解してないんだろ?
2019/11/16(土) 17:46:24.31ID:r61e+iIc
上下ボタン付きの数値限定のエディットコントロールでタブが移った時に全選択させる、
みたいなありふれた実装でもお世話になる筈なんだがな・・・

あれ、内部だとコントロール本体は殆ど空のウィンドウ(コントロール)だから、
コントロール自体はエディットコントロールでもアップダウンコントロールでもないから
そのつもりでコントロールを派生して云々しようとしても上手くいかない
上下ボタン付きのコントロールが保持してる子コントロールのウィンドウクラスを識別した上で
その子コントロールに対して直接干渉しないと思った通りの動作はさせられない

その子コントロール(しかもDLLでしかないただのコモンコントロール)を2つ積んだコントロールの機能を
たった1つのDLLに詰め込んで、派生してる訳でもないのに更に言語を問わず再利用できるってのも
Windowsの強みの1つだろ
2019/11/16(土) 17:53:34.99ID:bgtA9Jbw
で、DebianのWaylandは使った上でどんな不満があるの?
内部のミクロな話じゃなくて
2019/11/16(土) 18:01:19.52ID:BpgM/gFF
>>56-57
> たった1つのDLLに詰め込んで、派生してる訳でもないのに更に言語を問わず再利用できるってのも
> Windowsの強みの1つだろ
XやWayland上のQtやgtk+でコントロールの制御ができないわけないだろう

プログラミングしたことない人間が想像でデタラメ書くのやめて

>>58
KDEに関して完全にWaylandにできるのはDebianに限らずもう少しかかる

ttps://community.kde.org/Plasma/Wayland_Showstoppers
2019/11/16(土) 18:08:39.98ID:bgtA9Jbw
>>59
相手してくれてありがとう
KDE好きだけど、しばらくGNOME on Waylandで過ごすわ
2019/11/16(土) 18:08:43.02ID:r61e+iIc
>>59
ただの制御の話なんてしてない

例えば上下ボタン付きエディットコントロールで例えれば、コントロールがフォーカスを受け取った時に
全選択するハンドラをコンストラクタで設定してやれば目的は達成できる
ただしそのクラスを再利用する側はフォーカスを受け取った時のハンドラを設定してはならない、
若しくはsoの類にひとまとめにするとすれば、ハンドラを設定したらsoでexportされてるそのハンドラの関数を
名指しで呼び出さなければならない

んな事意識しなきゃ再利用できないとか時代遅れと言わざるを得ない
2019/11/16(土) 18:18:11.66ID:BpgM/gFF
>>59
補足

技術的にKDEというかWayland全体で時間がかかりそうなのは
> Plasma Native Wayland windows are not restored
>
> Session restoring does not include Wayland native windows.

Debian busterで確認済みだから実際にKDEで試してもらえばわかるけど、例えば
Konsoleとか電卓とか適当なページを開いたFirefoxとかを起動したままログアウトして、
もう一度ログインするとウィンドウの場所や開いているページやタブ等を含めて復元される

20年以上前からデスクトップセッション管理機能としてX Window Systemにこういう機能が
存在しているんだけど、おそらくWaylandを設計した段階で見落とされたらしい

DBusベースでなんとかしようみたいなリンクが貼ってあるけど
ttps://wiki.gnome.org/Projects/SessionManagement/GnomeSession
Wayland下で使えるようになるまでしばらく時間がかかるんじゃないかな

>>53
スレちがいになっているのはわかるんだけど

>>61
技術的にデタラメな話をするのやめて
デマが広まると迷惑なの
2019/11/16(土) 18:27:25.57ID:r61e+iIc
>>62
何がデタラメ?
waylandなら後からハンドラを上書きされても元のハンドラを自動的に呼び出してもらえたりすんのか?
しかも.NETでいうとこのNumericUpDownコントロールみたいに、DLLの中でウィンドウクラス決め打ちで
newされた様なエディットコントロールでも、waylandならインスタンスの元になったクラスの動作そのものを
改変できたりするのか?
2019/11/16(土) 18:42:32.82ID:BpgM/gFF
>>63
何度も書くけどお前プログラミングしたことないだろ

プログラム関係の技術用語それっぽく並べても現実と対応しないから全く意味不明なの
2019/11/16(土) 18:56:26.66ID:r61e+iIc
>>64
何がデタラメなのか欠片も言わねえのな

numericupdown フォーカス 選択 とかでggると、構造を理解してない人の
「フォーカスを受け取った時に〜どうすればいいですか?」みたいな質問がいっぱい引っ掛かる
じゃあタブキーでのフォーカス移動で自動的に全選択してくれる様な、世のアプリは一つ一つに
ハンドラ設定して全選択してるか、カスタムコントロールがフォーカス移動のハンドラを隠蔽してるのか?
んなわきゃねえ

Windowsなら2つの子コントロールを保持してるクラスでWM_NOTIFYを処理すればトリッキーな事をせずに済むし、
それに頼らなくてもサブクラス化みたいな手法もあるし、WndProc()のオーバーライドって手もある
(.NETの類でWndProc()貪るのもどうかと思うが)
2019/11/16(土) 19:04:56.68ID:lLVTyU1d
ここの板のスレに自治する人達(いわゆるスレチやめろと苦情を言う人達)がよく湧く理由がお分かり頂けただろうか。こうなるのです。
これを放っておくとこのスレだけでなく板全体が崩壊し人がまったく寄り付かなくなります。必要な情報を探す(共有する)のが非常に困難になるからです。
2019/11/16(土) 19:15:07.93ID:bgtA9Jbw
>>62
バトルしながら貴重な情報も提供してくれてありがとう。
晩メシ食ってたんだけど気になって気になってw
今日は書いてくれた情報と貼ってくれたURLを読みながら過ごし、明日KDE環境を作って検証してみるよ。
2019/11/16(土) 19:23:01.16ID:bgtA9Jbw
>>66
片方は脱線しつつも有り難い最前線のDebian情報提供してくれたけど、もう片方はもう全然このスレに関係ないよね
せめてWindowsでは○○が出来るけどDebianでは●●が出来ないから▲▲すればどうだと言う書き方にすればいいのに
2019/11/16(土) 19:29:04.87ID:r61e+iIc
Linuxってより現状のXだと操作感がWinMacAndroid程統一されてない
その要因がコモンコントロールとソースの無いコントロール(DLL)からの更に派生したコントロールの再利用みたいな
仕組みの提供が無い事じゃないかって言ってる
2019/11/16(土) 19:55:00.74ID:bgtA9Jbw
>>69
俺は現場のSEじゃないから野蛮で低レベルな切り口でしか話が出来ないけど、Xはまだまだ使われるもののもう過去の遺産の為の維持営業になって、余計な拡張を削ぎ落としたWaylandにリソースが注がれる世の流れなんじゃないの?
で、貴方の言いたい事は俺みたいなシロートでも分かるように言い換えるならば、「ライブラリの類がLinuxはWindowsに比べて汎用的な実装が遅れてるから良いところは取り入れた方がいい」と言う意味で解釈した。
現場の人間ならではの熱い議論と提案、実は興味深かった。今日の激論、掘り下げるとすごい勉強になりそう。
ありがとう。激論は自治警察に睨まれない程度にね。
2019/11/16(土) 20:16:50.14ID:BpgM/gFF
>>70
悪いけど何の役にも立たない

>>65
> 何がデタラメなのか欠片も言わねえのな
>>63
> waylandならインスタンスの元になったクラスの動作そのものを
WaylandはCのライブラリでC++ではないんだけどインスタンスとかクラスって何?

そもそもレイヤーが全然違うものを比べているのよ

WaylandのAPIはWindows上だと非公開APIであるDWM.exeへのAPIに対応するもの
DWM.exeがwestonやmutter等のWayland Compositorに対応する

WindowsではDWM.exeのAPIとDirectXやGDIのAPI等を組み合わせてWinFXやMFCの
ようなライブラリが作られている

Linuxも同様にXlibやWayland、OpenGL等のAPIを使ってQtやgtk+が作られている

だからMFCとQtやgtk+を比較するならわかるけどMFCとWaylandを比較されても
全くとんちんかんなのよ
2019/11/16(土) 20:26:31.94ID:TZZ7yIiW
>>65
お前、Windowsでの.Netの話しかしてないじゃん
Windowsのウィンドウシステムやイベントハンドラの話してないだろ

それがデタラメなんじゃねーの?
お前、.NETでVBあたりでポトベタしてるだけで、OSの内部構造とかきちんと把握してないんじゃねいのか?
2019/11/16(土) 20:27:32.42ID:TZZ7yIiW
>>71
俺もそんなにきちんと勉強してるわけじゃないけど、あなたの言おうとしていることはわかるよ
2019/11/17(日) 00:57:39.55ID:jIl/r0UZ
>>71
> WaylandのAPIはWindows上だと非公開APIであるDWM.exeへのAPIに対応するもの
> DWM.exeがwestonやmutter等のWayland Compositorに対応する

ツールキット類を実装する人はそれを直接叩けって?
んなわきゃねえ
更に付け加えると事実上xlibがuser32.dllみたいなもんだろ
2019/11/17(日) 01:04:19.79ID:jIl/r0UZ
>>72
https://docs.microsoft.com/ja-jp/cpp/mfc/receiving-notification-from-common-controls?view=vs-2019
デタラメならMSはなんでこんな事してる?
CSpinButtonCtrlで話せばよかったのか?どっちも変わらんわ
こいつはコンテナみたいなコントロールにエディットコントロールとアップダウンコントロールを
名指しで生成してるから生成するエディットコントロールの挙動だけを変更する、みたいな事はできない
何故ならMFCで例えればCSpinButtonCtrlの元になってるコントロールがMFCで言うとこの
CEditを直接newしちまってる様なもんだからCEditの派生クラスをnewさせるなんて事は当然できない

ただしCSpinButtonCtrlの下のエディットコントロールのWndProc()を挿げ替える事はできるし
下に行くウィンドウメッセージをCSpinButtonCtrlが処理する事もできる
2019/11/17(日) 01:11:48.36ID:jIl/r0UZ
寝る前に証明の方法書いとく
CEditとCSpinButtonCtrlにEnumChildProc()掛けてみろ
CEditは自身のコントロール(ウィンドウ)で全ての機能を実現してるから子ウィンドウは原則出現する事はない
(そのコントロールから何かポップアップする様な実装をしてCEditのインスタンスが子ウィンドウを作ったりしたら話は別だが)
CSpinButtonCtrlの場合は必ず2つ以上の子ウィンドウが列挙される
コントロールが必ず1個のウィンドウだけでできてると思うなよ?
2019/11/17(日) 01:23:40.42ID:ofkFjXp1
大体NGにはしたけど
nvidiaがガン無視してる内はWaylandとかどうでもいい
2019/11/17(日) 05:13:34.08ID:Ke57PbvF
10.2 キタ━━━━(゚∀゚)━━━━!!
2019/11/17(日) 05:36:15.40ID:DPcH5Uo/
>>77
涙拭けよ知ったか野郎
2019/11/17(日) 07:17:37.38ID:J/RnROD7
>>78
dselect でパッケージ入れようとしたら、同時に沢山インストールしようとするので、apt で入れたいものだけインストールしたけど、それが原因か。
2019/11/17(日) 07:19:29.46ID:iuGIAo/+
waylandの色々な情報おつかれさま
2019/11/17(日) 07:52:21.84ID:/hg1LasT
>>28
さすがにそれはオーバーキルだし、そもそもOSやカーネルが違うシステムでの互換性を保証出来なくなるからやるべきではないと思うよ(´・ω・`)
2019/11/17(日) 08:59:50.38ID:Ytf/J4j1
(=゚ω゚)ノ おはよー (なんとなくなつかしいAAをつかってみたり)

>>74
>> WaylandのAPIはWindows上だと非公開APIであるDWM.exeへのAPIに対応するもの
>> DWM.exeがwestonやmutter等のWayland Compositorに対応する
> ツールキット類を実装する人はそれを直接叩けって?
> んなわきゃねえ
いいえ

例えば、VulkanとかDirectX12等の最新の薄いプリミティブな最小限な層になっていて、
上位のUnityやUnreal Engineの方で通常使う機能を実装している
直接一般のプログラマがVulkan等を使うようには設計されていない(別に使っても
いいけど大変なだけで意味がない)

Waylandも同じ発想で一般のプログラマが直接WaylandのAPIを使うんじゃなくて、Qtや
gtk+等の上位のライブラリを一般のプログラマが使う形式

UnityやQt等ツールキットやフレームワークの開発者だけが頑張ればいいようにしている
からプリミティブな機能しかVulkanやWaylandは実装していない

プログラミングしたことあるならどのAPIがどういう目的で誰を対象としているかわかるはず
なんだけど

> 更に付け加えると事実上xlibがuser32.dllみたいなもんだろ
いいえ、xlibはuser32.dllとgdi32.dllの両方

やっぱりWindowsのことすら全くわかっていないのね

>>75-76
何度も言うけど何でWaylandと関係ないこと書いているの?
2019/11/17(日) 09:11:01.91ID:jw6T7cU8
おまえら仕事できてもともだちできないやつらだろ
2019/11/17(日) 09:14:43.80ID:DPcH5Uo/
83さんは一見ものすごいスレチの様に見えますが、今後のDebianのデフォルトDEに関するとても有用な情報を提供して下さってます
2019/11/17(日) 09:42:20.60ID:qAun3Oh3
でももう腹いっぱい そろそろ止めようね
2019/11/17(日) 09:56:14.87ID:J/RnROD7
Debian10 で Gnome もしくは KDE 使う時に、日本語かな漢字変換(Mozc or Anthy) のサジェストを止めたいのですが、設定はどこにあるのでしょうか?
2019/11/17(日) 11:31:59.73ID:jIl/r0UZ
>>83
https://wayland.freedesktop.org/docs/html/
つまりこれがuser32.dllとgdi32.dllの両方って事か?
これでCSpinButtonCtrlに貼り付けられた上に外に出てこないCEditの動作をどうやって変えられる?
世の上下ボタン付きエディットコントロールがフォーカスを受け取った時に〜できません〜なんてのは
CSpinButtonCtrlをエディットコントロールから派生したクラスだと思って、上っ面のコントロールの
イベントに処理を書いたり、ただの上っ面にCEditの操作をしにいくから上手くいかねえんだよ
それでもやってる奴がいるのはWM_SETFOCUSじゃなくってWM_NOTIFYで処理してっからだ

> WaylandのAPIはWindows上だと非公開APIであるDWM.exeへのAPIに対応するもの
その非公開API使えばWindowsと同じことができるって言いたかったのか?
それを使ってるツールキット類があるんならリポジトリ名書いてみ
2019/11/17(日) 19:14:47.53ID:Ytf/J4j1
>>83
Xlibがuser32.dllとgdi32.dll相当であってWaylandではないぞ

Waylandが何なのか全然わかってないようなので、ツールキットやWin32、Xlibでの
簡単なプログラムとWaylandの簡単なプログラムへのリンクを張るよ

gtk+
ttp://lmj.nagaokaut.ac.jp/~lu/programming/gtk_tut_ja/gtk_tut_ja-2.html
十数行

Qt
ttps://wiki.qt.io/Qt_for_Beginners#Our_first_window
の下の方のPushbuttonの十数行

Win32API
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
50〜60行ぐらい

Xlib
ttps://ja.wikipedia.org/wiki/Xlib
50行

Wayland
ttps://jan.newmarch.name/Wayland/WhenCanIDraw/
ttps://jan.newmarch.name/Wayland/EGL/
300行越え
ttps://devm33.hatenadiary.org/entry/20140422/1398182440
だいぶ頑張っている人のコードで130行
ttps://eng-info-office.com/ww-simpleegl/
一番シンプルかつ基本的な構成とか呼ばれているものが800行越え

Waylandが全然違う次元の存在なのわかった?
2019/11/17(日) 19:20:47.73ID:Ytf/J4j1
>>89
>>83じゃなくて>>88へね

>>88
> それを使ってるツールキット類があるんならリポジトリ名書いてみ
DWM.exeへのAPIを使っているのはWPFとかDirect2DとかWindowの現行の
システムそのものだよ

どういう仕組みでWindows Vista以降のグラフィックシステムが動いていると
思っているの?
2019/11/17(日) 19:40:02.20ID:jIl/r0UZ
>>89
https://wayland.freedesktop.org/docs/html/
waylandでのxlibに相当するものがこれだろ?
で、CSpinButtonCtrlの中のCEditに飛ぶメッセージを親が処理する、みたいな事が
Windowsで言うとこの非公開APIでできるとか言いたい訳か?
それはどのソースだ?

>> WaylandのAPIはWindows上だと非公開APIであるDWM.exeへのAPIに対応するもの
>> DWM.exeがwestonやmutter等のWayland Compositorに対応する

「waylandのAPI」と「waylandでのWindowsで言うとこの非公開API」はどれだ?
2019/11/17(日) 19:49:41.06ID:k9PtcQCv
実際にやってんのはガチのポトペタとコピペだけだったりしてな
こういう奴がバグの数を増やすんだ
2019/11/17(日) 19:58:37.08ID:jIl/r0UZ
複数のコントロールをウィンドウに貼り付けたコントロールを再利用する側が
外から内側のコントロールの動作に介入できる機構かどうかと
作り手がバグを作り込むかどうかは別問題
2019/11/17(日) 20:05:04.82ID:ofkFjXp1
NG便利
2019/11/17(日) 20:16:56.48ID:k9PtcQCv

すまん

的外れなことを言ってるバカが、実際にはVBか何かのポトペタコピペしかできない無能なんだろうなあと
Xlib で書けるだけでもエライこっちゃ。。。
2019/11/17(日) 20:21:10.82ID:jIl/r0UZ
いくら人格攻撃をしたとこでXやwaylandの機能は増えない
2019/11/17(日) 20:42:27.22ID:4j9CRB/y
Windowsに出来てLinuxに出来ないGUIの機能って何なんだろう
Windowsアプリはwineで大体動くし
プリンタドライバがショボくてふち無し印刷が出来ないくらいしか思いつかん
‥それもGUIとは関係ないかw
2019/11/17(日) 20:45:29.54ID:jIl/r0UZ
親ウィンドウによる子コントロールのイベントの先取りとか
2019/11/17(日) 20:54:45.86ID:2sD6R491
>>97
WindowsUpdate
2019/11/17(日) 21:03:03.11ID:4j9CRB/y
>>98
レベルが低くて失笑ものなのは承知での質問何だけど、それが出来ると何か便利になるの?
実用的な例を上げてくれるととても嬉しい
(お陰でWindowsの○○では●●と言う操作が出来て大変有用だが、
Linuxの同類アプリ■■では残念ながらそれが出来なくて非常に不便だ。
みたいなかみ砕いた話もしてくれると実に面白いと思う)
2019/11/17(日) 21:10:21.68ID:jIl/r0UZ
CSpinButtonCtrlに貼り付けられてるエディットコントロール(こいつはCSpinButtonCtrlが内部で生成してる)が
フォーカス受け取った時とかにCSpinButtonCtrlからの派生だけでエディットコントロールへの
イベントを処理した上で、更にその派生クラスがWM_SETFOCUSを処理できるようになる
2019/11/17(日) 21:11:08.52ID:jIl/r0UZ
CSpinButtonCtrlだけじゃなくってカレンダーコントロールみたいなのもそうだろ
あれはウィンドウ1つでできてるコントロールじゃない
2019/11/17(日) 21:13:52.82ID:4j9CRB/y
>>101
ほほぉ
で、それが可能になる事により、プログラミング?何それ美味しいの?みたいな大多数のWindowsユーザーはどんな恩恵を受けてるの?
2019/11/17(日) 21:15:13.52ID:4j9CRB/y
>>102
カレンダーね
Windowsのカレンダーに出来てLinuxのカレンダーに出来ない事って?
2019/11/17(日) 21:18:34.76ID:jIl/r0UZ
再利用の話をしていたのであって作り手が好き好きにブランチして
”全く別のコントロールのクラスにすれば”LinuxでもWindowsに似せた事はできるだろう
ただしそれらの使い勝手はてんでバラバラだろうけどな
2019/11/17(日) 21:25:11.96ID:4j9CRB/y
なるほど
素人ながらに効率やら統一性の話をしてた事は語彙的には伝わってた
では貴方の言う使い勝手の統一性の無さが引き起こす問題とは具体的にはどういう事だろうか
とても興味があるので是非聞きたい
Debianは使いやすいLinuxであって欲しいので
2019/11/17(日) 21:41:35.13ID:jIl/r0UZ
それは誰にとって使いやすいLinuxであって欲しい?
PCマニア?Linuxマニア?素人を含めた一般人?
2019/11/17(日) 22:20:45.03ID:4j9CRB/y
>>107
もちろんまずは自分自身。でなければここに来ることは無い。

Linuxマニアのカテゴリになると多種多様過ぎてとても俺のような小物に偉そうに語れるものではない事くらいは認識してるつもり。

一般のLinuxを触った事も無いような人はにとっては使いやすいかどうか以前の話になってしまうのではないだろうか。PCのデスクトップ用途と言う意味では。
無論理解してくれる方が増えれば自分としても嬉しいけど、どんなに開発側の方々が頑張って素晴らしい実装をしてくれたって、世の流れや評価がWindowsやMacOSからLinuxにならない限りは残念な単語しか浮かんでこない。
「Windowsと違うから使いづらい」「Macみたいにお洒落じゃない」「何それ知らない」みたいな感想が多数派でしょう。

個人の主観などとても無力。でも俺は不便を感じないし使い道に合ってるから使う。
眠くなってきたのもあって俺に書ける事はこの程度の事ですな
109login:Penguin
垢版 |
2019/11/17(日) 22:22:59.08ID:5hxDrhpD
素直に動いてくれればなんでもいいです
2019/11/18(月) 10:25:09.26ID:HMF0CkcQ
https://www.debian.org/vote/2019/vote_002

> General Resolution: Init Systems and systemd

そろそろsystemd以外のinit入れるかどうかのGeneral Resolution始まりそう
もうChoice 3でええやん……
2019/11/18(月) 10:33:06.62ID:NkkjQGwg
シェルスクリプトベースのinitでも近代化(並列起動とか)
できるんだけどね。割と簡単に
2019/11/18(月) 10:56:46.21ID:cdpEU6nt
というか既にsysvinitも並列化されてるでしょ
それよりsystemdがLinux以外に対応してないのが問題
kFreeBSD向けのpatchを送ったら「そんなtoy OSはしらん」とrejectされたらしいし
2019/11/18(月) 13:46:13.65ID:MW+8+2K1
>>98
> 親ウィンドウによる子コントロールのイベントの先取りとか
X Window Systemでもできるよ

根本的な部分から説明するね

Windowsはローカルで動かすためのウィンドウシステムとして作られたので、マウスを動かしたりクリック
したりすると対応するメッセージが対応するウィンドウに常に送られる

だから子ウィンドウに対するメッセージを親ウィンドウで処理したい場合は子ウィンドウがメッセージを
一旦受け取った上で親ウィンドウにさらにSendMesseageで送らなくてはいけない

これに対してX Window Systemはネットワーク上で動かすことを前提にしているため、例えばボタン
ウィジット(ウィンドウ)ならマウスの移動を扱うとその分余計なリソースが消費されてしまうから、
マウスの移動は無視してマウスクリックとリリースに対応するイベントのみ受けとりたいので、
受け付けるイベントと最初から処理しないイベントを設定できるEventMaskというのがあり
処理しないイベントは親ウィンドウやその上位へ自動的に送られる仕組みになっている

ttp://csweb.cs.wfu.edu/~torgerse/Kokua/Irix_6.5.21_doc_cd/usr/share/Insight/library/SGI_bookshelves/SGI_Developer/books/XLib_PG/sgi_html/ch08.html
ttp://csweb.cs.wfu.edu/~torgerse/Kokua/Irix_6.5.21_doc_cd/usr/share/Insight/library/SGI_bookshelves/SGI_Developer/books/XLib_PG/sgi_html/figures/fig.8.02a.gif
2019/11/18(月) 13:50:22.68ID:nizzhszf
>>113
処理しないイベントだけ処理できたって意味ねえ
CSpinButtonCtrlから派生したクラスが文字列を全て選択できる様にした上で、
更に基本クラスがフォーカスされた時のイベントを処理、
CSpinButtonCtrlを使うアプリも更にOnSetFocusを処理できなきゃ
恥ずかしくってカスタムコントロールなんて言えないぞ
2019/11/18(月) 13:52:06.16ID:MW+8+2K1
>>113
つづき

当然子ウィンドウが受け取った上で親ウィンドウにXSentEvent等で送ることもできる
ttps://xjman.dsl.gr.jp/X11R6/X11/CH11.html

基本的に設計当時のPCとUnixワークステーションの性能に大きな差があった関係で、
WindowsよりX Window Systemの方が柔軟な設計になっているから、Windowsでできて
X Window Systemでできないことはないよ

ちなみにWaylandはマウスとキーボード3セットで3人同時に動かすmultiseat機能等
もっと複雑なことができる
2019/11/18(月) 13:54:43.96ID:MW+8+2K1
>>115
具体的なページを貼りたいのにNGワードに引っかかる

例えば
emboss.ブログ28.エフシー2.コム/ブログ-エントリ-115.html
にあるような処理はWindowsだと子ウィンドウでのメッセージ処理コードが必要だけど
X Window Systemでは、同様に処理してもいいが、子ウィンドウがマウスクリック
イベントを受け取らないようにするだけで実装できるなど
2019/11/18(月) 13:58:50.52ID:MW+8+2K1
ちなみに実際にXlibで相互にイベントをやり取りする場合はXSentEventより
XTEST ExtensionIの方がもっと柔軟なやりとりができるようになっている
ttps://www.x.org/releases/X11R7.7/doc/xextproto/xtest.html
2019/11/18(月) 14:01:08.62ID:nizzhszf
>>115
その処理順序は?
2019/11/18(月) 14:05:20.01ID:nizzhszf
てかハンドラの追加はできても基本クラスのハンドラを呼ばない様にして全部自前で処理とかできねえよな
2019/11/18(月) 14:16:57.83ID:MW+8+2K1
>>119
> てかハンドラの追加はできても基本クラスのハンドラを呼ばない様にして全部自前で処理とかできねえよな
XlibはC
基本クラスとは?
2019/11/18(月) 14:29:49.69ID:nizzhszf
>>120
全部Cでやるってんなら「基本クラス」を「機能の派生元のコントロール」に置き換えろ

ところで機能の派生元のハンドラを無理やり実行させない方法は今思いついた様な気がする
が、元のコードが終了時に多重開放とかしそうで上手く動くかどうかはわからん


先ずは機能の派生元のコントロールが保持している子コントロールのハンドラと、
機能の派生の為のコードが後から追加したハンドラの処理順序をはっきりさせろ

てかなんでX(Wayland)の上にコモンコントロールの類が無くて
ツールキットの類がそれぞれ自前で実装してるかってったら
WindowsやMacみたいなメッセージキューの類がないからコンポーネント化しづらくって
誰もやりたがらないんじゃねーの?としか思えん
仮にできるにしてもとんでもなく工数が掛かるとかじゃ現実的じゃない
2019/11/18(月) 15:05:59.52ID:MW+8+2K1
>>121
> 全部Cでやるってんなら「基本クラス」を「機能の派生元のコントロール」に置き換えろ
そもそも対応するものではありません

それと
> 先ずは機能の派生元のコントロールが保持している子コントロールのハンドラと、
そもそもハンドラとは?

ウィンドウハンドラというものはあるが、Win32のメッセージループもXlibのイベントループも
caseで場合分けとして実装するものであって、それをクラスライブラリで抽象化したものが
イベントハンドラだから、Win32 APIやXlibレベルではコントロールが保持するハンドラなんて
存在しないのだが

> てかなんでX(Wayland)の上にコモンコントロールの類が無くて
> ツールキットの類がそれぞれ自前で実装してるかってったら
> WindowsやMacみたいなメッセージキューの類がないからコンポーネント化しづらくって
いいえ

歴史的な経緯でX Toolkit Intrinsicsというツールキットの基盤となるものがあってXawや
Motifなどで使われていたんだけど、gtk+やQtが使っていないだけ
2019/11/18(月) 15:15:02.93ID:nizzhszf
>>122
揚げ足取りより先に機能を派生する側が後から追加したハンドラが必ず真っ先に呼び出してもらえるのかどうか
それをはっきりさせようぜ

じゃなきゃイベントの先取りも何もあったもんじゃない
2019/11/18(月) 15:20:53.40ID:MW+8+2K1
>>123
揚げ足取り以前に根本的に用語が正しくないの
何度も言うけどプログラミングしたことあるの?

例えばWin32のメッセージループの最小限のコードの例として
(またうまく貼れない)
ttp://wisdom.サクラ.えぬいー.じぇいぴー
/system/winapi/win32/win9.html
だと
ボタンが押された処理はメッセージループの本体の
if (msg.message == WM_LBUTTONUP) break;
であってボタンハンドラなんて存在しないから
2019/11/18(月) 15:22:59.74ID:nizzhszf
>>124
根本のWndProc()がそうなってるだけでMFCもVCLも.NETも実際にはメッセージ毎に分離してんだろ

それより先に機能を派生する側が後から追加したハンドラが必ず真っ先に呼び出してもらえるのかどうか
それをはっきりさせようぜ
2019/11/18(月) 15:32:42.37ID:MW+8+2K1
>>125
だからメッセージやイベント構造が同等かLinuxの方が上なら
WindowsでできることはLinuxでもできるでしょ

上位のMFCやQtでどう扱えるかはそれぞれのツールキットの実装の
違いであって、WindowsとX Window Systemの違いではない

お前が最初に話したのはWindowsのメッセージの仕組みがLinuxの
方にないということだったのに何でメッセージやイベント処理の根本的な
部分の話をごまかそうとするんだよ

ハンドラとかslotとか呼び方違うけど順番なんてツールキットの実装次第
2019/11/18(月) 15:37:01.87ID:nizzhszf
>>126
それは単独のウィンドウでできたコントロールでしか通用しない話
コントロールが更に子コントロールを作ってる様な高機能なコントロールの話をしてる

先に機能を派生する側が後から追加したハンドラが必ず真っ先に呼び出してもらえるのかどうか
それをはっきりさせようぜ
2019/11/18(月) 15:40:09.27ID:MW+8+2K1
>>127
要するにWindowsやLinuxのウィンドウシステムの基礎であるWin32のメッセージ
ループもX Window Systemのイベントループも何も知らないのね

何にも知らないのにLinuxにいちゃもんつけただけ

やっぱり>>71で言ったように何も役立たない会話でした
2019/11/18(月) 15:41:33.57ID:nizzhszf
親ウィンドウによるイベントの先取りの話に対して
> 当然子ウィンドウが受け取った上で親ウィンドウにXSentEvent等で送ることもできる
(先取りとは言っていない)

これを必死に流そうとしてるだけだろ
2019/11/18(月) 17:50:34.83ID:0rp48Fj0
内容は何となくしか分からないけど、2人の主張するテーマとここまで熱くなった理由だけはよく分かった
簡単にスレチとは言い切れないし激論も止む無し
2019/11/18(月) 17:58:58.09ID:KjuN22W3
面白いからもっとやってくれ

片方がWindowsのMS謹製ツールしか知らないのは良くわかるぞ
2019/11/18(月) 18:08:18.33ID:0rp48Fj0
読みたくない人は専ブラの機能でミュート出来るしね
俺はめっちゃ読みたい
2019/11/18(月) 18:21:15.35ID:TNGrJNSD
この話がわかる用の知識が付く本を教えてくらはい。
Linux 用が無ければ Windows 用でもいいです。
(てか、本って一時期より少なくなったね)
2019/11/18(月) 18:21:28.66ID:nizzhszf
キューを持ってるのはXのクライアントじゃなくってXサーバだって事位わかってるぞ
だからXの場合はネットワーク越しに飛んできたイベント以上の事を知る事はできない
2019/11/18(月) 19:26:40.02ID:Q5FLReRW
今北産業
2019/11/18(月) 19:46:50.67ID:Zj9gxJdz
お互いが相手がどの部分を勘違いしてるのか分かってなくて、
永遠に交わることないパターンでしょ。
2019/11/18(月) 19:49:43.74ID:buqNjFqH
web系プログラマの俺も来ましたよ
2019/11/18(月) 19:56:01.46ID:PtWqe83p
組み込みの私もやってきましたよっと…
2019/11/18(月) 20:18:19.34ID:oP7vAiQz
>>110
選択肢のどれがなんだって?
initはよう
2019/11/19(火) 06:04:34.19ID:8zTVAIoF
あの人やっぱり賢いな
プログラミングとは別の意味でも
2019/11/19(火) 11:37:05.79ID:NNhiqmvP
2人揃って必死にググってると思うとほんわかするわ
2019/11/19(火) 12:11:56.04ID:8zTVAIoF
なんて微笑ましい光景
2019/11/19(火) 13:15:10.63ID:RBwFT0MA
Xのコアの話ってググって出てくるのか?
144login:Penguin
垢版 |
2019/11/19(火) 21:32:52.95ID:kcjyKF+8
180個もうpグレードがキタから何かと思えば
バージョンが10.1→10.2になるんだって
2019/11/20(水) 10:39:48.31ID:DmhkavMc
https://www.debian.org/News/2019/20191116
結構security fixがある
2019/11/21(木) 06:12:25.74ID:K9LjfSpX
レポジトリつかってればfix受けられるが、自分で入れたらどうなる?
2019/11/21(木) 12:19:08.59ID:XGVgDJlh
「自分で入れたら」とは?
2019/11/21(木) 15:51:01.09ID:CNavkXvZ
apt コマンドを使わないで野良ビルドとか /usr/local とか??
2019/11/21(木) 16:19:27.08ID:MNcWTCs1
dpkg -i *.debしたやつでそ
2019/11/21(木) 16:26:43.35ID:CL64Mugf
単にDebianどころかLinuxディストリもよく知らない人では
151名無し募集中。。。
垢版 |
2019/11/21(木) 16:55:12.30ID:ysNSIwVj
知らずに二回インストしたら「手動でインストされたことにします」と
メッセージ出るけどなんか意味あんの?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況