[Patch] Re-add lazy banning

2009-09-27 Thread Uli Schlachter
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hi list,

the two attached patches re-add lazy banning (or passive banning as someone
called it). If banning_refresh() is now called it sets a flag
need_lazy_banning again, but now it also makes sure that the lua events it can
generate are generated *right* *now* and not at the end of the main loop.

This should fix the bug that has caused this laziness to be removed.

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.9 (GNU/Linux)

iQEcBAEBCAAGBQJKvxRCAAoJECLkKOvLj8sGoicH/3elpXLY3o8OQgFrXTt80flA
s8DdSGIPasTB//nPXj0m0yUUX2Pb1wt+4PDoQvYpcWhHIcIzy1V4mZJTY+NMNFAM
LGuaaPkXc7YCZKC+NXtIfaVmDIRqNJZ5e7DmnNb3NYFrjXze+vIKCHCML9CP9JKJ
Rml5MrxP0Jc2H0T+77xc4vx/zhAO+sYl0tEGRp2xEqywFsHr+CLRbq11OWqkG6Ys
0s+ClDBwe7EOZJombu/8xqyU7oBKVE00+PBzO2CfJAIE5jMwz9EsmmqXfnLVHkH7
13LW13aaVjJitoJrM+wymMCJlTtcq990KCudIYrfrHBLxU4g1G8FdLqHbEMxTw8=
=wr8Z
-END PGP SIGNATURE-
From c8ca9e30cdc4e2bf66fddc76414d66de50c44793 Mon Sep 17 00:00:00 2001
From: Uli Schlachter psyc...@znc.in
Date: Sun, 27 Sep 2009 09:21:04 +0200
Subject: [PATCH 1/2] Add client_ban_unfocus

client_ban_unfocus() generates the unfocus events that client_ban() would
generate, but it doesn't do the actual banning.

Signed-off-by: Uli Schlachter psyc...@znc.in
---
 client.c |   20 ++--
 client.h |1 +
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/client.c b/client.c
index f726ca5..dd854c2 100644
--- a/client.c
+++ b/client.c
@@ -335,6 +335,19 @@ client_set_focus(client_t *c, bool set_input_focus)
 window_takefocus(c-window);
 }
 
+/** Prepare banning a client by running all needed lua events.
+ * \param c The client.
+ */
+void client_ban_unfocus(client_t *c)
+{
+if(globalconf.screens.tab[c-phys_screen].prev_client_focus == c)
+globalconf.screens.tab[c-phys_screen].prev_client_focus = NULL;
+
+/* Wait until the last moment to take away the focus from the window. */
+if(globalconf.screens.tab[c-phys_screen].client_focus == c)
+client_unfocus(c);
+}
+
 /** Ban client and move it out of the viewport.
  * \param c The client.
  */
@@ -347,12 +360,7 @@ client_ban(client_t *c)
 
 c-isbanned = true;
 
-if(globalconf.screens.tab[c-phys_screen].prev_client_focus == c)
-globalconf.screens.tab[c-phys_screen].prev_client_focus = NULL;
-
-/* Wait until the last moment to take away the focus from the window. */
-if(globalconf.screens.tab[c-phys_screen].client_focus == c)
-client_unfocus(c);
+client_ban_unfocus(c);
 }
 }
 
diff --git a/client.h b/client.h
index 39d20fa..a270a65 100644
--- a/client.h
+++ b/client.h
@@ -163,6 +163,7 @@ LUA_OBJECT_FUNCS(client_class, client_t, client)
 bool client_maybevisible(client_t *, screen_t *);
 client_t * client_getbywin(xcb_window_t);
 void client_ban(client_t *);
+void client_ban_unfocus(client_t *);
 void client_unban(client_t *);
 void client_manage(xcb_window_t, xcb_get_geometry_reply_t *, int, bool);
 area_t client_geometry_hints(client_t *, area_t);
-- 
1.6.3.3

From 6e248ebe6906cc41598a4d7164c78a9042057aa3 Mon Sep 17 00:00:00 2001
From: Uli Schlachter psyc...@znc.in
Date: Sun, 27 Sep 2009 09:22:03 +0200
Subject: [PATCH 2/2] Re-add lazy banning

This kind-of-reverts 058dbab82875a684cebfbc36126b0383c6219037.

If banning_refresh() is called, only the lua events that it generated before are
now generated (the unfocus event). The actual mapping and unmapping of X11
windows is defered until the end of the main loop via a new per-screen
need_lazy_banning flag.

Signed-off-by: Uli Schlachter psyc...@znc.in
---
 banning.c |   38 --
 banning.h |1 +
 event.h   |1 +
 screen.h  |2 ++
 4 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/banning.c b/banning.c
index 053e64c..a973d8e 100644
--- a/banning.c
+++ b/banning.c
@@ -20,9 +20,9 @@
  */
 
 #include banning.h
-#include tag.h
-#include window.h
+#include client.h
 #include titlebar.h
+#include screen.h
 
 /** Reban windows following current selected tags.
  * \param screen The screen to arrange.
@@ -30,6 +30,31 @@
 void
 banning_refresh(screen_t *screen)
 {
+/* We update the complete banning only once per main loop to avoid
+ * excessive updates...
+ */
+screen-need_lazy_banning = true;
+
+/** but if a client will be banned in our next update we unfocus it now.
+ */
+foreach(_c, globalconf.clients)
+{
+client_t *c = *_c;
+
+/* we don't touch other screens windows */
+if(!client_isvisible(c, screen)  c-screen == screen)
+client_ban_unfocus(c);
+}
+}
+
+static void
+reban(screen_t *screen)
+{
+if (!screen-need_lazy_banning)
+return;
+
+screen-need_lazy_banning = false;
+
 

[awesome bugs] #638 - Multi screen support for naughty

2009-09-27 Thread awesome

THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

The following task is now closed:

FS#638 - Multi screen support for naughty
User who did this - Julien Danjou (jd)

Reason for closing: Won't implement
Additional comments about closing: Patch seems a bit buggy and  not that useful 
IMHO.

More information can be found at the following URL:
http://awesome.naquadah.org/bugs/index.php?do=detailstask_id=638

You are receiving this message because you have requested it from the Flyspray 
bugtracking system.  If you did not expect this message or don't want to 
receive mails in future, you can change your notification settings at the URL 
shown above.

--
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.


Re: [Patch obvious] Minor cleanup

2009-09-27 Thread Gregor Best
On Fri, Sep 25, 2009 at 09:28:59AM +0200, Uli Schlachter wrote:
 Hi,
 
 the attached patches let some obvious widgets only require the parts of
 obvious.lib that they actually need (someone complained on irc that
 obvious.lib.mpd broke his awesome but he never used it).
 [...]

Both merged.

 The second patch then fixes this bug properly in obvious.lib.mpd. Upstream
 already NACK'd that patch since he thinks it's unsuitable for a mpd library. 
 :(
 [...]

Well,contrary to using kAworu's mpd lib in your own stuff, with obvious you 
don't
neccessarily want to use it at all, as was the case with the user who
had a broken awesome after (unknowningly) requiring the mpd library.

 Testing: All the widgets I touched still seem to work correctly and if I make
 lib.mpd require socke it errors less fatal than before.
 
 Uli

-- 
GCS/IT/M d- s+:- a-- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o--
K- w--- ?O M-- ?V PS++ PE- Y++ PGP+++ t+ 5 X+ R tv b+++ DI+++
D+++ G+ e h! r y+

Gregor Best


pgphrlfaUBDFw.pgp
Description: PGP signature


Re: [Patch] Image: Allow drawing outside of the image

2009-09-27 Thread Julien Danjou
At 1254036867 time_t, Uli Schlachter wrote:
 the attached patch has been laying around for quite some time now. The reason
 why I wrote it:

Pushed. :)

Cheers,
-- 
Julien Danjou
// ᐰ jul...@danjou.info   http://julien.danjou.info
// 9A0D 5FD9 EB42 22F6 8974  C95C A462 B51E C2FE E5CD
// This is the end of my signature.


signature.asc
Description: Digital signature


Re: [Patch] Re-add lazy banning

2009-09-27 Thread Uli Schlachter
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Uli Schlachter wrote:
 Hi list,
 
 the two attached patches re-add lazy banning (or passive banning as someone
 called it). If banning_refresh() is now called it sets a flag
 need_lazy_banning again, but now it also makes sure that the lua events it 
 can
 generate are generated *right* *now* and not at the end of the main loop.
 
 This should fix the bug that has caused this laziness to be removed.
 
 Uli

Hm, thanks to lukkash on IRC I noticed a bug with this. If you do .selected =
false ; .selected = true on your current tag then the unfocus event will be run,
but the focus event wont :(

Ideas?
- --
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.9 (GNU/Linux)

iQEcBAEBCAAGBQJKv7ceAAoJECLkKOvLj8sGdG4H/jiv6QpquHz5pKDo6SMkLApv
znxUGD413+x7yqhMlUcqO4Up00wXhnwpEJDWHQAyXp7RNfllSNLWBhwM72enwJe9
EsotR6DrU4+jREnRAHFCyNLPzhuZ4+VQHuLtIrWvpiOdDijdNpuKSZ8OkWcOQQFJ
pFGUGTXaMZhxRne0X1YbbrY4BiinAJCFdbQodjq1x/IvTUkiNd0lrXNWvSsHIvJx
9FtpCbbHYhSKMRflAPzIkzZQxMywe+eooB+YCSvmga0MLeRwVvIqHzSJG3Eh7mGJ
ZrhgSaiqhb9QKgEY2t0SYeKE5CoIxY3ruFFrERPV/XfBUzC5BbQmZGUK4Z+yjY0=
=2gEI
-END PGP SIGNATURE-

-- 
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.


[awesome bugs] #642 - Titlebar left on the starting tag after movetotag happens (Attachment added)

2009-09-27 Thread awesome

THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

A new Flyspray task has been opened.  Details are below. 

User who did this - anrxc (anrxc) 


Attached to Project - awesome
Summary - Titlebar left on the starting tag after movetotag happens
Task Type - Bug Report
Category - Core
Status - Unconfirmed
Assigned To - 
Operating System - All

Severity - Low
Priority - Normal
Reported Version - git/master
Due in Version - Undecided
Due Date - Undecided
Details - Hi, 
I caught a problem with titlebars.


First, I have a Firefox rule: 


   { rule = { class = Firefox, instance = Navigator },
 properties = { tag = tags[screen.count()][3] }
   },

Second, I have a piece of code in my manage signal function that adds a 
titlebar to each floating client, or every client if we are on a floating 
layout.

   if awful.client.floating.get(c) or
   awful.layout.get(c.screen) == awful.layout.suit.floating
   then
   if not c.titlebar then awful.titlebar.add(c, { modkey = modkey }) end
   end

If I am on a tag with floating layout and I start Firefox, because of the 
current awesome 3.4 behaviour the client is first visible on the starting tag 
before being moved (with flashes and every thing else... you know).

Problem for this report is that the client titlebar is left visible on the 
starting tag after the client has been moved. If I do anything to force 
re-arranging the screen (like starting another client) the titlebar will 
vanish. The attached image shows the problem, a titlebar left on the starting 
tag.




One or more files have been attached.

More information can be found at the following URL:
http://awesome.naquadah.org/bugs/index.php?do=detailstask_id=642

You are receiving this message because you have requested it from the Flyspray 
bugtracking system.  If you did not expect this message or don't want to 
receive mails in future, you can change your notification settings at the URL 
shown above.

--
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.


[awesome bugs] #643 - Imlib2 warning: imlib_image_get_width() called with image being NULL

2009-09-27 Thread awesome

THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY.

A new Flyspray task has been opened.  Details are below. 

User who did this - anrxc (anrxc) 


Attached to Project - awesome
Summary - Imlib2 warning: imlib_image_get_width() called with image being NULL
Task Type - Bug Report
Category - Core
Status - Unconfirmed
Assigned To - 
Operating System - All

Severity - Low
Priority - Normal
Reported Version - git/master
Due in Version - Undecided
Due Date - Undecided
Details - Hi, 
I have a few Imlib warnings in my xsession-errors. I have about 6 progressbars (and one graph), a while back I reported a simillar issue (FS#597) and Uli sent some patches but I see this happen with latest git. Warning is always printed in pairs of two and sometimes doesn't appear for hours.


---
* Imlib2 Developer Warning * :
This program is calling the Imlib call:

imlib_image_get_width();

With the parameter:

image

being NULL. Please fix your program.
---


More information can be found at the following URL:
http://awesome.naquadah.org/bugs/index.php?do=detailstask_id=643

You are receiving this message because you have requested it from the Flyspray 
bugtracking system.  If you did not expect this message or don't want to 
receive mails in future, you can change your notification settings at the URL 
shown above.

--
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.


Re: shifty and 3.4rc

2009-09-27 Thread koniu
On Sat, Sep 26, 2009 at 19:18, Andreas Klöckner li...@informa.tiker.net wrote:
 shifty doesn't appear to work with 3.4rc1, i.e. I get an unresponsive screen
 that says AWESOME in the middle. The .xsession-errors file has some warnings
 about function deprecations, but nothing immediately incriminating. Is this
 supposed to work? Any clues why that may be?

 I used the shifty for git master link at
 http://awesome.naquadah.org/wiki/Shifty

try this, works with a master from a week ago:
http://git.mercenariesguild.net/?p=awesome.git;a=shortlog;h=refs/heads/shifty-masterhack

i need to clean it up some day but now i've got a bunch of other stuff to do.

--
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.


[PATCH] 0001-awful.tag-fix-typo-in-viewmore.patch

2009-09-27 Thread koniu
a trivial fix for viewmore()
From ee779ae5f3648474e1ccddb511cf3cba10005e9d Mon Sep 17 00:00:00 2001
From: koniu gkusni...@gmail.com
Date: Mon, 28 Sep 2009 03:18:57 +0100
Subject: [PATCH] awful.tag: fix typo in viewmore

Signed-off-by: koniu gkusni...@gmail.com
---
 lib/awful/tag.lua.in |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/awful/tag.lua.in b/lib/awful/tag.lua.in
index 308afbf..aecd586 100644
--- a/lib/awful/tag.lua.in
+++ b/lib/awful/tag.lua.in
@@ -265,7 +265,7 @@ end
 function viewmore(tags, screen)
 local screen_tags = capi.screen[screen or capi.mouse.screen]:tags()
 for _, tag in pairs(screen_tags) do
-tag.selected = (table.hasitem(tags, tag) ~= nil)
+tag.selected = (util.table.hasitem(tags, tag) ~= nil)
 end
 capi.screen[screen]:emit_signal(tag::history::update)
 end
-- 
1.6.4.3