summaryrefslogtreecommitdiff
path: root/openbox/screen.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-07-10 18:44:27 +0000
committerDana Jansens <danakj@orodu.net>2003-07-10 18:44:27 +0000
commitd1d84711a2684c47c688cc7d015741bd484151fb (patch)
tree9cb4fafd89dafeac58d4d4da4628ce733d59f8dd /openbox/screen.c
parent120623d34e0cb86b4970e9744a10ba39cd5e21b7 (diff)
replace the focus_backup with the screen_support_win, we dont need 2 offscreen windows.
Diffstat (limited to 'openbox/screen.c')
-rw-r--r--openbox/screen.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/openbox/screen.c b/openbox/screen.c
index 90c874ac..69082460 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -30,23 +30,22 @@
SubstructureNotifyMask | SubstructureRedirectMask | \
ButtonPressMask | ButtonReleaseMask | ButtonMotionMask)
-guint screen_num_desktops = 0;
-guint screen_num_monitors = 0;
-guint screen_desktop = 0;
+guint screen_num_desktops;
+guint screen_num_monitors;
+guint screen_desktop;
Size screen_physical_size;
gboolean screen_showing_desktop;
DesktopLayout screen_desktop_layout;
-char **screen_desktop_names = NULL;
+char **screen_desktop_names;
+Window screen_support_win;
-static Rect **area = NULL; /* array of desktop holding array of
- xinerama areas */
-static Rect *monitor_area = NULL;
-static Window support_window = None;
+static Rect **area; /* array of desktop holding array of xinerama areas */
+static Rect *monitor_area;
#ifdef USE_LIBSN
static SnMonitorContext *sn_context;
static int sn_busy_cnt;
-static ObTimer *sn_timer = NULL;
+static ObTimer *sn_timer;
static void sn_event_func(SnMonitorEvent *event, void *data);
#endif
@@ -55,8 +54,9 @@ static void set_root_cursor();
gboolean screen_annex()
{
+ XSetWindowAttributes attrib;
pid_t pid;
- int i, num_support;
+ gint i, num_support;
guint32 *supported;
xerror_set_ignore(TRUE);
@@ -79,14 +79,21 @@ gboolean screen_annex()
PROP_SET32(ob_root, openbox_pid, cardinal, pid);
/* create the netwm support window */
- support_window = XCreateSimpleWindow(ob_display, ob_root, 0,0,1,1,0,0,0);
+ attrib.override_redirect = TRUE;
+ screen_support_win = XCreateWindow(ob_display, ob_root,
+ -100, -100, 1, 1, 0,
+ CopyFromParent, InputOutput,
+ CopyFromParent,
+ CWOverrideRedirect, &attrib);
+ XMapRaised(ob_display, screen_support_win);
/* set supporting window */
- PROP_SET32(ob_root, net_supporting_wm_check, window, support_window);
+ PROP_SET32(ob_root, net_supporting_wm_check, window, screen_support_win);
/* set properties on the supporting window */
- PROP_SETS(support_window, net_wm_name, "Openbox");
- PROP_SET32(support_window, net_supporting_wm_check, window,support_window);
+ PROP_SETS(screen_support_win, net_wm_name, "Openbox");
+ PROP_SET32(screen_support_win, net_supporting_wm_check,
+ window, screen_support_win);
/* set the _NET_SUPPORTED_ATOMS hint */
num_support = 61;
@@ -212,7 +219,7 @@ void screen_shutdown()
PROP_ERASE(ob_root, net_supported); /* not without us */
PROP_ERASE(ob_root, net_showing_desktop); /* don't keep this mode */
- XDestroyWindow(ob_display, support_window);
+ XDestroyWindow(ob_display, screen_support_win);
g_strfreev(screen_desktop_names);
for (r = area; *r; ++r)