Page 1 of 1

FTP: Divné chování okna dočasného stažení pro F3 - View

Posted: 20 Apr 2007, 14:08
by zarevak
Dobrý den,
okno s progresem nikdy nezíská focus (Focus má stále Salamander, přestože je progres okno modální) a nelze ho nikam přesunout.
Salamander je v té době nepoužitelný (nelze ani minimalizovat, ...) a funguje jen křížek modálního okna a klávesa ESC.
Problém lze kdykoliv replikovat v RC2 i RC3 pomocí nového pokusu o prohlédnutí-F3 většího souboru na FTP .

Posted: 24 Apr 2007, 07:36
by Petr Solin
Chovani presne odpovida tomu, jak to bylo navrzene. View (F3) je blokujici operace (stejne jako listovani aktualni cesty) a toto okenko slouzi pouze pro zobrazeni stavu operace (u kratkych downloadu se vubec nezobrazuje).

Pokud prohlizite prilis velke soubory (prilis dlouhy cas downloadu), doporucuji misto View (F3) pouzit Copy (F5), ktere neni blokujici a po dokonceni downloadu muzete soubory prohlizet rychle z lokalniho disku.

Posted: 24 Apr 2007, 14:12
by cincura.net
Petr Solin wrote:Chovani presne odpovida tomu, jak to bylo navrzene. View (F3) je blokujici operace (stejne jako listovani aktualni cesty) a toto okenko slouzi pouze pro zobrazeni stavu operace (u kratkych downloadu se vubec nezobrazuje).
Ma to nejaky skryty duvod, ze View je blokujici?

Posted: 24 Apr 2007, 14:31
by Petr Solin
Je to tak vseobecne radove jednodussi. :) Kdyby na to byl nejaky vetsi tlak, samozrejme se to da predelat, ale myslim, ze to zase tolik lidi netrapi.

Posted: 24 Apr 2007, 15:48
by zarevak
Petr Solin wrote:Chovani presne odpovida tomu, jak to bylo navrzene. View (F3) je blokujici operace (stejne jako listovani aktualni cesty) a toto okenko slouzi pouze pro zobrazeni stavu operace (u kratkych downloadu se vubec nezobrazuje).
Chápu, že se jedná o blokující/synchronizovanou operaci. Nechápu však, proč okno s progresem nedokáže získat focus a nelze přesunout, přestože je jen modální.
Jediné co funguje je klávesa ESC a myší lze kliknout na tlačítko X v rohu progres okna (reaguje už na LMouseDown). Okno progresu však nemá focus (nemá zvýrazněné záhlaví) a tak nemusí být uživatelům jasné, že se jedná o aktuální okno. Zvlášte pokud potřebují ukončit Salamandera, tak mohou narazit - Alt+F4 nefunguje a Salamander je okno s focusem - to však zavřít nelze.

Dialog před operací F5-Copy je modální. Má však focus, takže ho lze přesunout; funguje systémová nabídka okna (Alt+Mezerník); tlačítko X se po zmáčknutí myší promáčkne a zareaguje až po puštění tlačítka; funguje Alt+F4. Nefunkčnost minimalizace u programů s otevřeným modálním oknem je normální - tuto poznámku stahuji (přestože by se hodila)

Ptám se: Má zmiňované progress okno důvod nebýt regulérním modálním oknem?

Posted: 24 Apr 2007, 16:38
by cincura.net
Petr Solin wrote:Je to tak vseobecne radove jednodussi. :)
Presne to jsem si myslel, ale nechtel jsem to rici naplno. :roll:

Posted: 24 Apr 2007, 16:42
by cincura.net
zarevak wrote:Má zmiňované progress okno důvod nebýt regulérním modálním oknem?
Myslim, ze je to z toho duvodu, ze modalni okno zastavi vykonavani kodu co je za ShowModal(); (nebo obdobnym prikazem). Ale tak jak je to nyni to prebehne pres Show(); a pokracuje dal. Okno samo si pak osefuje (treba WS_POPUP or WS_DISABLED or WS_DLGFRAME and not WS_BORDER apod. kombinace), aby se na nej nikdo nedostal. Sam jsem to tak pakrkrat resil. Ono se pak plno veci dobre dela, nemusi se to "slozite" resit (i kdyz to neni uplne koser).

Jen hadam. :)

Posted: 25 Apr 2007, 00:26
by zarevak
Petr Solin wrote:Je to tak vseobecne radove jednodussi. :)
Modální kód a modální dialog na sobě nezávisí. Lze napsat modálně se chovající dialog bez modálního kódu (kdy zprávy zpracovává cyklus zpráv hlavního okna). Lze napsat i modální kód bez viditelného modálního UI (např: interní cyklus zpráv při otevření menu; přesouvání/zvětšování okna;...)
Kdyžtak více:
- The Old New Thing: Modality, part 1: UI-modality vs code-modality
- The Old New Thing: Modality, part 2: Code-modality vs UI-modality
- The Old New Thing: The correct order for disabling and enabling windows
Blog The Old New Thing Raymonda Chena obsahuje spoustu dalších užitečných informací....