I'd like to get all windows running on a Linux Mint 21.2 XFCE desktop.I am a newbie in GTK. I followed instruction and wrote following codes. However, the codes cannot be complied. Appreciated much in advance for your kind help!
edited on 11th Sep.
Stop using GdkScreen
GdkScreen has been removed from GTK4! Thereafter, how to get all windows of all applications with GTK4? I cannot find a way from GTK website or google or stackoverflow.
#include <gtk/gtk.h>
#include <gdk/gdk.h>
static void
func_button1_clicked(GtkWidget *widget,
gpointer data)
{
GdkDisplayManager *display_manger = gdk_display_manager_get();
GSList *displays = gdk_display_manager_list_displays(display_manger);
while (displays != NULL)
{
// Below line is OK.
GdkDisplay *_display = displays->data;
// Below line is NG!
GdkScreen* screen = gdk_display_get_screen(_display, 0);
// Below line is NG!
GList* windows = gdk_screen_get_toplevel_windows (screen);
// Todo. Iterate windows and do something for each window
g_list_free(windows);
displays = displays->next;
}
g_slist_free(displays);
}
Howerver, following error messages were got from vscode terminal.
unknown type name ‘GdkScreen’
implicit declaration of function ‘gdk_display_get_screen’; did you mean ‘gdk_display_get_setting’? [-Wimplicit-function-declaration]
c_cpp_properties.json is as follows.
{
"configurations": [
{
"name": "linux-gcc-x64",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/gtk-4.0",
"/usr/include/gio-unix-2.0",
"/usr/include/cairo",
"/usr/include/pango-1.0",
"/usr/include/harfbuzz",
"/usr/include/pango-1.0",
"/usr/include/fribidi",
"/usr/include/harfbuzz",
"/usr/include/gdk-pixbuf-2.0",
"/usr/include/x86_64-linux-gnu",
"/usr/include/cairo",
"/usr/include/pixman-1",
"/usr/include/uuid",
"/usr/include/freetype2",
"/usr/include/libpng16",
"/usr/include/graphene-1.0",
"/usr/lib/x86_64-linux-gnu/graphene-1.0/include",
"/usr/include/libmount",
"/usr/include/blkid",
"/usr/include/glib-2.0",
"/usr/lib/x86_64-linux-gnu/glib-2.0/include"
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "${default}",
"cppStandard": "${default}",
"intelliSenseMode": "linux-gcc-x64",
"compilerArgs": [
""
]
}
],
"version": 4
}