Connexion
Vous n'avez pas encore de compte personnel ? Vous devriez en créer un. Une fois enregistré vous aurez certains avantages, comme pouvoir modifier l'aspect du site, ou poster des commentaires signés...
Support
Activité du Site

Pages vues depuis 06/01/2019 : 13 264 403

  • Nb. de membres 368
  • Nb. d'articles 2 852
  • Nb. de forums 24
  • Nb. de sujets 13
  • Nb. de critiques 0

Top 10  Statistiques

HotBorder 1.1 1307


Antoine 'Tcheko' Dubourg vient de sortir une nouvelle commoditée nommée HotBorder.

HotBorder est le frère de HotCorner, il vous permet de redimmensionner la taile d'une fenêtre en fonction de l'endroit où vous la déplacer sur les bords de votre bureau.

Se rendre sur le site de Tcheko.



Papiosaurpapiosaur Publié le : Vendredi 01 février 2013 @ 11:36:33

Papiosaur Papiosaur
Excellente cette commoditée Tcheko !



Bravo :=! :=! :=!



En quoi c'est un hack ?
Tcheko Tcheko
Citation : Papiosaur 



Excellente cette commoditée Tcheko !



Bravo :=! :=! :=!



En quoi c'est un hack ?
Czk



-------------------------------------

Quelque soit le chemin que tu prendras dans la vie, tu auras des ampoules aux pieds.

Czeko.free.fr
 





C'est précisé dans la documentation. Toutefois pour les non anglophones :



Les appels MoveWindow et SizeWindow ont été conçus pour être appelé uniquement par la tâche ou les tâches (du moment qu'elles arbitrent l'accès) propriétaires de la fenêtre. Comme il n'est pas possible de verrouiller l'accès à une fenêtre pour une tâche tiers (qui ne 'possède' pas la propriété de la fenêtre), il n'y a aucune garantie que la fenêtre ne disparaissent pas entre temps...



Grosso modo, la pire situation possible :



HotBorder va appeler MoveWindow pour la fenêtre X. Il a récupérer un pointer vers la fenêtre X. Une fois ce pointeur récupéré, le scheduler Exec donne la main à la tâche propriétaire de la fenêtre X que HotBorder va modifier. Cette tâche décide de fermer cette fenêtre. Quelques ms plus tard, le scheduler redonne la main à HotBorder qui termine ses manipulations sur une fenêtre qui n'existe plus...



Toutefois, le hack fonctionne de façon assez sûr pour plusieurs raisons :

- les appels MoveWindow/SizeWindow ont lieu dans l'input.device avec une priorité de 20

- la fenêtre récupérée est toujours la fenêtre active obtenue par le biais de Intuition

- la fenêtre active est généralement celle qui est déplacée.



Cependant, cela reste un **hack**. Il n'est pas possible de garantir l'existence de la fenêtre à moins d'en être propriétaire...



Donc, il y a potentiellement un risque d'explosion en vol non nul... :)



La seule solution pour rendre cela propre, c'est d'étendre Intuition pour ajouter ce genre de fonctionnalité directement dedans...



Bref. :)



A vos propres risques!
Papiosaur Papiosaur
Merci Tcheko pour ces éclaircissements :-D

Highlander Highlander
Au début, je pigeais pas son fonctionnement, peut-être parce que j'essayais trop de me la jouer Windows 7.

Il faut lacher le bouton de la souris pour que la fenêtre se cale (ne voyant pas l'aperçu à la 7, je pensais que ça ne fonctionnait pas).

J'aurais apprécié que la fenêtre reprenne sa taille initiale lorsqu'on la redéplace au risque de hacker le hackage ;)
Tcheko Tcheko
Citation : Highlander 



Au début, je pigeais pas son fonctionnement, peut-être parce que j'essayais trop de me la jouer Windows 7.

Il faut lacher le bouton de la souris pour que la fenêtre se cale (ne voyant pas l'aperçu à la 7, je pensais que ça ne fonctionnait pas).

J'aurais apprécié que la fenêtre reprenne sa taille initiale lorsqu'on la redéplace au risque de hacker le hackage ;) 





Et oui, je l'ai pas joué à la windows 7 pour l'aperçu. Sur le plan technique, c'est hors de question de réaliser une quelconque opération graphique vu le contexte d'exécution de la partie qui décide si la fenêtre doit être modifiée ou pas : tout se passe dans l'input.device... Autant dire que même faire un appel à l'intuitition library dans ce contexte, c'est déjà ultra limite...



J'aurais bien aimé ajouter des effets graphiques comme indiquer les zones sensibles sur les bords par exemple et une fenêtre fantôme pour symboliser la taille de la fenêtre mais tous ces 'eye candy' doivent être conçu directement dans la couche intuition et pas dehors...



Bref. La 1.2 est out. :)



++





Les commentaires sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leur contenu.