Commit Graph

900 Commits

Author SHA1 Message Date
Uli Schlachter f372388de9 Fix a minor ICCCM incompatibility
ICCCM says that the min size should be used for the base size if no base size is
specified. The only exception is when calculating the aspect ratio of the
window, in that case only the "real" base size may be used.

Awesome didn't do this last part before.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-07-22 10:34:39 +02:00
Uli Schlachter 6de41161f1 Ignore size hints on fullscreen windows
If a window is fullscreen it is supposed to cover the full screen. Obeying size
hints makes no sense in this case.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-07-21 17:51:47 +02:00
Uli Schlachter 312094ace3 Avoid some flickering when a new window opens
A new window is by default above all other windows. This means that when we map
it and then *later* move it to the correct place in the stacking order (thanks
to lazy restacking), the window on the top of the stack has to redraw itself.

I noticed this via naughty notifies redrawing themselves after opening a browser
window.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-07-18 14:35:15 +02:00
Uli Schlachter 985bafaf84 Add all managed client windows to the safe set
When an application loses its connection to the X11 server, all the windows in
its save-set are saved by reparenting them back to their closest ancestor. Also,
to they are unconditionally mapped. This second property is exactly what we
need: All windows should be in mapped state, else the next window manager which
starts up won't be managing them.

This should fix all bugs where clients where lost due to a restart, yay! :)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2010-07-14 21:39:26 +02:00
Uli Schlachter bec9e24e7f client_focus_update(): Balance the lua stack
There is a push 15 lines before the push that is removed here, but the client
that is pushed there was never popped. Bad.

Fix this by letting luaA_class_emit_signal() do the needed pop for us.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2010-02-10 09:46:25 +01:00
Uli Schlachter 33e209dd83 Re-add lazy banning
This kind-of-reverts 058dbab828.

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 <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-28 14:04:59 +02:00
Uli Schlachter 9a56a3ad4b 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 <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-28 14:01:04 +02:00
Julien Danjou e4df381c3e client: emit more signals on manage
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-22 15:52:06 +02:00
Julien Danjou c5acc8f613 client: remove banning_refresh (FS#631)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-21 15:01:36 +02:00
Julien Danjou 91b4611c94 client: emit geometry signal
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-18 11:31:31 +02:00
Julien Danjou b94a32c281 client: emit x,y,width,height signal on size changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-08 16:09:47 +02:00
Julien Danjou 97d82d8517 client: fix machine memory leak
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-08 11:21:47 +02:00
Cedric GESTES 1b007151e4 client: check for nil geometry
Signed-off-by: Cedric GESTES <ctaf42@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-09-04 13:59:36 +02:00
Brian Gianforcaro 3145e3145e Grammar/spelling corrections in comments and docs.
Signed-off-by: Brian Gianforcaro <b.gianfo@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-31 10:39:36 +02:00
Julien Danjou 17759578fa client: merge lower code
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-28 17:53:48 +02:00
Julien Danjou 3a1cbd6e35 client: emit property::workarea on events if client has strut
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-28 17:49:28 +02:00
Julien Danjou db10f783a6 client: return nil if client is not attached to a screen yet
Can happen with the "new" class signal.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-27 10:56:56 +02:00
Brian Gianforcaro c9ec34e61e Fix doxygen generation warnings
Signed-off-by: Brian Gianforcaro <b.gianfo@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-26 09:15:57 +02:00
Julien Danjou 1337129191 property: split _NET_WM_{ICON_,}NAME from WM_{ICON_,}NAME
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-25 16:39:10 +02:00
Julien Danjou 8b6917f11e client: update EWMH hints when changing skip_taskbar
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-25 11:18:19 +02:00
Julien Danjou 8632dcac82 client: fix hidden signal
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-25 10:05:26 +02:00
Julien Danjou e293a69982 screen: move the tagging on screen change to Lua
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-24 16:32:19 +02:00
Julien Danjou 876602ea91 titlebar: fix push
Titlebar are not stored inside client but inside global reference table.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-24 11:49:05 +02:00
Julien Danjou c862bf0534 property: use xcb_get_wm_protocols_from_reply
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-24 11:13:00 +02:00
Julien Danjou be1abfa28f Revert "client: fix has_proto iteration with newer XCB"
This reverts commit 9c785c40f6.
2009-08-24 11:13:00 +02:00
Julien Danjou 73a1011364 client, spawn: stop storing startup_id
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-24 10:35:12 +02:00
Julien Danjou e5048f72d5 property: macrotify all text property retrieval
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-24 10:26:48 +02:00
Julien Danjou a6c0d9398e property: use provided reply to get machine
This avoid a roundtrip when getting a property change event.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-22 15:05:29 +02:00
Julien Danjou 6e05e20664 client: emit property::role after setting value
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 23:30:07 +02:00
Julien Danjou 9c785c40f6 client: fix has_proto iteration with newer XCB
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 22:41:13 +02:00
Julien Danjou 69b4b2650d client: fix client signal emitting in set_icon
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 20:55:13 +02:00
Julien Danjou 8c8c260ceb client: check that screen is not NULL
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:48 +02:00
Julien Danjou 4d0a025f51 luaclass: add handling of {new,}index of missing properties (FS#584)
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:48 +02:00
Julien Danjou 90bca51390 client: disallow client border change when fullscreen
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:48 +02:00
Julien Danjou 5fe32859f7 screen: emit signals when workarea size changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:48 +02:00
Julien Danjou b249c67af9 strut: move table conversion to luaA_tostrut()
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou c57bef8332 ewmh: change ewmh_update_client_strut() to ewmh_update_strut()
It takes window + strut as argument rather than a client.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou 47011cb324 struts: split off client.c
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou efed142b97 client: emit property::struts on struts changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou a02d026f77 client: port to new object system
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou a916f2cd55 image: port to new class system
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou 0eb0c49592 tag: make struct tag private
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou fc035005ba client: emit signal on list changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou b58d0f848a client: emit signal on unmanage
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou 7954f19417 client: emit signal on manage
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou dc61d258f0 luaclass: optimize type handling
We use lua_class_t pointer as key in the registry to store metatable we
will compare.
lauxlib uses a string, which sucks, because it forces to do a
pushliteral() each time you want to get a metatable from the registry,
which is slower.

Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:47 +02:00
Julien Danjou 1cc50b8a29 luaobject: remove useless custom function
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-21 15:30:46 +02:00
Julien Danjou c353970500 client: emit signal on unfocus
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-20 10:39:18 +02:00
Julien Danjou cb2cad6b09 client: emit class signal on focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-19 16:05:59 +02:00
Julien Danjou ada6056c89 color: do not take pointer to push
Signed-off-by: Julien Danjou <julien@danjou.info>
2009-08-17 17:46:35 +02:00