Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graphics Thread et exception sur Mac OS X.4 : mauvais comportement #3911

Closed
vicuna opened this issue Dec 6, 2005 · 2 comments
Closed

Graphics Thread et exception sur Mac OS X.4 : mauvais comportement #3911

vicuna opened this issue Dec 6, 2005 · 2 comments

Comments

@vicuna
Copy link

vicuna commented Dec 6, 2005

Original bug ID: 3911
Reporter: philippe_wang
Status: closed (set by @damiendoligez on 2005-12-15T12:32:07Z)
Resolution: won't fix
Priority: normal
Severity: minor
Version: 3.09.0
Category: ~DO NOT USE (was: OCaml general)

Bug description

J'ai un programme qui a un comportement qui est un peu gênant quand je combine Graphics et Thread, et qu'une exception est levée.

Le mauvais comportement est que le double clic en pleine fenêtre Graphics fait qu'elle se réduit donc le dock.
(Mac OS 10.4.3 G4@1.5GHz Powerbook ; X11 1.1 - XFree86 4.4.0)

Additional information

Voici un programme qui lève toujours une exception (c'est normal car la fenêtre graphique n'est pas ouverte). Le problème est le comportement "après exception rattrapée" au niveau de la fenêtre graphique.

(* ocaml -I +threads unix.cma threads.cma graphics.cma )
open Graphics
let thread () =
try while true do ignore (wait_next_event [Button_down]) done
with _ -> print_endline "exception levee"
let _ = Thread.create thread ()
let () = open_graph " "
(
ci-après, le double clic dans la fenêtre l'envoie dans le dock... *)

@vicuna
Copy link
Author

vicuna commented Dec 6, 2005

Comment author: Christophe

Ce n'est pas un bug, c'est le comportement normal du serveur X11 sous Mac OSX.
Si tu lances une application X11 sous Mac, tu peux remarquer que le double-clic minimise la fenêtre. Bien sur, il faut que le double-clic ne soit pas intercepté par l'application elle-même. C'est le cas pour toutes les applications si tu double-cliques sur la barre de titre de la fenêtre.
Dans ton exemple, thread lève immédiatement une exception, donc on n'écoute plus la souris. Le double-clic est alors transmis au serveur X (comme si tu double cliquais sur le titre de la fenêtre).

Ce n'est pas un bug.
(gs a par exemple le même comportement, la plupart des applis en tcl/tk, etc...)

@vicuna
Copy link
Author

vicuna commented Dec 7, 2005

Comment author: anonymous

ah bon... moi qui croyais que c'était à cause de...
Ok il faut que je revoies mes programmes alors !

Merci Christophe.

(mais je n'aime pas du tout ce comportement... il faut forcément intercepter les clics si on veut éviter ça. Dans certains cas il suffit de lancer un thread qui prend tous les évèvements, mais dans d'autres c'est pénible à gérer...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant