/[rdesktop]/sourceforge.net/trunk/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/trunk/rdesktop/ewmhints.c

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

revision 263 by astrand, Mon Nov 18 18:12:49 2002 UTC revision 464 by astrand, Fri Sep 5 08:34:19 2003 UTC
# Line 21  Line 21 
21     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22  */  */
23    
 #include "rdesktop.h"  
24  #include <X11/Xlib.h>  #include <X11/Xlib.h>
25    #include "rdesktop.h"
26    
27  extern Display *display;  extern Display *g_display;
28    
29  /*  /*
30     Get window property value (32 bit format)     Get window property value (32 bit format)
# Line 40  get_property_value(char *propname, long Line 40  get_property_value(char *propname, long
40          int actual_format_return;          int actual_format_return;
41          unsigned long bytes_after_return;          unsigned long bytes_after_return;
42    
43          property = XInternAtom(display, propname, True);          property = XInternAtom(g_display, propname, True);
44          if (property == None)          if (property == None)
45          {          {
46                  fprintf(stderr, "Atom %s does not exist\n", propname);                  fprintf(stderr, "Atom %s does not exist\n", propname);
47                  return (-1);                  return (-1);
48          }          }
49    
50          result = XGetWindowProperty(display, DefaultRootWindow(display), property, 0,   /* long_offset */          result = XGetWindowProperty(g_display, DefaultRootWindow(g_display), property, 0,       /* long_offset */
51                                      max_length, /* long_length */                                      max_length, /* long_length */
52                                      False,      /* delete */                                      False,      /* delete */
53                                      AnyPropertyType,    /* req_type */                                      AnyPropertyType,    /* req_type */
# Line 87  get_property_value(char *propname, long Line 87  get_property_value(char *propname, long
87     Returns -1 on error     Returns -1 on error
88  */  */
89  static int  static int
90  get_current_desktop()  get_current_desktop(void)
91  {  {
92          unsigned long nitems_return;          unsigned long nitems_return;
93          uint32 *prop_return;          unsigned char *prop_return;
94          int current_desktop;          int current_desktop;
95    
96          if (get_property_value("_NET_CURRENT_DESKTOP", 1, &nitems_return,          if (get_property_value("_NET_CURRENT_DESKTOP", 1, &nitems_return,
97                                 (unsigned char **) &prop_return) < 0)                                 &prop_return) < 0)
98                  return (-1);                  return (-1);
99    
100          if (nitems_return != 1)          if (nitems_return != 1)
# Line 118  get_current_workarea(uint32 * x, uint32 Line 118  get_current_workarea(uint32 * x, uint32
118  {  {
119          int current_desktop;          int current_desktop;
120          unsigned long nitems_return;          unsigned long nitems_return;
121          uint32 *prop_return;          unsigned char *prop_return;
122            uint32 *return_words;
123          const uint32 net_workarea_x_offset = 0;          const uint32 net_workarea_x_offset = 0;
124          const uint32 net_workarea_y_offset = 1;          const uint32 net_workarea_y_offset = 1;
125          const uint32 net_workarea_width_offset = 2;          const uint32 net_workarea_width_offset = 2;
# Line 126  get_current_workarea(uint32 * x, uint32 Line 127  get_current_workarea(uint32 * x, uint32
127          const uint32 max_prop_length = 32 * 4;  /* Max 32 desktops */          const uint32 max_prop_length = 32 * 4;  /* Max 32 desktops */
128    
129          if (get_property_value("_NET_WORKAREA", max_prop_length, &nitems_return,          if (get_property_value("_NET_WORKAREA", max_prop_length, &nitems_return,
130                                 (unsigned char **) &prop_return) < 0)                                 &prop_return) < 0)
131                  return (-1);                  return (-1);
132    
133          if (nitems_return % 4)          if (nitems_return % 4)
# Line 140  get_current_workarea(uint32 * x, uint32 Line 141  get_current_workarea(uint32 * x, uint32
141          if (current_desktop < 0)          if (current_desktop < 0)
142                  return -1;                  return -1;
143    
144          *x = prop_return[current_desktop * 4 + net_workarea_x_offset];          return_words = (uint32 *)prop_return;
145          *y = prop_return[current_desktop * 4 + net_workarea_y_offset];  
146          *width = prop_return[current_desktop * 4 + net_workarea_width_offset];          *x = return_words[current_desktop * 4 + net_workarea_x_offset];
147          *height = prop_return[current_desktop * 4 + net_workarea_height_offset];          *y = return_words[current_desktop * 4 + net_workarea_y_offset];
148            *width = return_words[current_desktop * 4 + net_workarea_width_offset];
149            *height = return_words[current_desktop * 4 + net_workarea_height_offset];
150    
151          XFree(prop_return);          XFree(prop_return);
152    

Legend:
Removed from v.263  
changed lines
  Added in v.464

  ViewVC Help
Powered by ViewVC 1.1.26