Lines Matching +full:display +full:- +full:backend

2  * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina.
21 * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
36 * It is possible for one of the DMX "backend displays" to actually be
37 * smaller than the dimensions of the backend X server. Therefore, it
38 * is possible for more than one of the DMX "backend displays" to be
39 * physically located on the same backend X server. This situation must
43 * We could analyze the names used for the DMX "backend displays" (e.g.,
44 * the names passed to the -display command-line parameter), but there
45 * are many possible names for a single X display, and failing to detect
47 * DMX server opens a window on a backend X server, a property value is
48 * queried and set on that backend to detect when another window is
52 * both have windows on the same physical backend X server. This case
54 * particular backend X server.
59 #include <dmx-config.h>
67 /** Holds the window id of all DMX windows on the backend X server. */
73 extern char *display;
76 dmxPropertyErrorHandler(Display * dpy, XErrorEvent * ev) in dmxPropertyErrorHandler()
85 * length-limited calls. */ in dmxPropertyIdentifier()
94 snprintf(buf, sizeof(buf), "%s:%s:%s", DMX_IDENT, hostname, display); in dmxPropertyIdentifier()
101 * only DMX window on the backend X server.) */
109 if (!start->next) { in dmxPropertyIterate()
110 if (!start->beDisplay) in dmxPropertyIterate()
115 for (pt = start->next; /* condition at end of loop */ ; pt = pt->next) { in dmxPropertyIterate()
120 dmxLog(dmxDebug, "pt->beDisplay = %p\n", pt->beDisplay); in dmxPropertyIterate()
121 if (pt->beDisplay && (retval = f(pt, closure))) in dmxPropertyIterate()
129 /** Returns 0 if this is the only Xdmx session on the display; 1
134 Display *dpy = dmxScreen->beDisplay; in dmxPropertyCheckOtherServers()
142 int (*dmxOldHandler) (Display *, XErrorEvent *); in dmxPropertyCheckOtherServers()
173 tp.value, dmxScreen->name); in dmxPropertyCheckOtherServers()
175 list[count - 1] = malloc(tp.nitems + 2); in dmxPropertyCheckOtherServers()
176 strncpy(list[count - 1], (char *) tp.value, tp.nitems + 1); in dmxPropertyCheckOtherServers()
189 dmxLogOutput(dmxScreen, "No Xdmx server running on backend\n"); in dmxPropertyCheckOtherServers()
193 /** Returns NULL if this is the only Xdmx window on the display.
195 * the display. */
199 Display *dpy = dmxScreen->beDisplay; in dmxPropertyCheckOtherWindows()
204 int (*dmxOldHandler) (Display *, XErrorEvent *); in dmxPropertyCheckOtherWindows()
223 dmxScreen->name, (unsigned long) win, tp.value); in dmxPropertyCheckOtherWindows()
247 /** Returns 0 if this is the only Xdmx session on the display; 1
254 Display *dpy = dmxScreen->beDisplay; in dmxPropertyDisplay()
261 dmxScreen->shared = 1; in dmxPropertyDisplay()
269 /** Returns 1 if the dmxScreen and the display in \a name are on the
270 * same display, or 0 otherwise. We can't just compare the display
271 * names because there can be multiple synonyms for the same display,
272 * some of which cannot be determined without accessing the display
277 Display *dpy0 = dmxScreen->beDisplay; in dmxPropertySameDisplay()
280 Display *dpy1 = NULL; in dmxPropertySameDisplay()
292 dmxLog(dmxWarning, "No atom on %s\n", dmxScreen->name); in dmxPropertySameDisplay()
297 dmxLog(dmxWarning, "No text property on %s\n", dmxScreen->name); in dmxPropertySameDisplay()
328 /** Prints a log message if \a dmxScreen is on the same backend X server
329 * as some other DMX backend (output) screen. Modifies the property
330 * (#DMX_ATOMNAME) on the backend X server to reflect the creation of \a
333 * The root window of the backend X server holds a list of window ids
339 * "#DMX_IDENT:<hostname running DMX>:<display name of DMX>,<screen number>"
346 Display *dpy = dmxScreen->beDisplay; in dmxPropertyWindow()
347 Window win = dmxScreen->scrnWin; in dmxPropertyWindow()
358 DMXScreenInfo *tmp = dmxScreen->next; in dmxPropertyWindow()
360 dmxScreen->next = (other->next ? other->next : other); in dmxPropertyWindow()
361 other->next = (tmp ? tmp : dmxScreen); in dmxPropertyWindow()
362 dmxLog(dmxDebug, "%d/%s/%lu and %d/%s/%lu are on the same backend\n", in dmxPropertyWindow()
363 dmxScreen->index, dmxScreen->name, (unsigned long) dmxScreen->scrnWin, in dmxPropertyWindow()
364 other->index, other->name, (unsigned long) other->scrnWin); in dmxPropertyWindow()
367 snprintf(buf, sizeof(buf), ".%d,%lu", dmxScreen->index, in dmxPropertyWindow()
372 snprintf(buf, sizeof(buf), "%s,%d", id, dmxScreen->index); in dmxPropertyWindow()