Attivare la finestra di un programma con le funzioni del API di X11

Da Gambas-it.org - Wikipedia.

Attivare una finestra significa portarla al di sopra delle altre finestre presenti sul desktop, attribuendole così il focus.
Per attivare, dunque, la finestra di un programma si può utilizzare la funzione XRaiseWindow() della libreria condivisa (nella sua attuale versione) libX11.so.6.4.0 .
Tale funzione esterna richiede, fra l'altro, la specificazione del numero identificativo della finestra del programma da chiudere.

Mostriamo un esempio essenziale:

Library "libX11:6.4.0"

' Display *XOpenDisplay(char *display_name)
' Opens a connection to the X server that controls a display.
Private Extern XOpenDisplay(display_name As Pointer) As Pointer

' XRaiseWindow(Display *display, Window w)
' Raises the specified window to the top of the stack so that no sibling window obscures it.
Private Extern XRaiseWindow(display As Pointer, w As Long) As Integer

' XCloseDisplay(Display *display)
' Closes the connection to the X server for the display specified in the Display structure and destroys all windows.
Private Extern XCloseDisplay(display As Pointer)


Public Sub Main()

 Dim disp As Pointer

' Connessione al server X ed impostazione di default:
 disp = XOpenDisplay(0)
 If disp == 0 Then Error.Raise("Errore !")

 XRaiseWindow(disp, num_ID_della_finestra)

' Chiude la libreria:
 XCloseDisplay(disp)

End


Riferimenti