Hello community,

here is the log from the commit of package awesome for openSUSE:Factory checked 
in at 2016-03-31 13:03:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/awesome (Old)
 and      /work/SRC/openSUSE:Factory/.awesome.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "awesome"

Changes:
--------
--- /work/SRC/openSUSE:Factory/awesome/awesome.changes  2016-02-01 
19:57:15.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.awesome.new/awesome.changes     2016-03-31 
13:03:49.000000000 +0200
@@ -1,0 +2,14 @@
+Tue Mar 22 13:20:10 UTC 2016 - km...@suse.com
+
+- Update to 3.5.9:
+  - Always send ConfigureNotifies
+  - Don't modify WM_HINTS in client_set_urgent()
+  - Fix awful.ewmh to handle window gravities
+  - Check that the Lua stack is empty in the main loop
+  - Fix unbalance Lua stack usage in event_handle_leavenotify()
+  - Balance the stack in luaA_loadrc()
+  - Fix arguments to luaL_checkstack()
+  - Make client key bindings for e.g. xeyes work again
+  - Change codename
+
+-------------------------------------------------------------------

Old:
----
  awesome-3.5.8.tar.xz

New:
----
  awesome-3.5.9.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ awesome.spec ++++++
--- /var/tmp/diff_new_pack.K6Dgvm/_old  2016-03-31 13:03:50.000000000 +0200
+++ /var/tmp/diff_new_pack.K6Dgvm/_new  2016-03-31 13:03:50.000000000 +0200
@@ -18,7 +18,7 @@
 
 %define _version 3.5
 Name:           awesome
-Version:        3.5.8
+Version:        3.5.9
 Release:        0
 Summary:        Highly configurable tiling and floating Window Manager
 License:        GPL-2.0+

++++++ awesome-3.5.8.tar.xz -> awesome-3.5.9.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/.version_stamp 
new/awesome-3.5.9/.version_stamp
--- old/awesome-3.5.8/.version_stamp    2016-01-30 14:57:02.000000000 +0100
+++ new/awesome-3.5.9/.version_stamp    2016-03-06 15:11:57.000000000 +0100
@@ -1 +1 @@
-v3.5.8
\ No newline at end of file
+v3.5.9
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/awesome.c new/awesome-3.5.9/awesome.c
--- old/awesome-3.5.8/awesome.c 2016-01-30 14:55:18.000000000 +0100
+++ new/awesome-3.5.9/awesome.c 2016-03-06 15:05:54.000000000 +0100
@@ -285,6 +285,13 @@
     /* Do all deferred work now */
     awesome_refresh();
 
+    /* Check if the Lua stack is the way it should be */
+    if (lua_gettop(globalconf.L) != 0) {
+        warn("Something was left on the Lua stack, this is a bug!");
+        luaA_dumpstack(globalconf.L);
+        lua_settop(globalconf.L, 0);
+    }
+
     /* Check how long this main loop iteration took */
     gettimeofday(&now, NULL);
     timersub(&now, &last_wakeup, &length_time);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/awesomeConfig.cmake 
new/awesome-3.5.9/awesomeConfig.cmake
--- old/awesome-3.5.8/awesomeConfig.cmake       2016-01-30 14:55:18.000000000 
+0100
+++ new/awesome-3.5.9/awesomeConfig.cmake       2016-03-06 15:05:54.000000000 
+0100
@@ -4,7 +4,7 @@
 # `git describe` later.
 set(VERSION devel)
 
-set(CODENAME "Major Tom")
+set(CODENAME "Mighty Ravendark")
 
 project(${PROJECT_AWE_NAME} C)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/common/luaobject.c 
new/awesome-3.5.9/common/luaobject.c
--- old/awesome-3.5.8/common/luaobject.c        2016-01-30 14:55:18.000000000 
+0100
+++ new/awesome-3.5.9/common/luaobject.c        2016-03-06 15:05:54.000000000 
+0100
@@ -218,7 +218,7 @@
     if(sigfound)
     {
         int nbfunc = sigfound->sigfuncs.len;
-        luaL_checkstack(L, lua_gettop(L) + nbfunc + nargs + 1, "too much 
signal");
+        luaL_checkstack(L, nbfunc + nargs + 1, "too much signal");
         /* Push all functions and then execute, because this list can change
          * while executing funcs. */
         foreach(func, sigfound->sigfuncs)
@@ -263,7 +263,7 @@
     if(sigfound)
     {
         int nbfunc = sigfound->sigfuncs.len;
-        luaL_checkstack(L, lua_gettop(L) + nbfunc + nargs + 2, "too much 
signal");
+        luaL_checkstack(L, nbfunc + nargs + 2, "too much signal");
         /* Push all functions and then execute, because this list can change
          * while executing funcs. */
         foreach(func, sigfound->sigfuncs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/event.c new/awesome-3.5.9/event.c
--- old/awesome-3.5.8/event.c   2016-01-30 14:55:18.000000000 +0100
+++ new/awesome-3.5.9/event.c   2016-03-06 15:05:54.000000000 +0100
@@ -507,6 +507,7 @@
     {
         luaA_object_push(globalconf.L, c);
         luaA_object_emit_signal(globalconf.L, -1, "mouse::leave", 0);
+        lua_pop(globalconf.L, 1);
     }
 
     lua_pushnil(globalconf.L);
@@ -644,7 +645,7 @@
         /* get keysym ignoring all modifiers */
         xcb_keysym_t keysym = keyresolv_get_keysym(ev->detail, 0);
         client_t *c;
-        if((c = client_getbywin(ev->event)))
+        if((c = client_getbywin(ev->event)) || (c = 
client_getbynofocuswin(ev->event)))
         {
             luaA_object_push(globalconf.L, c);
             event_key_callback(ev, &c->keys, -1, 1, &keysym);
@@ -835,6 +836,8 @@
             client_t *c = *_c;
             xcb_ungrab_key(globalconf.connection, XCB_GRAB_ANY, c->window, 
XCB_BUTTON_MASK_ANY);
             xwindow_grabkeys(c->window, &c->keys);
+            if (c->nofocus_window)
+                xwindow_grabkeys(c->nofocus_window, &c->keys);
         }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/lib/awful/ewmh.lua.in 
new/awesome-3.5.9/lib/awful/ewmh.lua.in
--- old/awesome-3.5.8/lib/awful/ewmh.lua.in     2016-01-30 14:55:18.000000000 
+0100
+++ new/awesome-3.5.9/lib/awful/ewmh.lua.in     2016-03-06 15:05:54.000000000 
+0100
@@ -66,11 +66,11 @@
         store_geometry(window, "fullscreen")
         data[window].fullscreen.border_width = window.border_width
         local g = screen[window.screen].geometry
-        window:geometry(screen[window.screen].geometry)
         window.border_width = 0
+        window:geometry(screen[window.screen].geometry)
     elseif data[window] and data[window].fullscreen then
-        window:geometry(data[window].fullscreen)
         window.border_width = data[window].fullscreen.border_width
+        window:geometry(data[window].fullscreen)
     end
 end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/luaa.c new/awesome-3.5.9/luaa.c
--- old/awesome-3.5.8/luaa.c    2016-01-30 14:55:18.000000000 +0100
+++ new/awesome-3.5.9/luaa.c    2016-03-06 15:05:54.000000000 +0100
@@ -498,40 +498,41 @@
 static bool
 luaA_loadrc(const char *confpath, bool run)
 {
-    if(!luaL_loadfile(globalconf.L, confpath))
-    {
-        if(run)
-        {
-            /* Set the conffile right now so it can be used inside the
-             * configuration file. */
-            conffile = a_strdup(confpath);
-            /* Move error handling function before function */
-            lua_pushcfunction(globalconf.L, luaA_dofunction_on_error);
-            lua_insert(globalconf.L, -2);
-            if(lua_pcall(globalconf.L, 0, LUA_MULTRET, -2))
-            {
-                const char *err = lua_tostring(globalconf.L, -1);
-                luaA_startup_error(err);
-                fprintf(stderr, "%s\n", err);
-                /* An error happened, so reset this. */
-                conffile = NULL;
-            }
-            else
-                return true;
-        }
-        else
-        {
-            lua_pop(globalconf.L, 1);
-            return true;
-        }
-    }
-    else
+    if(luaL_loadfile(globalconf.L, confpath))
     {
         const char *err = lua_tostring(globalconf.L, -1);
         luaA_startup_error(err);
         fprintf(stderr, "%s\n", err);
+        return false;
+    }
+
+    if(!run)
+    {
+        lua_pop(globalconf.L, 1);
+        return true;
     }
 
+    /* Set the conffile right now so it can be used inside the
+     * configuration file. */
+    conffile = a_strdup(confpath);
+    /* Move error handling function before function */
+    lua_pushcfunction(globalconf.L, luaA_dofunction_on_error);
+    lua_insert(globalconf.L, -2);
+    if(!lua_pcall(globalconf.L, 0, 0, -2))
+    {
+        /* Pop luaA_dofunction_on_error */
+        lua_pop(globalconf.L, 1);
+        return true;
+    }
+
+    const char *err = lua_tostring(globalconf.L, -1);
+    luaA_startup_error(err);
+    fprintf(stderr, "%s\n", err);
+    /* An error happened, so reset this. */
+    conffile = NULL;
+    /* Pop luaA_dofunction_on_error() and the error message */
+    lua_pop(globalconf.L, 2);
+
     return false;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/objects/client.c 
new/awesome-3.5.9/objects/client.c
--- old/awesome-3.5.8/objects/client.c  2016-01-30 14:55:18.000000000 +0100
+++ new/awesome-3.5.9/objects/client.c  2016-03-06 15:05:54.000000000 +0100
@@ -71,22 +71,8 @@
 
     if(c->urgent != urgent)
     {
-        xcb_get_property_cookie_t hints =
-            xcb_icccm_get_wm_hints_unchecked(globalconf.connection, c->window);
-
         c->urgent = urgent;
 
-        /* update ICCCM hints */
-        xcb_icccm_wm_hints_t wmh;
-        xcb_icccm_get_wm_hints_reply(globalconf.connection, hints, &wmh, NULL);
-
-        if(urgent)
-            wmh.flags |= XCB_ICCCM_WM_HINT_X_URGENCY;
-        else
-            wmh.flags &= ~XCB_ICCCM_WM_HINT_X_URGENCY;
-
-        xcb_icccm_set_wm_hints(globalconf.connection, c->window, &wmh);
-
         luaA_object_emit_signal(L, cidx, "property::urgent", 0);
     }
 }
@@ -178,6 +164,16 @@
     return NULL;
 }
 
+client_t *
+client_getbynofocuswin(xcb_window_t w)
+{
+    foreach(c, globalconf.clients)
+        if((*c)->nofocus_window == w)
+            return *c;
+
+    return NULL;
+}
+
 /** Get a client by its frame window.
  * \param w The client window to find.
  * \return A client pointer if found, NULL otherwise.
@@ -340,6 +336,20 @@
     globalconf.focus.need_update = true;
 }
 
+static xcb_window_t
+client_get_nofocus_window(client_t *c)
+{
+    if (c->nofocus_window == XCB_NONE) {
+        c->nofocus_window = xcb_generate_id(globalconf.connection);
+        xcb_create_window(globalconf.connection, globalconf.default_depth, 
c->nofocus_window, c->frame_window,
+                          -2, -2, 1, 1, 0, XCB_COPY_FROM_PARENT, 
globalconf.visual->visual_id,
+                          0, NULL);
+        xcb_map_window(globalconf.connection, c->nofocus_window);
+        xwindow_grabkeys(c->nofocus_window, &c->keys);
+    }
+    return c->nofocus_window;
+}
+
 void
 client_focus_refresh(void)
 {
@@ -358,11 +368,7 @@
         if(!c->nofocus)
             win = c->window;
         else
-            /* Move the focus away from whatever has it to make sure the
-             * previously focused client doesn't get any input in case
-             * WM_TAKE_FOCUS gets ignored.
-             */
-            win = globalconf.focus.window_no_focus;
+            win = client_get_nofocus_window(c);
 
         if(client_hasproto(c, WM_TAKE_FOCUS))
             xwindow_takefocus(c->window);
@@ -741,12 +747,17 @@
     bool send_notice = force_notice;
     bool hide_titlebars = c->fullscreen;
     screen_t *new_screen = screen_getbycoord(geometry.x, geometry.y);
+    bool java_is_broken = true;
 
     if (honor_hints)
         geometry = client_apply_size_hints(c, geometry);
 
     if(c->geometry.width == geometry.width
        && c->geometry.height == geometry.height)
+        /* We are moving without changing the size, see ICCCM 4.2.3 */
+        send_notice = true;
+    if(java_is_broken)
+        /* Java strong. Java Hulk. Java make own rules! */
         send_notice = true;
 
     /* Also store geometry including border */
@@ -779,7 +790,6 @@
             (uint32_t[]) { real_geometry.x, real_geometry.y, 
real_geometry.width, real_geometry.height });
 
     if(send_notice)
-        /* We are moving without changing the size, see ICCCM 4.2.3 */
         client_send_configure(c);
 
     client_restore_enterleave_events();
@@ -1236,6 +1246,8 @@
 
     /* Ignore all spurious enter/leave notify events */
     client_ignore_enterleave_events();
+    if (c->nofocus_window != XCB_NONE)
+        xcb_destroy_window(globalconf.connection, c->nofocus_window);
     xcb_destroy_window(globalconf.connection, c->frame_window);
     client_restore_enterleave_events();
 
@@ -2285,6 +2297,8 @@
         luaA_object_emit_signal(L, 1, "property::keys", 0);
         xcb_ungrab_key(globalconf.connection, XCB_GRAB_ANY, c->window, 
XCB_BUTTON_MASK_ANY);
         xwindow_grabkeys(c->window, keys);
+        if (c->nofocus_window)
+            xwindow_grabkeys(c->nofocus_window, &c->keys);
     }
 
     return luaA_key_array_get(L, 1, keys);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/awesome-3.5.8/objects/client.h 
new/awesome-3.5.9/objects/client.h
--- old/awesome-3.5.8/objects/client.h  2016-01-30 14:55:18.000000000 +0100
+++ new/awesome-3.5.9/objects/client.h  2016-03-06 15:05:54.000000000 +0100
@@ -56,6 +56,8 @@
 struct client_t
 {
     WINDOW_OBJECT_HEADER
+    /** Window we use for input focus and no-input clients */
+    xcb_window_t nofocus_window;
     /** Client logical screen */
     screen_t *screen;
     /** Client name */
@@ -137,6 +139,7 @@
 
 bool client_maybevisible(client_t *);
 client_t * client_getbywin(xcb_window_t);
+client_t * client_getbynofocuswin(xcb_window_t);
 client_t * client_getbyframewin(xcb_window_t);
 
 void client_ban(client_t *);


Reply via email to