Commit Graph

274 Commits

Author SHA1 Message Date
Maarten Maathuis d7f92fdf9f ewmh: Support all known non-override redirect window types.
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 19:19:29 +01:00
Julien Danjou 576a1e85fc client: maximize belongs to client internal
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 19:19:29 +01:00
Julien Danjou dc6583c3e0 client: rename geometries
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 19:19:29 +01:00
Maarten Maathuis f9c2ee62a3 client: reimplement client_{ban,unban} for more performance
- From now on clients shall remain mapped for their entire lifetime.
- This should seriously boost tag switching speed with composite active.
- A lesser improvement may be noticed in non-composite situations.
- Titlebars that are set to invisble are still unmapped.
  Since it would clutter the implementation and titlebars are cheap to render.
  Not to mention that invisible titlebars are pretty rare.
- It's safe to attach titlebars while the client is banned.
- Titlebars are explicitly removed at exit.

Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 19:19:28 +01:00
Julien Danjou a4254b195d dbus: add D-Bus hooks
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou 53a830aea1 mouse: move resize code to awful.mouse
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou 49bb7e87b4 mouse: remove client_move, move it to awful
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou 0e972d4845 mousegrabber: import
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou d61c6f5ae9 wibox: add cursor property
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou 3cf79072cd xcursor: add new cursor infra
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou ccc6452d49 widget: change widget initialization code
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:41 +01:00
Julien Danjou a5de5ab48c widget: remove button property
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:40 +01:00
Julien Danjou 0716ecb4fd widget: remove old cache system
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:40 +01:00
Julien Danjou 4fcf48e247 widgets: remove name property
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-12-12 16:51:40 +01:00
Julien Danjou 8d1120d096 keybinding: store in globalconf
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-31 17:08:32 +01:00
Julien Danjou 737a70f60c remove a bunch of useless #include-s
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-24 20:57:29 +02:00
Julien Danjou c954c33261 cnode: move struct to cnode header
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-24 20:40:02 +02:00
Julien Danjou 1e89515d97 mouse: move declaration from structs to mouse header
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-24 20:38:29 +02:00
Julien Danjou 4f1273794b mouse: fix button delete
We need to unref Lua functions.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-24 18:53:47 +02:00
Julien Danjou 2e3744de9d widget: store supported align and use to render flex widgets
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-23 17:28:07 +02:00
Julien Danjou 25bf12868a widgets: use a geometry callback
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-22 17:32:17 +02:00
Julien Danjou d3ceff0282 structs: move some define out
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-21 17:37:14 +02:00
Julien Danjou 569ea75409 wibox: handle widget_node_t as array rather than list
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-21 17:21:59 +02:00
Julien Danjou 2a36b021d1 client: icon_name is stored and watched
This permits to update tasklist on icon name changes.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-21 15:15:28 +02:00
Julien Danjou 862fe193ee Rewrite {tag,task}list in Lua.
This removes the C implementation of taglist and tasklist widgets and
use a Lua one.

This works by letting .widgets property of wiboxes to be a table with
table, and setting a special metatable on them which notify awesome on
newindex events, updating wiboxes.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-20 20:06:09 +02:00
Julien Danjou ba66ae8035 hooks: add clients hook
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-20 15:04:56 +02:00
Julien Danjou 116de39142 lua: add awesome.conffile()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-30 15:35:47 +02:00
Julien Danjou 5709435392 wibox: rework, merge titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-26 15:00:42 +02:00
Julien Danjou 2dfde8c181 util: remove off position
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-26 15:00:27 +02:00
Julien Danjou 08b0d71db3 wibox: add ontop attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-26 15:00:27 +02:00
Julien Danjou 305af484f5 wibox: add full geometry
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-26 15:00:27 +02:00
Julien Danjou f374210382 client: add property hook
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-26 15:00:27 +02:00
Julien Danjou 0feb7de68e wibox: merge statusbars and titlebars Lua objects
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 14:34:43 +02:00
Julien Danjou 14c5644fbf wibox: remove name
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou ef85ed92b7 use more precise types
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 34fe130307 wibox: merge statusbar and titlebar types
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 2e17f8a662 swindow: do not store phys_screen; store border color
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou fcc93e5f88 draw: merge draw context into swindow
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 44ef511aed screen: store statusbars as array
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou b11c068b96 statusbar: remove phys_screen attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 2fa76f9237 statusbar: remove width_user
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou adf732dd9f titlebar: remove old position attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 4193e81fa8 screen: merge with xscreen, remove screens_info
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 6ac0c4130c image: merge draw_image_t and image_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou 6c8d2d1e8e client: open transient windows on the same screen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou 2be620618b property: use xcb property handler system
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou 856192fa99 client: merge icon_path and netwm icon
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou 2fad185fcf ewmh: store netwm icon as draw_image_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou 6a5ad6af9b common: move draw, xscreen and swindow out
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou e0d3da455b client: split minimized out of hidden
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:55 +02:00
Julien Danjou fcde8d229b ewmh: add support for _NET_WM_STRUT_PARTIAL
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 506a4200c6 client: support input focus hints
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 427679b0fa client: use a type attribute for NET WM window type
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 34d49ac4ee client: store size hints
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 63b5e65ebd placement: deprecate in favor of awful.placement
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 0dde158b5f hooks: rename mouseover to mouse_over and simplify config
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou e871bbfa18 widget: add support for mouse enter and leave events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou abb497fa56 client: rework all stacking stuff
- Stacking is now per attribute
- Fullscreen does not imply isfloating

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou cfa9de3126 client: remove useless skip attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 8543dfae5c client: add support for the sticky attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 3b895d84ed mouse: rework mouse buttons API, support release events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:53 +02:00
Julien Danjou be52f5b047 update to new xcb-event
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-16 15:36:44 +02:00
Julien Danjou 7b00a2baf0 systray: reparent windows
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-01 17:54:53 +02:00
Julien Danjou 1fbe4f0d5e ewmh: store NET_WM icon
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 23:10:02 +02:00
Julien Danjou be2bfdcfc5 screen: introduce screen objects
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 17:14:02 +02:00
Julien Danjou 9f503e5a13 lua: rename luaA_function to luaA_ref
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 10:12:36 +02:00
Julien Danjou 189157843a systray: remove has_systray
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 17:03:14 +02:00
Julien Danjou 81ae462a70 focus: remove focus history
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 17:30:01 +02:00
Julien Danjou 1cc071e24f client: add refcount for clients
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 17:29:45 +02:00
Julien Danjou 063bf2083d titlebar: use need_update system (like statusbar, …)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 14:11:07 +02:00
Julien Danjou 3db9f29453 appicon: new widget, used in titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-29 16:51:21 +02:00
Julien Danjou 4ba2e22bae widget: add detach callbacks
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-29 11:50:40 +02:00
Julien Danjou 5876b3cc70 remove spurious semi colon
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 16:22:41 +02:00
Julien Danjou b9e8307f60 client: merge border_set into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 20:07:21 +02:00
Julien Danjou 5bb431fc4a widgets: don't tokenize twice
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:27:41 +02:00
Pierre Habouzit 3a7dd8c715 Hide keybindings away 1/2
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 08:12:22 +02:00
Julien Danjou b584b19104 atoms: add all used atoms
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 18:55:14 +02:00
Julien Danjou 1c5fc37eef widgets: add newindex support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 12:43:39 +02:00
Julien Danjou c007cacd09 xutil: make atoms cache an array
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 12:08:19 +02:00
Julien Danjou 094d0ebc50 widget: new widget index method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:35:07 +02:00
Julien Danjou 6ec76c3b97 client: honor size hints is now by client
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 15:42:07 +02:00
Pierre Habouzit 5a07ee4946 Put keybindings in binary searchable arrays.
This patch sorts keybindings in arrays by keycode or keysym to speed up look
up using binary searches. This is a preliminary work to enable more powerful
keybindings stuff, where keybindings can be cascaded or why not, attached to
specific clients.

Interstingly enough, this patch saves 100ko of initial memory (Heap) usage here.

The underlying idea is that we should be able to define keybindings_t as
trees of keybindings_t which would then define key sequences.

The OO approach kind of make sense in fact, since you create a base
keybinding (e.g. reacting on Mod4-w) and then you will probably (with
appropriate apis) be able to populate new submaps from that point more or
less dynamically.

And if you have two keybindings on Mod4-w, then adding them will replace the
previous one. This means that you can fake per-client bindings with e.g.:

  k_default = keybindings.new({"Mod4"}, "w", something);
  k_mplayer = keybindings.new({"Mod4"}, "w", something_else);
  k_default:add()

and in your focus hook:

  if /* code for testing if it's mplayer */ then
      k_mplayer:add()
  else
      k_default:add()
  end

This would not work before, it does now.

It will take way more sense with submaps of course.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 11:04:56 +02:00
Pierre Habouzit 8c717622fd Put keybindings in arrays.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-25 11:04:56 +02:00
Pierre Habouzit f84e66ddc6 Avoid lists of tag/client pairs, use an array per tag.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 14:30:13 +02:00
Pierre Habouzit 14f4e02e66 Replace tag_t lists with arrays.
This improves lots of code efficiency (we *know* how many tags we have
now, YA'RLY).

Also fix a \todo in client.c: since knowing the number of tags is cheap,
ignore props that don't match it.

Use many p_alloca for things that depends on the number of tags (no sane
user will have *thousands* of tags. This saves a few more mallocs.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 17:37:19 +02:00
Julien Danjou c67c237bba client: move floating_placement_set()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 11:41:16 +02:00
Michael Gehring 1c570feff7 client: add hassizehints 2008-06-18 18:48:38 +02:00
Julien Danjou 32a73f9ae6 titlebar: add support for border, refactorize code
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 11:22:54 +02:00
Julien Danjou 26738c4dab xshape: remove, nothing prove it's really useful
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 15:06:05 +02:00
Julien Danjou 514320a576 systray: support running without any systray widget
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 13:33:17 +02:00
Pierre Habouzit 9ea15fd224 And migrate the rest of the loop to the libev.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-17 00:30:53 +02:00
Julien Danjou eade93c4c8 widget: stop deleting data, destructor does
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 21:18:54 +02:00
Julien Danjou 7d7e5b960a placement: rename FloatingPlacement to floating_placement_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 10:55:07 +02:00
Julien Danjou f418cb0c2e systray: attach systray to external window, not statusbar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 10:33:10 +02:00
Julien Danjou 70dbe7bc4d systray: add support for multiple physical screens
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 23:23:00 +02:00
Julien Danjou f169c4d8d9 widget: add support for destructor
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 22:38:40 +02:00
Julien Danjou e5e379656a systray: import widget
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 18:12:16 +02:00
Julien Danjou 1142c382f7 mouse: make button bindings objects
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 15:35:47 +02:00
Julien Danjou 03516eee22 structs: remove titlebar's buttons
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 14:50:54 +02:00
Julien Danjou 008cf2b340 ewmh: add modal windows support and a modal layout
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 14:41:42 +02:00