make an obt_root() macro

This commit is contained in:
Dana Jansens 2008-01-31 09:56:59 -05:00
parent ec3a4e3404
commit 73c9a0e06b
16 changed files with 69 additions and 86 deletions

View file

@ -61,6 +61,8 @@ void obt_display_close();
void obt_display_ignore_errors(gboolean ignore); void obt_display_ignore_errors(gboolean ignore);
#define obt_root(screen) (RootWindow(obt_display, screen))
G_END_DECLS G_END_DECLS
#endif /*__obt_display_h*/ #endif /*__obt_display_h*/

View file

@ -468,7 +468,7 @@ void obt_prop_message(gint screen, Window about, Atom messagetype,
glong data0, glong data1, glong data2, glong data3, glong data0, glong data1, glong data2, glong data3,
glong data4, glong mask) glong data4, glong mask)
{ {
obt_prop_message_to(RootWindow(obt_display, screen), about, messagetype, obt_prop_message_to(obt_root(screen), about, messagetype,
data0, data1, data2, data3, data4, mask); data0, data1, data2, data3, data4, mask);
} }

View file

@ -165,8 +165,8 @@ void client_set_list(void)
} else } else
windows = NULL; windows = NULL;
OBT_PROP_SETA32(RootWindow(obt_display, ob_screen), OBT_PROP_SETA32(obt_root(ob_screen), NET_CLIENT_LIST, WINDOW,
NET_CLIENT_LIST, WINDOW, (gulong*)windows, size); (gulong*)windows, size);
if (windows) if (windows)
g_free(windows); g_free(windows);
@ -1298,7 +1298,7 @@ void client_update_transient_for(ObClient *self)
/* Setting the transient_for to Root is actually illegal, however /* Setting the transient_for to Root is actually illegal, however
applications from time have done this to specify transient for applications from time have done this to specify transient for
their group */ their group */
if (!target && self->group && t == RootWindow(obt_display, ob_screen)) if (!target && self->group && t == obt_root(ob_screen))
trangroup = TRUE; trangroup = TRUE;
} else if (self->group && self->transient) } else if (self->group && self->transient)
trangroup = TRUE; trangroup = TRUE;

View file

@ -85,8 +85,7 @@ void dock_startup(gboolean reconfig)
attrib.event_mask = DOCK_EVENT_MASK; attrib.event_mask = DOCK_EVENT_MASK;
attrib.override_redirect = True; attrib.override_redirect = True;
attrib.do_not_propagate_mask = DOCK_NOPROPAGATEMASK; attrib.do_not_propagate_mask = DOCK_NOPROPAGATEMASK;
dock->frame = XCreateWindow(obt_display, dock->frame = XCreateWindow(obt_display, obt_root(ob_screen),
RootWindow(obt_display, ob_screen),
0, 0, 1, 1, 0, 0, 0, 1, 1, 0,
RrDepth(ob_rr_inst), InputOutput, RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst), RrVisual(ob_rr_inst),
@ -202,7 +201,7 @@ void dock_remove(ObDockApp *app, gboolean reparent)
if (reparent) if (reparent)
XReparentWindow(obt_display, app->icon_win, XReparentWindow(obt_display, app->icon_win,
RootWindow(obt_display, ob_screen), app->x, app->y); obt_root(ob_screen), app->x, app->y);
dock->dock_apps = g_list_remove(dock->dock_apps, app); dock->dock_apps = g_list_remove(dock->dock_apps, app);
dock_configure(); dock_configure();

View file

@ -159,7 +159,7 @@ static Window event_get_window(XEvent *e)
/* pick a window */ /* pick a window */
switch (e->type) { switch (e->type) {
case SelectionClear: case SelectionClear:
window = RootWindow(obt_display, ob_screen); window = obt_root(ob_screen);
break; break;
case MapRequest: case MapRequest:
window = e->xmap.window; window = e->xmap.window;
@ -314,7 +314,7 @@ static gboolean wanted_focusevent(XEvent *e, gboolean in_client_only)
/* These are the ones we want.. */ /* These are the ones we want.. */
if (win == RootWindow(obt_display, ob_screen)) { if (win == obt_root(ob_screen)) {
/* If looking for a focus in on a client, then always return /* If looking for a focus in on a client, then always return
FALSE for focus in's to the root window */ FALSE for focus in's to the root window */
if (in_client_only) if (in_client_only)
@ -368,7 +368,7 @@ static gboolean wanted_focusevent(XEvent *e, gboolean in_client_only)
return FALSE; return FALSE;
/* Focus left the root window revertedto state */ /* Focus left the root window revertedto state */
if (win == RootWindow(obt_display, ob_screen)) if (win == obt_root(ob_screen))
return FALSE; return FALSE;
/* These are the ones we want.. */ /* These are the ones we want.. */
@ -592,7 +592,7 @@ static void event_process(const XEvent *ec, gpointer data)
obt_display_ignore_errors(TRUE); obt_display_ignore_errors(TRUE);
if (XGetInputFocus(obt_display, &win, &i) && if (XGetInputFocus(obt_display, &win, &i) &&
XGetGeometry(obt_display, win, &root, &i,&i,&u,&u,&u,&u) && XGetGeometry(obt_display, win, &root, &i,&i,&u,&u,&u,&u) &&
root != RootWindow(obt_display, ob_screen)) root != obt_root(ob_screen))
{ {
ob_debug_type(OB_DEBUG_FOCUS, ob_debug_type(OB_DEBUG_FOCUS,
"Focus went to another screen !\n"); "Focus went to another screen !\n");
@ -633,7 +633,7 @@ static void event_process(const XEvent *ec, gpointer data)
event_handle_dock(dock, e); event_handle_dock(dock, e);
else if (menu) else if (menu)
event_handle_menu(menu, e); event_handle_menu(menu, e);
else if (window == RootWindow(obt_display, ob_screen)) else if (window == obt_root(ob_screen))
event_handle_root(e); event_handle_root(e);
else if (e->type == MapRequest) else if (e->type == MapRequest)
client_manage(window); client_manage(window);
@ -700,7 +700,7 @@ static void event_process(const XEvent *ec, gpointer data)
if (e->type == ButtonPress || e->type == ButtonRelease) { if (e->type == ButtonPress || e->type == ButtonRelease) {
/* If the button press was on some non-root window, or was physically /* If the button press was on some non-root window, or was physically
on the root window, the process it */ on the root window, the process it */
if (window != RootWindow(obt_display, ob_screen) || if (window != obt_root(ob_screen) ||
e->xbutton.subwindow == None) e->xbutton.subwindow == None)
{ {
event_handle_user_input(client, e); event_handle_user_input(client, e);

View file

@ -91,8 +91,7 @@ void focus_set_client(ObClient *client)
/* set the NET_ACTIVE_WINDOW hint, but preserve it on shutdown */ /* set the NET_ACTIVE_WINDOW hint, but preserve it on shutdown */
if (ob_state() != OB_STATE_EXITING) { if (ob_state() != OB_STATE_EXITING) {
active = client ? client->window : None; active = client ? client->window : None;
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen), NET_ACTIVE_WINDOW, WINDOW, active);
NET_ACTIVE_WINDOW, WINDOW, active);
} }
} }

View file

@ -67,16 +67,16 @@ void focus_cycle_indicator_startup(gboolean reconfig)
attr.override_redirect = True; attr.override_redirect = True;
attr.background_pixel = BlackPixel(obt_display, ob_screen); attr.background_pixel = BlackPixel(obt_display, ob_screen);
focus_indicator.top.window = focus_indicator.top.window =
create_window(RootWindow(obt_display, ob_screen), create_window(obt_root(ob_screen),
CWOverrideRedirect | CWBackPixel, &attr); CWOverrideRedirect | CWBackPixel, &attr);
focus_indicator.left.window = focus_indicator.left.window =
create_window(RootWindow(obt_display, ob_screen), create_window(obt_root(ob_screen),
CWOverrideRedirect | CWBackPixel, &attr); CWOverrideRedirect | CWBackPixel, &attr);
focus_indicator.right.window = focus_indicator.right.window =
create_window(RootWindow(obt_display, ob_screen), create_window(obt_root(ob_screen),
CWOverrideRedirect | CWBackPixel, &attr); CWOverrideRedirect | CWBackPixel, &attr);
focus_indicator.bottom.window = focus_indicator.bottom.window =
create_window(RootWindow(obt_display, ob_screen), create_window(obt_root(ob_screen),
CWOverrideRedirect | CWBackPixel, &attr); CWOverrideRedirect | CWBackPixel, &attr);
stacking_add(INTERNALWINDOW_AS_WINDOW(&focus_indicator.top)); stacking_add(INTERNALWINDOW_AS_WINDOW(&focus_indicator.top));

View file

@ -113,8 +113,7 @@ void focus_cycle_popup_startup(gboolean reconfig)
attrib.override_redirect = True; attrib.override_redirect = True;
attrib.border_pixel=RrColorPixel(ob_rr_theme->osd_border_color); attrib.border_pixel=RrColorPixel(ob_rr_theme->osd_border_color);
popup.bg = create_window(RootWindow(obt_display, ob_screen), popup.bg = create_window(obt_root(ob_screen), ob_rr_theme->obwidth,
ob_rr_theme->obwidth,
CWOverrideRedirect | CWBorderPixel, &attrib); CWOverrideRedirect | CWBorderPixel, &attrib);
popup.text = create_window(popup.bg, 0, 0, NULL); popup.text = create_window(popup.bg, 0, 0, NULL);

View file

@ -101,13 +101,12 @@ ObFrame *frame_new(ObClient *client)
mask |= CWColormap | CWBackPixel | CWBorderPixel; mask |= CWColormap | CWBackPixel | CWBorderPixel;
/* create a colormap with the visual */ /* create a colormap with the visual */
self->colormap = attrib.colormap = self->colormap = attrib.colormap =
XCreateColormap(obt_display, XCreateColormap(obt_display, obt_root(ob_screen),
RootWindow(obt_display, ob_screen),
visual, AllocNone); visual, AllocNone);
attrib.background_pixel = BlackPixel(obt_display, ob_screen); attrib.background_pixel = BlackPixel(obt_display, ob_screen);
attrib.border_pixel = BlackPixel(obt_display, ob_screen); attrib.border_pixel = BlackPixel(obt_display, ob_screen);
} }
self->window = createWindow(RootWindow(obt_display, ob_screen), visual, self->window = createWindow(obt_root(ob_screen), visual,
mask, &attrib); mask, &attrib);
/* create the visible decor windows */ /* create the visible decor windows */
@ -1076,10 +1075,8 @@ void frame_release_client(ObFrame *self)
if (reparent) { if (reparent) {
/* according to the ICCCM - if the client doesn't reparent itself, /* according to the ICCCM - if the client doesn't reparent itself,
then we will reparent the window to root for them */ then we will reparent the window to root for them */
XReparentWindow(obt_display, self->client->window, XReparentWindow(obt_display, self->client->window, obt_root(ob_screen),
RootWindow(obt_display, ob_screen), self->client->area.x, self->client->area.y);
self->client->area.x,
self->client->area.y);
} }
/* remove all the windows for the frame from the window_map */ /* remove all the windows for the frame from the window_map */
@ -1357,7 +1354,7 @@ ObFrameContext frame_context(ObClient *client, Window win, gint x, gint y)
if (moveresize_in_progress) if (moveresize_in_progress)
return OB_FRAME_CONTEXT_MOVE_RESIZE; return OB_FRAME_CONTEXT_MOVE_RESIZE;
if (win == RootWindow(obt_display, ob_screen)) if (win == obt_root(ob_screen))
return OB_FRAME_CONTEXT_ROOT ; return OB_FRAME_CONTEXT_ROOT ;
if (client == NULL) return OB_FRAME_CONTEXT_NONE; if (client == NULL) return OB_FRAME_CONTEXT_NONE;
if (win == client->window) { if (win == client->window) {

View file

@ -74,8 +74,7 @@ gboolean grab_keyboard_full(gboolean grab)
if (grab) { if (grab) {
if (kgrabs++ == 0) { if (kgrabs++ == 0) {
ret = XGrabKeyboard(obt_display, ret = XGrabKeyboard(obt_display, obt_root(ob_screen),
RootWindow(obt_display, ob_screen),
False, GrabModeAsync, GrabModeAsync, False, GrabModeAsync, GrabModeAsync,
event_curtime) == Success; event_curtime) == Success;
if (!ret) if (!ret)
@ -106,8 +105,7 @@ gboolean grab_pointer_full(gboolean grab, gboolean owner_events,
ret = XGrabPointer(obt_display, screen_support_win, owner_events, ret = XGrabPointer(obt_display, screen_support_win, owner_events,
GRAB_PTR_MASK, GRAB_PTR_MASK,
GrabModeAsync, GrabModeAsync, GrabModeAsync, GrabModeAsync,
(confine ? RootWindow(obt_display, ob_screen) : (confine ? obt_root(ob_screen) : None),
None),
ob_cursor(cur), event_curtime) == Success; ob_cursor(cur), event_curtime) == Success;
if (!ret) if (!ret)
--pgrabs; --pgrabs;

View file

@ -44,20 +44,20 @@ static void grab_keys(gboolean grab)
{ {
KeyBindingTree *p; KeyBindingTree *p;
ungrab_all_keys(RootWindow(obt_display, ob_screen)); ungrab_all_keys(obt_root(ob_screen));
if (grab) { if (grab) {
p = curpos ? curpos->first_child : keyboard_firstnode; p = curpos ? curpos->first_child : keyboard_firstnode;
while (p) { while (p) {
if (p->key) if (p->key)
grab_key(p->key, p->state, RootWindow(obt_display, ob_screen), grab_key(p->key, p->state, obt_root(ob_screen),
GrabModeAsync); GrabModeAsync);
p = p->next_sibling; p = p->next_sibling;
} }
if (curpos) if (curpos)
grab_key(config_keyboard_reset_keycode, grab_key(config_keyboard_reset_keycode,
config_keyboard_reset_state, config_keyboard_reset_state,
RootWindow(obt_display, ob_screen), GrabModeAsync); obt_root(ob_screen), GrabModeAsync);
} }
} }

View file

@ -85,7 +85,7 @@ ObMenuFrame* menu_frame_new(ObMenu *menu, guint show_from, ObClient *client)
self->show_from = show_from; self->show_from = show_from;
attr.event_mask = FRAME_EVENTMASK; attr.event_mask = FRAME_EVENTMASK;
self->window = createWindow(RootWindow(obt_display, ob_screen), self->window = createWindow(obt_root(ob_screen),
CWEventMask, &attr); CWEventMask, &attr);
XSetWindowBorderWidth(obt_display, self->window, ob_rr_theme->mbwidth); XSetWindowBorderWidth(obt_display, self->window, ob_rr_theme->mbwidth);

View file

@ -144,7 +144,7 @@ gint main(gint argc, gchar **argv)
/* Send client message telling the OB process to: /* Send client message telling the OB process to:
* remote_control = 1 -> reconfigure * remote_control = 1 -> reconfigure
* remote_control = 2 -> restart */ * remote_control = 2 -> restart */
OBT_PROP_MSG(ob_screen, RootWindow(obt_display, ob_screen), OBT_PROP_MSG(ob_screen, obt_root(ob_screen),
OB_CONTROL, remote_control, 0, 0, 0, 0); OB_CONTROL, remote_control, 0, 0, 0, 0);
obt_display_close(obt_display); obt_display_close(obt_display);
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
@ -233,8 +233,7 @@ gint main(gint argc, gchar **argv)
/* /*
if (config_type != NULL) if (config_type != NULL)
PROP_SETS(RootWindow(obt_display, ob_screen), PROP_SETS(obt_root(ob_screen), ob_config, config_type);
ob_config, config_type);
*/ */
/* we're done with parsing now, kill it */ /* we're done with parsing now, kill it */
@ -257,7 +256,7 @@ gint main(gint argc, gchar **argv)
if (ob_rr_theme == NULL) if (ob_rr_theme == NULL)
ob_exit_with_error(_("Unable to load a theme.")); ob_exit_with_error(_("Unable to load a theme."));
OBT_PROP_SETS(RootWindow(obt_display, ob_screen), OBT_PROP_SETS(obt_root(ob_screen),
OB_THEME, utf8, ob_rr_theme->name); OB_THEME, utf8, ob_rr_theme->name);
} }
@ -300,7 +299,7 @@ gint main(gint argc, gchar **argv)
focus_nothing(); focus_nothing();
/* focus what was focused if a wm was already running */ /* focus what was focused if a wm was already running */
if (OBT_PROP_GET32(RootWindow(obt_display, ob_screen), if (OBT_PROP_GET32(obt_root(ob_screen),
NET_ACTIVE_WINDOW, WINDOW, &xid) && NET_ACTIVE_WINDOW, WINDOW, &xid) &&
(w = window_find(xid)) && WINDOW_IS_CLIENT(w)) (w = window_find(xid)) && WINDOW_IS_CLIENT(w))
{ {

View file

@ -41,7 +41,7 @@ ObPopup *popup_new(void)
self->iconwm = self->iconhm = 1; self->iconwm = self->iconhm = 1;
attrib.override_redirect = True; attrib.override_redirect = True;
self->bg = XCreateWindow(obt_display, RootWindow(obt_display, ob_screen), self->bg = XCreateWindow(obt_display, obt_root(ob_screen),
0, 0, 1, 1, 0, RrDepth(ob_rr_inst), 0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
InputOutput, RrVisual(ob_rr_inst), InputOutput, RrVisual(ob_rr_inst),
CWOverrideRedirect, &attrib); CWOverrideRedirect, &attrib);

View file

@ -146,8 +146,7 @@ static gboolean replace_wm(void)
} }
/* Send client message indicating that we are now the WM */ /* Send client message indicating that we are now the WM */
obt_prop_message(ob_screen, RootWindow(obt_display, ob_screen), obt_prop_message(ob_screen, obt_root(ob_screen), OBT_PROP_ATOM(MANAGER),
OBT_PROP_ATOM(MANAGER),
timestamp, wm_sn_atom, screen_support_win, 0, 0, timestamp, wm_sn_atom, screen_support_win, 0, 0,
SubstructureNotifyMask); SubstructureNotifyMask);
@ -164,8 +163,7 @@ gboolean screen_annex(void)
/* create the netwm support window */ /* create the netwm support window */
attrib.override_redirect = TRUE; attrib.override_redirect = TRUE;
attrib.event_mask = PropertyChangeMask; attrib.event_mask = PropertyChangeMask;
screen_support_win = XCreateWindow(obt_display, screen_support_win = XCreateWindow(obt_display, obt_root(ob_screen),
RootWindow(obt_display, ob_screen),
-100, -100, 1, 1, 0, -100, -100, 1, 1, 0,
CopyFromParent, InputOutput, CopyFromParent, InputOutput,
CopyFromParent, CopyFromParent,
@ -180,8 +178,7 @@ gboolean screen_annex(void)
} }
obt_display_ignore_errors(TRUE); obt_display_ignore_errors(TRUE);
XSelectInput(obt_display, RootWindow(obt_display, ob_screen), XSelectInput(obt_display, obt_root(ob_screen), ROOT_EVENTMASK);
ROOT_EVENTMASK);
obt_display_ignore_errors(FALSE); obt_display_ignore_errors(FALSE);
if (obt_display_error_occured) { if (obt_display_error_occured) {
g_message(_("A window manager is already running on screen %d"), g_message(_("A window manager is already running on screen %d"),
@ -195,11 +192,10 @@ gboolean screen_annex(void)
/* set the OPENBOX_PID hint */ /* set the OPENBOX_PID hint */
pid = getpid(); pid = getpid();
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen), OPENBOX_PID, CARDINAL, pid);
OPENBOX_PID, CARDINAL, pid);
/* set supporting window */ /* set supporting window */
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen),
NET_SUPPORTING_WM_CHECK, WINDOW, screen_support_win); NET_SUPPORTING_WM_CHECK, WINDOW, screen_support_win);
/* set properties on the supporting window */ /* set properties on the supporting window */
@ -297,7 +293,7 @@ gboolean screen_annex(void)
supported[i++] = OBT_PROP_ATOM(OB_CONTROL); supported[i++] = OBT_PROP_ATOM(OB_CONTROL);
g_assert(i == num_support); g_assert(i == num_support);
OBT_PROP_SETA32(RootWindow(obt_display, ob_screen), OBT_PROP_SETA32(obt_root(ob_screen),
NET_SUPPORTED, ATOM, supported, num_support); NET_SUPPORTED, ATOM, supported, num_support);
g_free(supported); g_free(supported);
@ -331,13 +327,13 @@ static void screen_tell_ksplash(void)
something. oh well. */ something. oh well. */
e.xclient.type = ClientMessage; e.xclient.type = ClientMessage;
e.xclient.display = obt_display; e.xclient.display = obt_display;
e.xclient.window = RootWindow(obt_display, ob_screen); e.xclient.window = obt_root(ob_screen);
e.xclient.message_type = e.xclient.message_type =
XInternAtom(obt_display, "_KDE_SPLASH_PROGRESS", False ); XInternAtom(obt_display, "_KDE_SPLASH_PROGRESS", False );
e.xclient.format = 8; e.xclient.format = 8;
strcpy(e.xclient.data.b, "wm started"); strcpy(e.xclient.data.b, "wm started");
XSendEvent(obt_display, RootWindow(obt_display, ob_screen), XSendEvent(obt_display, obt_root(ob_screen),
False, SubstructureNotifyMask, &e ); False, SubstructureNotifyMask, &e);
} }
void screen_startup(gboolean reconfig) void screen_startup(gboolean reconfig)
@ -361,9 +357,7 @@ void screen_startup(gboolean reconfig)
screen_resize(); screen_resize();
/* have names already been set for the desktops? */ /* have names already been set for the desktops? */
if (OBT_PROP_GETSS(RootWindow(obt_display, ob_screen), if (OBT_PROP_GETSS(obt_root(ob_screen), NET_DESKTOP_NAMES, utf8, &names)) {
NET_DESKTOP_NAMES, utf8, &names))
{
g_strfreev(names); g_strfreev(names);
namesexist = TRUE; namesexist = TRUE;
} }
@ -384,7 +378,7 @@ void screen_startup(gboolean reconfig)
names[i] = g_strdup(it->data); names[i] = g_strdup(it->data);
/* set the root window property */ /* set the root window property */
OBT_PROP_SETSS(RootWindow(obt_display, ob_screen), OBT_PROP_SETSS(obt_root(ob_screen),
NET_DESKTOP_NAMES, utf8, (const gchar**)names); NET_DESKTOP_NAMES, utf8, (const gchar**)names);
g_strfreev(names); g_strfreev(names);
@ -395,7 +389,7 @@ void screen_startup(gboolean reconfig)
this will also set the default names from the config file up for this will also set the default names from the config file up for
desktops that don't have names yet */ desktops that don't have names yet */
screen_num_desktops = 0; screen_num_desktops = 0;
if (OBT_PROP_GET32(RootWindow(obt_display, ob_screen), if (OBT_PROP_GET32(obt_root(ob_screen),
NET_NUMBER_OF_DESKTOPS, CARDINAL, &d)) NET_NUMBER_OF_DESKTOPS, CARDINAL, &d))
screen_set_num_desktops(d); screen_set_num_desktops(d);
/* restore from session if possible */ /* restore from session if possible */
@ -406,7 +400,7 @@ void screen_startup(gboolean reconfig)
screen_desktop = screen_num_desktops; /* something invalid */ screen_desktop = screen_num_desktops; /* something invalid */
/* start on the current desktop when a wm was already running */ /* start on the current desktop when a wm was already running */
if (OBT_PROP_GET32(RootWindow(obt_display, ob_screen), if (OBT_PROP_GET32(obt_root(ob_screen),
NET_CURRENT_DESKTOP, CARDINAL, &d) && NET_CURRENT_DESKTOP, CARDINAL, &d) &&
d < screen_num_desktops) d < screen_num_desktops)
{ {
@ -421,7 +415,7 @@ void screen_startup(gboolean reconfig)
/* don't start in showing-desktop mode */ /* don't start in showing-desktop mode */
screen_showing_desktop = FALSE; screen_showing_desktop = FALSE;
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen),
NET_SHOWING_DESKTOP, CARDINAL, screen_showing_desktop); NET_SHOWING_DESKTOP, CARDINAL, screen_showing_desktop);
if (session_desktop_layout_present && if (session_desktop_layout_present &&
@ -440,15 +434,14 @@ void screen_shutdown(gboolean reconfig)
if (reconfig) if (reconfig)
return; return;
XSelectInput(obt_display, RootWindow(obt_display, ob_screen), XSelectInput(obt_display, obt_root(ob_screen), NoEventMask);
NoEventMask);
/* we're not running here no more! */ /* we're not running here no more! */
OBT_PROP_ERASE(RootWindow(obt_display, ob_screen), OPENBOX_PID); OBT_PROP_ERASE(obt_root(ob_screen), OPENBOX_PID);
/* not without us */ /* not without us */
OBT_PROP_ERASE(RootWindow(obt_display, ob_screen), NET_SUPPORTED); OBT_PROP_ERASE(obt_root(ob_screen), NET_SUPPORTED);
/* don't keep this mode */ /* don't keep this mode */
OBT_PROP_ERASE(RootWindow(obt_display, ob_screen), NET_SHOWING_DESKTOP); OBT_PROP_ERASE(obt_root(ob_screen), NET_SHOWING_DESKTOP);
XDestroyWindow(obt_display, screen_support_win); XDestroyWindow(obt_display, screen_support_win);
@ -473,7 +466,7 @@ void screen_resize(void)
/* Set the _NET_DESKTOP_GEOMETRY hint */ /* Set the _NET_DESKTOP_GEOMETRY hint */
screen_physical_size.width = geometry[0] = w; screen_physical_size.width = geometry[0] = w;
screen_physical_size.height = geometry[1] = h; screen_physical_size.height = geometry[1] = h;
OBT_PROP_SETA32(RootWindow(obt_display, ob_screen), OBT_PROP_SETA32(obt_root(ob_screen),
NET_DESKTOP_GEOMETRY, CARDINAL, geometry, 2); NET_DESKTOP_GEOMETRY, CARDINAL, geometry, 2);
if (ob_state() == OB_STATE_STARTING) if (ob_state() == OB_STATE_STARTING)
@ -498,12 +491,11 @@ void screen_set_num_desktops(guint num)
old = screen_num_desktops; old = screen_num_desktops;
screen_num_desktops = num; screen_num_desktops = num;
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen), NET_NUMBER_OF_DESKTOPS, CARDINAL, num);
NET_NUMBER_OF_DESKTOPS, CARDINAL, num);
/* set the viewport hint */ /* set the viewport hint */
viewport = g_new0(gulong, num * 2); viewport = g_new0(gulong, num * 2);
OBT_PROP_SETA32(RootWindow(obt_display, ob_screen), OBT_PROP_SETA32(obt_root(ob_screen),
NET_DESKTOP_VIEWPORT, CARDINAL, viewport, num * 2); NET_DESKTOP_VIEWPORT, CARDINAL, viewport, num * 2);
g_free(viewport); g_free(viewport);
@ -599,8 +591,7 @@ void screen_set_desktop(guint num, gboolean dofocus)
if (previous == num) return; if (previous == num) return;
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen), NET_CURRENT_DESKTOP, CARDINAL, num);
NET_CURRENT_DESKTOP, CARDINAL, num);
/* This whole thing decides when/how to save the screen_last_desktop so /* This whole thing decides when/how to save the screen_last_desktop so
that it can be restored later if you want */ that it can be restored later if you want */
@ -1089,7 +1080,7 @@ void screen_update_layout(void)
screen_desktop_layout.rows = 1; screen_desktop_layout.rows = 1;
screen_desktop_layout.columns = screen_num_desktops; screen_desktop_layout.columns = screen_num_desktops;
if (OBT_PROP_GETA32(RootWindow(obt_display, ob_screen), if (OBT_PROP_GETA32(obt_root(ob_screen),
NET_DESKTOP_LAYOUT, CARDINAL, &data, &num)) { NET_DESKTOP_LAYOUT, CARDINAL, &data, &num)) {
if (num == 3 || num == 4) { if (num == 3 || num == 4) {
@ -1134,7 +1125,7 @@ void screen_update_desktop_names(void)
g_strfreev(screen_desktop_names); g_strfreev(screen_desktop_names);
screen_desktop_names = NULL; screen_desktop_names = NULL;
if (OBT_PROP_GETSS(RootWindow(obt_display, ob_screen), if (OBT_PROP_GETSS(obt_root(ob_screen),
NET_DESKTOP_NAMES, utf8, &screen_desktop_names)) NET_DESKTOP_NAMES, utf8, &screen_desktop_names))
for (i = 0; screen_desktop_names[i] && i < screen_num_desktops; ++i); for (i = 0; screen_desktop_names[i] && i < screen_num_desktops; ++i);
else else
@ -1161,7 +1152,7 @@ void screen_update_desktop_names(void)
/* if we changed any names, then set the root property so we can /* if we changed any names, then set the root property so we can
all agree on the names */ all agree on the names */
OBT_PROP_SETSS(RootWindow(obt_display, ob_screen), NET_DESKTOP_NAMES, OBT_PROP_SETSS(obt_root(ob_screen), NET_DESKTOP_NAMES,
utf8, (const gchar**)screen_desktop_names); utf8, (const gchar**)screen_desktop_names);
} }
@ -1229,8 +1220,7 @@ void screen_show_desktop(gboolean show, ObClient *show_only)
} }
show = !!show; /* make it boolean */ show = !!show; /* make it boolean */
OBT_PROP_SET32(RootWindow(obt_display, ob_screen), OBT_PROP_SET32(obt_root(ob_screen), NET_SHOWING_DESKTOP, CARDINAL, show);
NET_SHOWING_DESKTOP, CARDINAL, show);
} }
void screen_install_colormap(ObClient *client, gboolean install) void screen_install_colormap(ObClient *client, gboolean install)
@ -1454,7 +1444,7 @@ void screen_update_areas(void)
/* all the work areas are not used here, only the ones for the first /* all the work areas are not used here, only the ones for the first
monitor are */ monitor are */
OBT_PROP_SETA32(RootWindow(obt_display, ob_screen), NET_WORKAREA, CARDINAL, OBT_PROP_SETA32(obt_root(ob_screen), NET_WORKAREA, CARDINAL,
dims, 4 * screen_num_desktops); dims, 4 * screen_num_desktops);
/* the area has changed, adjust all the windows if they need it */ /* the area has changed, adjust all the windows if they need it */
@ -1696,10 +1686,10 @@ Rect* screen_physical_area_active(void)
void screen_set_root_cursor(void) void screen_set_root_cursor(void)
{ {
if (sn_app_starting()) if (sn_app_starting())
XDefineCursor(obt_display, RootWindow(obt_display, ob_screen), XDefineCursor(obt_display, obt_root(ob_screen),
ob_cursor(OB_CURSOR_BUSYPOINTER)); ob_cursor(OB_CURSOR_BUSYPOINTER));
else else
XDefineCursor(obt_display, RootWindow(obt_display, ob_screen), XDefineCursor(obt_display, obt_root(ob_screen),
ob_cursor(OB_CURSOR_POINTER)); ob_cursor(OB_CURSOR_POINTER));
} }
@ -1710,12 +1700,12 @@ gboolean screen_pointer_pos(gint *x, gint *y)
guint u; guint u;
gboolean ret; gboolean ret;
ret = !!XQueryPointer(obt_display, RootWindow(obt_display, ob_screen), ret = !!XQueryPointer(obt_display, obt_root(ob_screen),
&w, &w, x, y, &i, &i, &u); &w, &w, x, y, &i, &i, &u);
if (!ret) { if (!ret) {
for (i = 0; i < ScreenCount(obt_display); ++i) for (i = 0; i < ScreenCount(obt_display); ++i)
if (i != ob_screen) if (i != ob_screen)
if (XQueryPointer(obt_display, RootWindow(obt_display, i), if (XQueryPointer(obt_display, obt_root(i),
&w, &w, x, y, &i, &i, &u)) &w, &w, x, y, &i, &i, &u))
break; break;
} }

View file

@ -54,8 +54,8 @@ void stacking_set_list(void)
} }
} }
OBT_PROP_SETA32(RootWindow(obt_display, ob_screen), OBT_PROP_SETA32(obt_root(ob_screen), NET_CLIENT_LIST_STACKING, WINDOW,
NET_CLIENT_LIST_STACKING, WINDOW, (gulong*)windows, i); (gulong*)windows, i);
g_free(windows); g_free(windows);
} }