Brevet FR2877112A1 — publié le 20060428

La présente invention concerne les systèmes d'affichage fonctionnant sur la base de fenêtres. Des systèmes à plusieurs fenêtres, comme Microsoft Windows (marque déposée) et X11, sont bien connus dans la technique. Les expressions suivantes, dans leurs diverses formes grammaticales, sont utilisées dans la description et les revendications pour signifier ce qui suit. "Avoir la main" : lorsqu'on dit qu'une fenêtre "a la main" (c'est-à-dire a l'initiative, est la fenêtre active, etc.), on veut dire que le système à plusieurs fenêtres gère le flux du clavier et les événements de télécommande allant vers cette fenêtre. De façon générale, l'application qui gère la fenêtre est en attente de ces événements, de manière à ainsi réagir aux demandes de l'utilisateur. "Application activée" : l'application activée (ou application active) est l'application qui gère la fenêtre ayant la main; cette application est la seule application qui peut réagir à des demandes de l'utilisateur. "Gestionnaire de fenêtres" : il s'agit d'un composant logiciel qui supervise les opérations d'établissement, d'affichage, de destruction de fenêtres, et qui "passe la main" d'une fenêtre à une autre. Dans un système d'affichage à plusieurs fenêtres, comme cela est bien connu dans la technique, plusieurs applications peuvent se partager l'écran via la notion de fenêtre. Le système à plusieurs fenêtres envoie des signaux d'entrée d'utilisateur (clavier, télécommande, stylet,...) en direction d'une unique fenêtre, celle qui a la main; cette fenêtre est également appelée ici "la fenêtre active". De façon générale, les utilisateurs doivent faire une demande pour obtenir la main sur une fenêtre, bien qu'il soit connu que des applications "prendront la main" sans qu'il y ait demande de l'utilisateur. Dans ce domaine, c'est généralement la dernière à demander la main qui l'obtient. Les inventeurs estiment que l'opération consistant à gérer la main, ou l'initiative, dans un environnement à plusieurs fenêtres implique de façon générale les problèmes suivants. Ces problèmes, ainsi que les solutions qui leur sont apportées par les modes de réalisation préférés de l'invention, peuvent tout spécialement être appliqués à un environnement dans lequel un système à plusieurs fenêtres d'affichage est mis en oeuvre 2877112 2 dans un système de télévision, typiquement un système de télévision utilisant une boîte de dessus de poste ("set-top- box"). On notera toutefois que les solutions à ces problèmes sont applicables de manière plus générale. 1. Ne pas perdre la main Lorsqu'une application affiche une fenêtre sur un écran, elle demande généralement d'avoir la main pour devenir une application active. Mais, lorsque cette application efface sa fenêtre ou la détruit, à qui 10 la main passe t-elle ? Par exemple, on va supposer qu'il y a deux applications. L'application 1 affiche une fenêtre et demande la main pour cette fenêtre; elle obtient d'avoir la main. L'application 2 affiche également une fenêtre et demande la main. L'application 2 obtient d'avoir la main et l'application 1 la perd. L'application 2 décide de fermer sa fenêtre; la main est perdue, puisque personne ne rend la main à l'application 1. L'application 1 sera affichée, mais ne sera pas active, et l'utilisateur aura l'impression que le système est "figé". Dans les environnements tels que Windows ou X11, les utilisateurs disposent presque toujours d'une souris pour restaurer l'initiative du clavier à une fenêtre. L'utilisateur n'est jamais "perdu" sans avoir en même temps la possibilité de reprendre la main. Dans un système dépourvu de souris, qui comporte par exemple un système typique télévi- sion plus boîte de dessus de poste, l'utilisateur peut n'avoir aucun méca- nisme à sa disposition pour reprendre la main. II. Lorsque j'ai la main, je ne veux pas que quelqu'un me la prenne Certaines applications, comme par exemple les applications de navigation dans un système de télévision, jouent un rôle spécial dans le système. Lorsque ces applications sont affichées, elles exigent la main et ne veulent pas perdre la main au profit d'autres applications "ordinaires". Il est possible d'utiliser une approche dite de "fenêtre modale" pour résoudre de manière générale le problème. On suppose qu'une fenêtre particulière a la main et que l'application associée à cette fenêtre 2877112 3 ne veut jamais donner la main à une autre fenêtre; cette fenêtre est connue sous l'appellation de "fenêtre modale". Toutefois, si plusieurs fenêtres peuvent être "modales" en même temps, on est ramené au même problème qui se posait avec les fenêtres "normales" : il devient impossible (en l'absence de connaissance détaillée des autres applications) d'être certain de ne pas perdre la main. Pour aider les applications à rester indépendantes et aider à la navigation "avec la main" entre les applications, l'invention, dans des modes de réalisation préférés, associe aux fenêtres une priorité "pour avoir la main". Cette priorité aide le gestionnaire de fenêtres à gérer l'attribution de la main de manière correcte entre les différentes fenêtres. Cette priorité "pour avoir la main" peut, dans certains modes de réalisation préférés de l'invention, être mise en oeuvre sous la forme d'un attribut "priorité pour avoir la main", qui peut, dans certains modes de réalisation, être représenté comme un entier. Le gestionnaire de fenêtres stocke de préférence une liste de fenêtres "actives possibles" qui sont organisées via la priorité pour avoir la main. Lorsqu'une application demande la main pour une fenêtre, ou bien lorsqu'une fenêtre active disparaît, le gestionnaire de fenêtres, en tenant compte des informations stockées, est en mesure d'agir correctement. Il est donc proposé, selon un mode de réalisation préféré de l'invention, un procédé permettant de gérer des fenêtres dans un système d'affichage fonctionnant sur la base de fenêtres, le procédé comportant les opérations suivantes, à savoir prévoir une pluralité de fenêtres, chaque fenêtre étant associée à une application, au moins une fenêtre de la pluralité de fenêtres étant en mesure d'accepter la main, affecter, à chaque fenêtre de la pluralité de fenêtres, une "priorité pour avoir la main", maintenir une liste rangée suivant un certain ordre, dans l'ordre des priorités pour avoir la main, de ladite au moins une fenêtre de la pluralité de fenêtres qui soit en mesure d'accepter la main, donner la préférence, dans l'une quelconque des priorités pour avoir la main, à une ou plusieurs fenêtres qui ont demandé d'avoir la main, et attribuer la main à exactement une fenêtre à tout moment en choisissant, parmi ladite au moins une fenêtre de la pluralité de fenêtre qui sont en mesure d'accepter la main, la fenêtre qui possède la priorité la plus élevée pour avoir la main, et en désignant la fenêtre choisie comme étant la fenêtre active. De plus, selon un mode de réalisation préféré de l'invention, le procédé comporte également, au cas où se produit un événement qui fait que la fenêtre active devient une fenêtre non active, l'opération consistant à effectuer l'attribution de la main à exactement une fenêtre, en désignant 5 donc une nouvelle fenêtre active. Selon un mode de réalisation préféré de l'invention, l'événement qui amène la fenêtre active à devenir non active comporte au moins l'un des suivants, à savoir la fermeture de la fenêtre active et le passage à l'état caché de la fenêtre active. La description suivante, conçue à titre d'illustration de l'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages; elle s'appuie sur les dessins annexés, dont les figures 1 à 8 sont des illustrations schématiques, montrant le fonctionnement d'un système construit et agissant selon un mode de réalisation préféré de l'invention. On se reporte maintenant aux figures 1 à 8, qui sont des illustrations schématiques du fonctionnement d'un système construit et agissant selon un mode de réalisation préféré de l'invention. On notera que les figures 1 à 8 présentent des exemples simplifiés particuliers du fonctionnement de l'invention et que l'invention ne saurait être limitée à l'exemple particulier des figures 1 à 8. La figure 1 montre un exemple dans lequel seule la fenêtre A a la main. Un utilisateur ou plusieurs utilisateurs peuvent faire apparaître la fenêtre B, puis la fenêtre C, lesquelles ont toutes la même priorité pour avoir la main. Elles viennent s'ajouter à la fin de la liste des fenêtres "activables", de préférence dans l'ordre dans lequel elles ont été créées (voir la figure 2). Maintenant, l'utilisateur demande la main pour la fenêtre C. 30 Ainsi, la fenêtre C passe devant la fenêtre A dans la liste des fenêtres activables et devient la fenêtre active (voir la figure 3). Maintenant, l'utilisateur supprime la fenêtre C active. Le gestionnaire de fenêtres attribue automatiquement la main à la fenêtre A. Lorsque deux ou plus de deux fenêtres ont une priorité égale pour avoir la main, le gestionnaire de fenêtres maintient de préférence une liste de fenêtres "activables" qui représente un historique de l'initiative, permettant au gestionnaire de fenêtres de redistribuer la main d'une manière intelligente (voir la figure 4). La fenêtre D est créée, avec une priorité pour avoir la main qui est égale à 5. La fenêtre D est alors placée en haut de la liste des fenêtres "activables", mais la fenêtre D n'est pas déclarée comme étant la fenêtre active, parce que la fenêtre D n'a pas demandé la main (figure 5). La fenêtre D demande la main. Comme la priorité pour avoir la main de la fenêtre D est supérieure à celle de la fenêtre précédemment active (fenêtre A), la fenêtre D devient la nouvelle fenêtre active (voir la figure 6). Maintenant, la fenêtre B demande la main. Le gestionnaire de fenêtres n'autorise pas que la main soit donnée à la fenêtre B, parce que le niveau de priorité de la fenêtre B est inférieur à celui de la fenêtre active. Toutefois, la fenêtre B passe au-dessus de la liste des fenêtres ayant la priorité 0 (voir la figure 7). Enfin, si la fenêtre D est supprimée, le gestionnaire de fenêtres attribue la main à la fenêtre B (voir la figure 8). L'homme de l'art comprendra que l'invention, dans ses modes de réalisation préférés qui ont été décrits ci-dessus, offre les avantages 20 suivants par rapport à la technique antérieure. 1) Le fait de gérer une liste de fenêtres qui peuvent être activées fournit une redistribution intelligente et inhabituelle de l'initiative (le fait d'avoir la main) par le système. 2) La notion de "priorité pour avoir la main" qui est associée aux 25 fenêtres permet au système de définir de manière simple et efficace une politique de transmission de la main entre les applications. Bien entendu, l'homme de l'art sera en mesure d'imaginer, à partir du procédé dont la description vient d'être donnée à titre simplement illustratif et nullement limitatif, diverses variantes et modifica- tions ne sortant pas du cadre de l'invention. 6 REVENDICATIONS 1. Procédé de gestion de fenêtres dans un système d'affichage fonctionnant sur la base de fenêtres, le procédé étant caractérisé en ce qu'il comprend les opérations suivantes: produire au niveau du système d'affichage une pluralité de fenêtres, chaque fenêtre étant associée à une application, au moins une fenêtre de la pluralité de fenêtres étant en mesure d'accepter la main; attribuer à chaque fenêtre de la pluralité de fenêtres une "priorité pour avoir la main" ; maintenir au moyen d'un gestionnaire de fenêtres une liste ordonnée, suivant l'ordre des priorités pour avoir la main, de ladite au moins une fenêtre de la pluralité de fenêtres qui est en mesure d'accepter la main, en donnant la préférence, dans une quelconque priorité pour avoir la main, à la fenêtre ou les fenêtres qui ont demandé d'avoir la main; et attribuer un moyen dudit gestionnaire de fenêtres la main à exactement une fenêtre à tout moment en choisissant, parmi ladite au moins une fenêtre de la pluralité de fenêtres qui est en mesure d'accepter la main, la fenêtre ayant la priorité la plus élevée pour avoir la main et en désignant la fenêtre choisie comme étant la fenêtre active. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend l'opération suivante: à l'apparition d'un événement qui amène la fenêtre active à devenir une fenêtre non active, effectuer au moyen dudit gestionnaire de fenêtres l'attribution de la main à exactement une fenêtre, en désignant ainsi une nouvelle fenêtre active. 3. Procédé selon la revendication 2, caractérisé en ce que l'événement qui fait que la fenêtre active devient une fenêtre non active comprend au moins l'un des suivants, à savoir la fermeture de la fenêtre active, et le passage de la fenêtre active dans l'état caché.