/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
screen.c for the Openbox window manager
/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
screen.c for the Openbox window manager
/*! The event mask to grab on the root window */
#define ROOT_EVENTMASK (StructureNotifyMask | PropertyChangeMask | \
/*! The event mask to grab on the root window */
#define ROOT_EVENTMASK (StructureNotifyMask | PropertyChangeMask | \
- EnterWindowMask | LeaveWindowMask | \
- SubstructureNotifyMask | SubstructureRedirectMask | \
- ButtonPressMask | ButtonReleaseMask | ButtonMotionMask)
+ EnterWindowMask | LeaveWindowMask | \
+ SubstructureNotifyMask | SubstructureRedirectMask | \
+ ButtonPressMask | ButtonReleaseMask | ButtonMotionMask)
Size screen_physical_size;
gboolean screen_showing_desktop;
DesktopLayout screen_desktop_layout;
Size screen_physical_size;
gboolean screen_showing_desktop;
DesktopLayout screen_desktop_layout;
Window screen_support_win;
static Rect **area; /* array of desktop holding array of xinerama areas */
Window screen_support_win;
static Rect **area; /* array of desktop holding array of xinerama areas */
screen_desktop_names[i] = it->data; /* dont strdup */
screen_desktop_names[i] = NULL;
PROP_SETSS(RootWindow(ob_display, ob_screen),
screen_desktop_names[i] = it->data; /* dont strdup */
screen_desktop_names[i] = NULL;
PROP_SETSS(RootWindow(ob_display, ob_screen),
net_desktop_geometry, cardinal, geometry, 2);
if (ob_state() == OB_STATE_STARTING)
net_desktop_geometry, cardinal, geometry, 2);
if (ob_state() == OB_STATE_STARTING)
ObClient *c = it->data;
if (c->desktop >= num && c->desktop != DESKTOP_ALL)
client_set_desktop(c, num - 1, FALSE);
ObClient *c = it->data;
if (c->desktop >= num && c->desktop != DESKTOP_ALL)
client_set_desktop(c, num - 1, FALSE);
/* change our desktop if we're on one that no longer exists! */
if (screen_desktop >= screen_num_desktops)
/* change our desktop if we're on one that no longer exists! */
if (screen_desktop >= screen_num_desktops)
gboolean dialog, gboolean done, gboolean cancel)
{
static gboolean first = TRUE;
gboolean dialog, gboolean done, gboolean cancel)
{
static gboolean first = TRUE;
screen_num_desktops + 1);
screen_desktop_names[screen_num_desktops] = NULL;
for (; i < screen_num_desktops; ++i)
screen_num_desktops + 1);
screen_desktop_names[screen_num_desktops] = NULL;
for (; i < screen_num_desktops; ++i)
if (WINDOW_IS_CLIENT(it->data)) {
ObClient *client = it->data;
if (client->frame->visible && !client_should_show(client))
if (WINDOW_IS_CLIENT(it->data)) {
ObClient *client = it->data;
if (client->frame->visible && !client_should_show(client))
if (WINDOW_IS_CLIENT(it->data)) {
ObClient *client = it->data;
if (!client->frame->visible && client_should_show(client))
if (WINDOW_IS_CLIENT(it->data)) {
ObClient *client = it->data;
if (!client->frame->visible && client_should_show(client))
o = MIN(o, area[i][x].x);
for (x = 0; x < screen_num_monitors; ++x) {
o = MIN(o, area[i][x].x);
for (x = 0; x < screen_num_monitors; ++x) {
o = MIN(o, area[i][x].y);
for (x = 0; x < screen_num_monitors; ++x) {
o = MIN(o, area[i][x].y);
for (x = 0; x < screen_num_monitors; ++x) {
o = MAX(o, area[i][x].x + area[i][x].width - 1);
for (x = 0; x < screen_num_monitors; ++x) {
o = MAX(o, area[i][x].x + area[i][x].width - 1);
for (x = 0; x < screen_num_monitors; ++x) {
o = MAX(o, area[i][x].y + area[i][x].height - 1);
for (x = 0; x < screen_num_monitors; ++x) {
o = MAX(o, area[i][x].y + area[i][x].height - 1);
for (x = 0; x < screen_num_monitors; ++x) {
guint u;
return !!XQueryPointer(ob_display, RootWindow(ob_display, ob_screen),
guint u;
return !!XQueryPointer(ob_display, RootWindow(ob_display, ob_screen),