/[rdesktop]/sourceforge.net/branches/seamlessrdp-branch/rdesktop/ewmhints.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/branches/seamlessrdp-branch/rdesktop/ewmhints.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1118 by astrand, Tue Mar 14 13:56:50 2006 UTC revision 1119 by astrand, Wed Mar 15 06:42:57 2006 UTC
# Line 31  Line 31 
31  extern Display *g_display;  extern Display *g_display;
32  static Atom g_net_wm_state_maximized_vert_atom, g_net_wm_state_maximized_horz_atom,  static Atom g_net_wm_state_maximized_vert_atom, g_net_wm_state_maximized_horz_atom,
33          g_net_wm_state_hidden_atom;          g_net_wm_state_hidden_atom;
34  Atom g_net_wm_state_atom;  Atom g_net_wm_state_atom, g_net_wm_desktop_atom;
35    
36  /*  /*
37     Get window property value (32 bit format)     Get window property value (32 bit format)
# Line 174  ewmh_init() Line 174  ewmh_init()
174                  XInternAtom(g_display, "_NET_WM_STATE_MAXIMIZED_HORZ", False);                  XInternAtom(g_display, "_NET_WM_STATE_MAXIMIZED_HORZ", False);
175          g_net_wm_state_hidden_atom = XInternAtom(g_display, "_NET_WM_STATE_HIDDEN", False);          g_net_wm_state_hidden_atom = XInternAtom(g_display, "_NET_WM_STATE_HIDDEN", False);
176          g_net_wm_state_atom = XInternAtom(g_display, "_NET_WM_STATE", False);          g_net_wm_state_atom = XInternAtom(g_display, "_NET_WM_STATE", False);
177            g_net_wm_desktop_atom = XInternAtom(g_display, "_NET_WM_DESKTOP", False);
178  }  }
179    
180    
# Line 264  ewmh_change_state(Window wnd, int state) Line 265  ewmh_change_state(Window wnd, int state)
265          xevent.xclient.data.l[3] = 0;          xevent.xclient.data.l[3] = 0;
266          xevent.xclient.data.l[4] = 0;          xevent.xclient.data.l[4] = 0;
267          status = XSendEvent(g_display, DefaultRootWindow(g_display), False,          status = XSendEvent(g_display, DefaultRootWindow(g_display), False,
268                                SubstructureNotifyMask | SubstructureRedirectMask, &xevent);
269            if (!status)
270                    return -1;
271    
272            return 0;
273    }
274    
275    
276    int
277    ewmh_get_window_desktop(Window wnd)
278    {
279            unsigned long nitems_return;
280            unsigned char *prop_return;
281            int desktop;
282    
283            if (get_property_value(wnd, "_NET_WM_DESKTOP", 1, &nitems_return, &prop_return) < 0)
284                    return (-1);
285    
286            if (nitems_return != 1)
287            {
288                    fprintf(stderr, "_NET_WM_DESKTOP has bad length\n");
289                    return (-1);
290            }
291    
292            desktop = *prop_return;
293            XFree(prop_return);
294            return desktop;
295    }
296    
297    
298    int
299    ewmh_move_to_desktop(Window wnd, unsigned int desktop)
300    {
301            Status status;
302            XEvent xevent;
303    
304            xevent.type = ClientMessage;
305            xevent.xclient.window = wnd;
306            xevent.xclient.message_type = g_net_wm_desktop_atom;
307            xevent.xclient.format = 32;
308            xevent.xclient.data.l[0] = desktop;
309            xevent.xclient.data.l[1] = 0;
310            xevent.xclient.data.l[2] = 0;
311            xevent.xclient.data.l[3] = 0;
312            xevent.xclient.data.l[4] = 0;
313            status = XSendEvent(g_display, DefaultRootWindow(g_display), False,
314                              SubstructureNotifyMask | SubstructureRedirectMask, &xevent);                              SubstructureNotifyMask | SubstructureRedirectMask, &xevent);
315          if (!status)          if (!status)
316                  return -1;                  return -1;

Legend:
Removed from v.1118  
changed lines
  Added in v.1119

  ViewVC Help
Powered by ViewVC 1.1.26