Bonjour,

Le code suivant permet de faire bouger la souris par l'intermédiaire des flèches du clavier.
Ceci fonctionne que lorsque la fenêtre de l'application est active.
Que puis je faire pour que cette fonction (mouvement de souris grâce au clavier) soit maintenue même lorsque la fenêtre est réduite ?

Merci


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
 
gboolean on_key_press (GtkWidget *widget, GdkEventKey *event)
{
  gint x = 0;
  gint y = 0;
  gint xadd = 0;
  gint yadd = 0;
  GdkScreen *screen = NULL;
  GdkDisplay *display = NULL;
 
  /* Determine la touche pressee */
  switch (event->keyval)
  {
    case GDK_Left:
      xadd -= 5;
    break;
    case GDK_Right:
      xadd += 5;
    break;
    case GDK_Up:
      yadd -= 5;
    break;
    case GDK_Down:
      yadd += 5;
    break;
  }
 
  /* Recupere l'ecran par defaut */
  display = gdk_display_get_default ();
  screen = gdk_display_get_default_screen (display);
 
  /* Recupere la position du curseur */
  gdk_display_get_pointer (display, NULL, &x, &y, NULL);
 
  /* Calcul de la nouvelle position du curseur */
  //x += xadd;
  //y += yadd;
  x = x + 6*xadd;
  y = y + 6*yadd;
  gdk_display_warp_pointer (display, screen, x, y);
 
  /* Propagation de l'evenement */
  return FALSE;
}
 
int main (int argc, char **argv)
{
  GtkWidget *window = NULL;
 
  gtk_init (&argc, &argv);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  g_signal_connect (G_OBJECT (window), "destroy", gtk_main_quit, NULL);
  g_signal_connect (G_OBJECT (window), "key_press_event",
                    G_CALLBACK (on_key_press), NULL);
  gtk_widget_show_all (window);
  //gtk_window_set_keep_above (window);
  gtk_main ();
  return 0;
}