-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi,

This patch fixes two minor bugs which (afaik) didn't have any negative impact.
Still, they are bugs. ;)

The wibox' code tried to change a wibox' border color/width even if some wibox
didnt have a X11 window.

Uli
- --
"Do you know that books smell like nutmeg or some spice from a foreign land?"
                                                  -- Faber in Fahrenheit 451
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEcBAEBCAAGBQJK//asAAoJECLkKOvLj8sGZ1QIAKB6ovA8A0c0tvs+Z82mm5c/
QFNyJIceK89+OqxhyN+akKZZ19otQQV8MjTt4mJ/mw/QLxbzKw/OYIuX1rqCJ/Sd
CtSJCBlE6Vlfd8lgpHIGDqpOSkcbkK4RKs+XWuId/TUKQcYi7jgjHhAHE1jNAvPA
nz2tn9PT5C1Ja/T0ZRTTz9uQF60LA9j2yVljs/muf/BNFTJqMV1XvXmosKhFwDxk
oX6pyyljUA9uL5VjMSambRNybxA0FIh46i/KzRn9h2uthXqymtg6iEtAAGUfTsSy
dBll1THV7fSGRdzO447udm2idpEfdTJFAqjw2kwLNnB5uIQZBqjrNBrcwEYaolQ=
=l9MG
-----END PGP SIGNATURE-----
>From b86b6d5d9641464ad6448a4ee05cdf8c47043c0c Mon Sep 17 00:00:00 2001
From: Uli Schlachter <[email protected]>
Date: Sun, 15 Nov 2009 13:36:48 +0100
Subject: [PATCH] Wibox: Check if a window exists before changing it

wibox_set_border_color() and luaA_wibox_set_border_width() didn't check if a
wibox really had an associated X11 window before changing this window which
resulted in (silent) errors.

Signed-off-by: Uli Schlachter <[email protected]>
---
 objects/wibox.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/objects/wibox.c b/objects/wibox.c
index a53462d..63d6595 100644
--- a/objects/wibox.c
+++ b/objects/wibox.c
@@ -363,8 +363,9 @@ static void
 wibox_set_border_color(lua_State *L, int udx, const xcolor_t *color)
 {
     wibox_t *w = luaA_checkudata(L, udx, &wibox_class);
-    xcb_change_window_attributes(globalconf.connection, w->window,
-                                 XCB_CW_BORDER_PIXEL, &color->pixel);
+    if (w->window != XCB_NONE)
+        xcb_change_window_attributes(globalconf.connection, w->window,
+                                     XCB_CW_BORDER_PIXEL, &color->pixel);
     w->border_color = *color;
     luaA_object_emit_signal(L, udx, "property::border_color", 0);
 }
@@ -1295,8 +1296,9 @@ luaA_wibox_set_border_width(lua_State *L, wibox_t *wibox)
     uint32_t border_width = luaL_checknumber(L, -1);
     if(border_width != w->border_width)
     {
-        xcb_configure_window(globalconf.connection, w->window, XCB_CONFIG_WINDOW_BORDER_WIDTH,
-                             &border_width);
+        if (w->window != XCB_NONE)
+            xcb_configure_window(globalconf.connection, w->window, XCB_CONFIG_WINDOW_BORDER_WIDTH,
+                                 &border_width);
         w->border_width = border_width;
         /* Need update if transparent background */
         wibox_need_update(w);
-- 
1.6.5

Reply via email to