История изменений
Исправление Zubok, (текущая версия) :
Вот я быстро накидал. Это работает. Вместо window надо идентификатор окна поставить. Не знаю, как ты его захватываешь в своей программе.
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
Display *display;
unsigned long window;
int main(int argc, char** argv)
{
Atom filter, net_wm_state, type;
int i, format, status;
unsigned long nitems, bytes_after;
Atom *atoms;
unsigned char *prop;
display = XOpenDisplay(NULL);
filter = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", False);
net_wm_state = XInternAtom(display, "_NET_WM_STATE", False);
status = XGetWindowProperty(display, window, net_wm_state, 0, LONG_MAX,
False, XA_ATOM, &type, &format, &nitems,
&bytes_after, &prop);
atoms = (Atom *)prop;
for (i = 0; i < nitems; i++) {
if (atoms[i] == filter) {
printf("Fullscreen!\n");
}
}
XFree(prop);
XCloseDisplay(display);
return 0;
}
Исправление Zubok, :
Вот я быстро накидал. Это работает. Вместо window надо идентификатор окна поставить. Не знаю, как ты его захватываешь в своей программе.
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
Display *display;
unsigned long window;
int main(int argc, char** argv)
{
Atom filter, net_wm_state, type;
int i, format, status;
unsigned long nitems, bytes_after;
Atom *atoms;
unsigned char *prop;
display = XOpenDisplay(NULL);
int screen = XDefaultScreen(display);
filter = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", False);
net_wm_state = XInternAtom(display, "_NET_WM_STATE", False);
status = XGetWindowProperty(display, window, net_wm_state, 0, LONG_MAX,
False, XA_ATOM, &type, &format, &nitems,
&bytes_after, &prop);
atoms = (Atom *)prop;
for (i = 0; i < nitems; i++) {
if (atoms[i] == filter) {
printf("Fullscreen!\n");
}
}
XFree(prop);
XCloseDisplay(display);
return 0;
}
Исходная версия Zubok, :
Вот я быстро накидал. Это работает. Вместо window надо идентификатор окна поставить. Не знаю, как ты его захватываешь в своей программе.
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
Display *display;
unsigned long window;
int main(int argc, char** argv)
{
Atom filter, net_wm_state, type;
int i, format, status;
unsigned long nitems, bytes_after;
Atom *atoms;
unsigned char *prop;
display = XOpenDisplay(NULL);
int screen = XDefaultScreen(display);
window = RootWindow(display, screen);
filter = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", False);
net_wm_state = XInternAtom(display, "_NET_WM_STATE", False);
status = XGetWindowProperty(display, window, net_wm_state, 0, LONG_MAX,
False, XA_ATOM, &type, &format, &nitems,
&bytes_after, &prop);
atoms = (Atom *)prop;
for (i = 0; i < nitems; i++) {
if (atoms[i] == filter) {
printf("Fullscreen!\n");
}
}
XFree(prop);
XCloseDisplay(display);
return 0;
}