X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Fwindow.c;h=f1c8db16bee487fd5b15d0ee963b3282b0164528;hb=3795f38c6c834700ac5eed530b86adbc6399488d;hp=730178d78cc0430ef0a63643777bdaf1cf110618;hpb=0357305cec0f78ba4d4717467025ead6be25ce0c;p=chaz%2Ftint2 diff --git a/src/util/window.c b/src/util/window.c index 730178d..f1c8db1 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -38,33 +38,49 @@ void set_active (Window win) { - send_event32 (win, server.atom._NET_ACTIVE_WINDOW, 2, 0); + send_event32 (win, server.atom._NET_ACTIVE_WINDOW, 2, CurrentTime, 0); } void set_desktop (int desktop) { - send_event32 (server.root_win, server.atom._NET_CURRENT_DESKTOP, desktop, 0); + send_event32 (server.root_win, server.atom._NET_CURRENT_DESKTOP, desktop, 0, 0); } void windows_set_desktop (Window win, int desktop) { - send_event32 (win, server.atom._NET_WM_DESKTOP, desktop, 2); + send_event32 (win, server.atom._NET_WM_DESKTOP, desktop, 2, 0); } void set_close (Window win) { - send_event32 (win, server.atom._NET_CLOSE_WINDOW, 0, 2); + send_event32 (win, server.atom._NET_CLOSE_WINDOW, 0, 2, 0); } void window_toggle_shade (Window win) { - send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_SHADED); + send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_SHADED, 0); } +/* +int x11_send_expose(Display *dpy, Window dst, int x, int y, int width, int height) +{ + XEvent xe; + int rc; + xe.type = Expose; + xe.xexpose.window = dst; + xe.xexpose.x = x; + xe.xexpose.y = y; + xe.xexpose.width = width; + xe.xexpose.height = height; + xe.xexpose.count = 0; + rc = XSendEvent(tray_data.dpy, dst, True, NoEventMask, &xe); + return x11_ok() && rc != 0; +} +*/ int window_is_hidden (Window win) { @@ -80,7 +96,7 @@ int window_is_hidden (Window win) at = server_get_property (win, server.atom._NET_WM_STATE, XA_ATOM, &count); for (i = 0; i < count; i++) { - if (at[i] == server.atom._NET_WM_STATE_SKIP_PAGER || at[i] == server.atom._NET_WM_STATE_SKIP_TASKBAR) { + if (at[i] == server.atom._NET_WM_STATE_SKIP_TASKBAR) { XFree(at); return 1; } @@ -97,8 +113,9 @@ int window_is_hidden (Window win) XFree(at); for (i=0 ; i < nb_panel ; i++) { - if (panel1[i].main_win == win) + if (panel1[i].main_win == win) { return 1; + } } // specification @@ -140,6 +157,23 @@ int window_is_iconified (Window win) } +int window_is_urgent (Window win) +{ + Atom *at; + int count, i; + + at = server_get_property (win, server.atom._NET_WM_STATE, XA_ATOM, &count); + for (i = 0; i < count; i++) { + if (at[i] == server.atom._NET_WM_STATE_DEMANDS_ATTENTION) { + XFree(at); + return 1; + } + } + XFree(at); + return 0; +} + + int server_get_number_of_desktop () { return get_property32(server.root_win, server.atom._NET_NUMBER_OF_DESKTOPS, XA_CARDINAL);