/[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 1137 by ossman_, Wed Mar 15 15:10:21 2006 UTC revision 1141 by ossman_, Thu Mar 16 08:09:41 2006 UTC
# Line 30  Line 30 
30  #define _NET_WM_STATE_TOGGLE        2   /* toggle property  */  #define _NET_WM_STATE_TOGGLE        2   /* toggle property  */
31    
32  extern Display *g_display;  extern Display *g_display;
33    
34  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,
35          g_net_wm_state_hidden_atom, g_net_wm_state_skip_taskbar_atom,          g_net_wm_state_hidden_atom, g_net_wm_name_atom, g_utf8_string_atom,
36          g_net_wm_state_skip_pager_atom;          g_net_wm_state_skip_taskbar_atom, g_net_wm_state_skip_pager_atom;
37    
38  Atom g_net_wm_state_atom, g_net_wm_desktop_atom;  Atom g_net_wm_state_atom, g_net_wm_desktop_atom;
39    
40  /*  /*
# Line 170  get_current_workarea(uint32 * x, uint32 Line 172  get_current_workarea(uint32 * x, uint32
172  void  void
173  ewmh_init()  ewmh_init()
174  {  {
175            /* FIXME: Use XInternAtoms */
176          g_net_wm_state_maximized_vert_atom =          g_net_wm_state_maximized_vert_atom =
177                  XInternAtom(g_display, "_NET_WM_STATE_MAXIMIZED_VERT", False);                  XInternAtom(g_display, "_NET_WM_STATE_MAXIMIZED_VERT", False);
178          g_net_wm_state_maximized_horz_atom =          g_net_wm_state_maximized_horz_atom =
# Line 180  ewmh_init() Line 183  ewmh_init()
183          g_net_wm_state_skip_pager_atom = XInternAtom(g_display, "_NET_WM_STATE_SKIP_PAGER", False);          g_net_wm_state_skip_pager_atom = XInternAtom(g_display, "_NET_WM_STATE_SKIP_PAGER", False);
184          g_net_wm_state_atom = XInternAtom(g_display, "_NET_WM_STATE", False);          g_net_wm_state_atom = XInternAtom(g_display, "_NET_WM_STATE", False);
185          g_net_wm_desktop_atom = XInternAtom(g_display, "_NET_WM_DESKTOP", False);          g_net_wm_desktop_atom = XInternAtom(g_display, "_NET_WM_DESKTOP", False);
186            g_net_wm_name_atom = XInternAtom(g_display, "_NET_WM_NAME", False);
187            g_utf8_string_atom = XInternAtom(g_display, "UTF8_STRING", False);
188  }  }
189    
190    
# Line 234  ewmh_change_state(Window wnd, int state) Line 239  ewmh_change_state(Window wnd, int state)
239          XEvent xevent;          XEvent xevent;
240    
241          /*          /*
          * Deal with the hidden atom  
          */  
         xevent.type = ClientMessage;  
         xevent.xclient.window = wnd;  
         xevent.xclient.message_type = g_net_wm_state_atom;  
         xevent.xclient.format = 32;  
         if (state == SEAMLESSRDP_MINIMIZED)  
                 xevent.xclient.data.l[0] = _NET_WM_STATE_ADD;  
         else  
                 xevent.xclient.data.l[0] = _NET_WM_STATE_REMOVE;  
         xevent.xclient.data.l[1] = g_net_wm_state_hidden_atom;  
         xevent.xclient.data.l[2] = 0;  
         xevent.xclient.data.l[3] = 0;  
         xevent.xclient.data.l[4] = 0;  
         status = XSendEvent(g_display, DefaultRootWindow(g_display), False,  
                             SubstructureNotifyMask | SubstructureRedirectMask, &xevent);  
         if (!status)  
                 return -1;  
   
   
         /*  
242           * Deal with the max atoms           * Deal with the max atoms
243           */           */
244          xevent.type = ClientMessage;          xevent.type = ClientMessage;
# Line 324  ewmh_move_to_desktop(Window wnd, unsigne Line 308  ewmh_move_to_desktop(Window wnd, unsigne
308  }  }
309    
310  void  void
311    ewmh_set_wm_name(Window wnd, const char *title)
312    {
313            int len;
314    
315            len = strlen(title);
316            XChangeProperty(g_display, wnd, g_net_wm_name_atom, g_utf8_string_atom,
317                            8, PropModeReplace, (unsigned char *) title, len);
318    }
319    
320    
321    void
322  ewmh_set_window_popup(Window wnd)  ewmh_set_window_popup(Window wnd)
323  {  {
324          Atom atoms[2] = { g_net_wm_state_skip_taskbar_atom, g_net_wm_state_skip_pager_atom };          Atom atoms[2] = { g_net_wm_state_skip_taskbar_atom, g_net_wm_state_skip_pager_atom };

Legend:
Removed from v.1137  
changed lines
  Added in v.1141

  ViewVC Help
Powered by ViewVC 1.1.26