Ma question frise le hors-sujet, je me permet de la poser tout de même
car quelqu'un a peut-être une réponse...
Voilà, je recherche le moyen, dans un programme en C, de *mettre au
premier plan la fenêtre d'une application en cours d'exécution* (fenêtre
identifiée par son titre). Idéalement, j'aimerai que mon programme
fonctionne pour tous les environnements de bureau... Gnome en priorité.
Étant donné que je vais devoir écrire une application similaire pour
Windows, si vous connaissez une solution en pur Java, je suis preneur !
Mais j'imagine que pour faire ce genre de chose en Java il faut
absolument passer par JNI... donc, en fin de compte un programme en C...
J'ai commencé mes recherches du côté de Xlib mais je n'ai pas encore
trouvé mon bonheur. Je suis en train d'étudier les sources de java-gnome...
Si l'un d'entre vous connait une solution...
Bonne soirée à tous,
Guillaume.
--
*Guillaume MESSONNIER*
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Basile STARYNKEVITCH
Guillaume MESSONNIER wrote:
Bonsoir à tous,
Ma question frise le hors-sujet, je me permet de la poser tout de même car quelqu'un a peut-être une réponse...
Voilà, je recherche le moyen, dans un programme en C, de *mettre au premier plan la fenêtre d'une application en cours d'exécution* (fenêtre identifiée par son titre). Idéalement, j'aimerai que mon programme fonctionne pour tous les environnements de bureau... Gnome en priorité.
C'est contraire aux règles de gestion des fenêtres, ICCCM et EWMH. Voir http://en.wikipedia.org/wiki/ICCCM http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints http://freedesktop.org/wiki/Specifications/wm-spec
L'intuition est que c'est le gestionnaire de fenêtre (le window manager) ou de bureau (le desktop) qui doit avoir la responsabilité des positionnements des plans.
Donc, c'est en principe impossible, et notamment très difficile (probablement impossible) à mettre en oeuvre pour tout window manager.
A mon avis, il faudrait renoncer à cet objectif (qui n'est pas très sain au demeurant: pourquoi l'application serait-elle forcément et à tout instant la plus importante pour l'utilisateur?).
Cordialement.
PS; je crois que c'est une FAQ quelque part, j'ignore où...
-- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Guillaume MESSONNIER wrote:
Bonsoir à tous,
Ma question frise le hors-sujet, je me permet de la poser tout de même
car quelqu'un a peut-être une réponse...
Voilà, je recherche le moyen, dans un programme en C, de *mettre au
premier plan la fenêtre d'une application en cours d'exécution*
(fenêtre identifiée par son titre). Idéalement, j'aimerai que mon
programme fonctionne pour tous les environnements de bureau... Gnome
en priorité.
C'est contraire aux règles de gestion des fenêtres, ICCCM et EWMH.
Voir http://en.wikipedia.org/wiki/ICCCM
http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints
http://freedesktop.org/wiki/Specifications/wm-spec
L'intuition est que c'est le gestionnaire de fenêtre (le window manager)
ou de bureau (le desktop) qui doit avoir la responsabilité des
positionnements des plans.
Donc, c'est en principe impossible, et notamment très difficile
(probablement impossible) à mettre en oeuvre pour tout window manager.
A mon avis, il faudrait renoncer à cet objectif (qui n'est pas très sain
au demeurant: pourquoi l'application serait-elle forcément et à tout
instant la plus importante pour l'utilisateur?).
Cordialement.
PS; je crois que c'est une FAQ quelque part, j'ignore où...
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Ma question frise le hors-sujet, je me permet de la poser tout de même car quelqu'un a peut-être une réponse...
Voilà, je recherche le moyen, dans un programme en C, de *mettre au premier plan la fenêtre d'une application en cours d'exécution* (fenêtre identifiée par son titre). Idéalement, j'aimerai que mon programme fonctionne pour tous les environnements de bureau... Gnome en priorité.
C'est contraire aux règles de gestion des fenêtres, ICCCM et EWMH. Voir http://en.wikipedia.org/wiki/ICCCM http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints http://freedesktop.org/wiki/Specifications/wm-spec
L'intuition est que c'est le gestionnaire de fenêtre (le window manager) ou de bureau (le desktop) qui doit avoir la responsabilité des positionnements des plans.
Donc, c'est en principe impossible, et notamment très difficile (probablement impossible) à mettre en oeuvre pour tout window manager.
A mon avis, il faudrait renoncer à cet objectif (qui n'est pas très sain au demeurant: pourquoi l'application serait-elle forcément et à tout instant la plus importante pour l'utilisateur?).
Cordialement.
PS; je crois que c'est une FAQ quelque part, j'ignore où...
-- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Sylvain Sauvage
Guillaume MESSONNIER, samedi 18 avril 2009, 20:46:49 CEST
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Guillaume MESSONNIER, samedi 18 avril 2009, 20:46:49 CEST
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Guillaume MESSONNIER
Sylvain Sauvage a écrit :
Pff… classe java.awt.Window, fonctions setAlwaysOnTop et consorts. Temps de RTFM : 10 s.
Je me suis peut-être mal expliqué, désolé ! L'application que je veux écrire ne doit pas mettre une de ses propres fenêtres au premier plan mais la fenêtre d'une *application tierce*... Un exemple concret : Au lancement de l'application, si une instance de Firefox est déjà en cours d'exécution, alors j'aimerai automatiquement la mettre au premier plan. Ce que je ne parviens pas à trouver, c'est comment faire pour récupérer le "handle" d'une fenêtre du système pour ensuite lui demander de passer au premier plan.
Pour les autres toolkits, voir les autres docs, chacun fournissant une méthode pour cela (p.ex. activer Qt::WindowStaysOnTopHint dans les windowFlags pour Qt4).
Voir aussi EWMH et ICCCM.
Mais c’est sale (RTFM toujours).
Merci à toi et à Basile pour les liens vers ICCCM et EWMH, je vais regarder ce que je peux en tirer.
Bonne soirée,
Guillaume.
-- *Guillaume MESSONNIER*
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Sylvain Sauvage a écrit :
Pff… classe java.awt.Window, fonctions setAlwaysOnTop et consorts.
Temps de RTFM : 10 s.
Je me suis peut-être mal expliqué, désolé ! L'application que je veux
écrire ne doit pas mettre une de ses propres fenêtres au premier plan
mais la fenêtre d'une *application tierce*...
Un exemple concret : Au lancement de l'application, si une instance de
Firefox est déjà en cours d'exécution, alors j'aimerai automatiquement
la mettre au premier plan.
Ce que je ne parviens pas à trouver, c'est comment faire pour récupérer
le "handle" d'une fenêtre du système pour ensuite lui demander de passer
au premier plan.
Pour les autres toolkits, voir les autres docs, chacun
fournissant une méthode pour cela (p.ex. activer
Qt::WindowStaysOnTopHint dans les windowFlags pour Qt4).
Voir aussi EWMH et ICCCM.
Mais c’est sale (RTFM toujours).
Merci à toi et à Basile pour les liens vers ICCCM et EWMH, je vais
regarder ce que je peux en tirer.
Bonne soirée,
Guillaume.
--
*Guillaume MESSONNIER*
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Pff… classe java.awt.Window, fonctions setAlwaysOnTop et consorts. Temps de RTFM : 10 s.
Je me suis peut-être mal expliqué, désolé ! L'application que je veux écrire ne doit pas mettre une de ses propres fenêtres au premier plan mais la fenêtre d'une *application tierce*... Un exemple concret : Au lancement de l'application, si une instance de Firefox est déjà en cours d'exécution, alors j'aimerai automatiquement la mettre au premier plan. Ce que je ne parviens pas à trouver, c'est comment faire pour récupérer le "handle" d'une fenêtre du système pour ensuite lui demander de passer au premier plan.
Pour les autres toolkits, voir les autres docs, chacun fournissant une méthode pour cela (p.ex. activer Qt::WindowStaysOnTopHint dans les windowFlags pour Qt4).
Voir aussi EWMH et ICCCM.
Mais c’est sale (RTFM toujours).
Merci à toi et à Basile pour les liens vers ICCCM et EWMH, je vais regarder ce que je peux en tirer.
Bonne soirée,
Guillaume.
-- *Guillaume MESSONNIER*
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Guillaume MESSONNIER
François TOURDE a écrit :
Basile STARYNKEVITCH écrivait:
A mon avis, il faudrait renoncer à cet objectif (qui n'est pas très sain au demeurant: pourquoi l'application serait-elle forcément et à tout instant la plus importante pour l'utilisateur?).
Peut-être parce que l'utilisateur a coché la case de la config disant "quoi qui qu'il arrive, passe au premier plan en cas de ..."
Il est vrai que de base ça semble une mauvaise idée, mais il existe toujours des cas particuliers, non?
Oui, je suis dans un cas bien particulier. Même si c'est un peu plus complexe que ça (ce programme fait partie d'un tout), on va dire que j'écris un lanceur d'applications qui ne doit pas démarrer plus de n instances de chaque programme. L'idée est donc de remettre au premier plan l'application demandée.
Guillaume.
-- *Guillaume MESSONNIER*
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
François TOURDE a écrit :
Basile STARYNKEVITCH écrivait:
A mon avis, il faudrait renoncer à cet objectif (qui n'est pas très
sain au demeurant: pourquoi l'application serait-elle forcément et à
tout instant la plus importante pour l'utilisateur?).
Peut-être parce que l'utilisateur a coché la case de la config disant
"quoi qui qu'il arrive, passe au premier plan en cas de ..."
Il est vrai que de base ça semble une mauvaise idée, mais il existe
toujours des cas particuliers, non?
Oui, je suis dans un cas bien particulier. Même si c'est un peu plus
complexe que ça (ce programme fait partie d'un tout), on va dire que
j'écris un lanceur d'applications qui ne doit pas démarrer plus de n
instances de chaque programme. L'idée est donc de remettre au premier
plan l'application demandée.
Guillaume.
--
*Guillaume MESSONNIER*
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
A mon avis, il faudrait renoncer à cet objectif (qui n'est pas très sain au demeurant: pourquoi l'application serait-elle forcément et à tout instant la plus importante pour l'utilisateur?).
Peut-être parce que l'utilisateur a coché la case de la config disant "quoi qui qu'il arrive, passe au premier plan en cas de ..."
Il est vrai que de base ça semble une mauvaise idée, mais il existe toujours des cas particuliers, non?
Oui, je suis dans un cas bien particulier. Même si c'est un peu plus complexe que ça (ce programme fait partie d'un tout), on va dire que j'écris un lanceur d'applications qui ne doit pas démarrer plus de n instances de chaque programme. L'idée est donc de remettre au premier plan l'application demandée.
Guillaume.
-- *Guillaume MESSONNIER*
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Sylvain Sauvage
Guillaume MESSONNIER, samedi 18 avril 2009, 23:34:24 CEST
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS
Guillaume MESSONNIER, samedi 18 avril 2009, 23:34:24 CEST
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers En cas de soucis, contactez EN ANGLAIS