Commit Graph

210 Commits

Author SHA1 Message Date
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
Julien Danjou 4573147196 [hooks] Rename newclient to `manage', add unmanage hook
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 19:03:10 +02:00
Julien Danjou 13a96b6edd [keygrab] Add keygrabbing infrastructure
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 17:22:36 +02:00
Julien Danjou 1049393840 Revert "Replace tags by workspaces"
This reverts commit 00f966ea04.

Revert "[focus] Fix bogus arguments"
This reverts commit 816b5d16bc.

Revert "[mouse] Fix bug with floating"
This reverts commit 89daa72790.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 21:56:03 +02:00
Julien Danjou ac1517bacb [client] Add support for hide/unhide
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 18:24:12 +02:00
Julien Danjou 00f966ea04 Replace tags by workspaces
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 16:30:46 +02:00
Michael Gehring 8ab1831ed6 [mouse] Use different cursors for vert./horiz. resize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 09:28:11 +02:00
Julien Danjou 6d89565c8e [mouse] Use different cursors for corners
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-07 16:38:33 +02:00
Julien Danjou 4c41361d6c [lua] Add object as argument to mouse click function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 19:21:21 +02:00
Julien Danjou fa08ec5316 [screen] Rename Padding to padding_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 15:30:47 +02:00
Julien Danjou aecc3c0e45 [titlebar] Store titlebar inside client
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 11:50:21 +02:00
Julien Danjou 1e08a992b8 [titlebar] Rewrote titlebar based on widgets
This is the new titlebar handling code, based on widgets.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 18:41:54 +02:00
Julien Danjou 807c5bf208 [widget] Remove useless drawing args
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 16:08:33 +02:00
Julien Danjou 59aa2b2da7 [statusbar] Add a flag to know if user specified width
That fix dynamic position switching.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:47:05 +02:00
Julien Danjou 34cd5504a7 [widget] Make button press event statusbar indep
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:40:50 +02:00
Julien Danjou d8a5b43f26 [widgets] Make draw functions statusbar-less dependents
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-02 12:18:17 +02:00
Julien Danjou b202b22314 [hooks] Fix timer resolution
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-31 23:43:28 +02:00
Julien Danjou 01fe4e3331 [statusbar] Remove multi-threading code
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-31 16:04:46 +02:00
Julien Danjou 51b0a5e20c [statusbar] Add alpha channel support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 13:08:11 +02:00
Julien Danjou 407972eb00 [xutil] Move xcolor_t into draw
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 12:33:08 +02:00
Julien Danjou 994f7abbc1 [lua] Add a timed hook
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 13:47:11 +02:00
Julien Danjou fda025a591 [statusbar] Add fake transparency
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 13:01:09 +02:00
Julien Danjou 3ab739553c [client] Add and honor the noborder attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 14:33:45 +02:00
Julien Danjou b6e31563d0 [lua] Add new keybinding interface
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 12:15:00 +02:00
Julien Danjou ebb56ce6b1 [client] Add a hook on urgent flag
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 11:08:48 +02:00
Julien Danjou b1467494ea Revert "[lua] Add a hook on standard fd activity"
This reverts commit 785c41f089.

Too much potential deadlock problems.
2008-05-27 16:36:06 +02:00
Julien Danjou 785c41f089 [lua] Add a hook on standard fd activity
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 15:56:14 +02:00
Julien Danjou a0b24c5505 [statusbar] Implement multi-threading per statusbar
More more efficient than before.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 11:17:51 +02:00
Julien Danjou c81dacf091 [client] Add proper stacking support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 19:32:30 +02:00
Julien Danjou f6f74c4565 [client] Add client.name_set() function and hook on title update
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 17:51:45 +02:00
Julien Danjou d9dd1fba8e Revert "[client] Remove ismax attribute."
This reverts commit fb822997b3.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 17:42:20 +02:00
Julien Danjou 6931bc70e6 [statusbar] Add align option
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 11:08:34 +02:00
Julien Danjou 21ae849d9f Rename VirtScreen to screen_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 09:01:49 +02:00
Julien Danjou 0bbd2d4b3e Rename AwesomeConf to awesome_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 08:59:27 +02:00
Julien Danjou 67b2702b7d [client] Remove newcomer attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 23:01:41 +02:00
Julien Danjou ffdb9727b7 [widget] Add a visible attribute to widgets and Lua functions
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 19:29:55 +02:00
Julien Danjou 9a0ed4d0d3 [lua] Add an hook on arrange
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 17:09:34 +02:00
Julien Danjou a04417494b [mouse] Rename Button to button_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:12:01 +02:00
Julien Danjou 0142f0efc9 [layout] Rename LayoutArrange to layout_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:11:59 +02:00
Julien Danjou ccb2a2db77 [lua] Remove regex matching
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 13:17:02 +02:00
Julien Danjou fb822997b3 [client] Remove ismax attribute.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 13:11:47 +02:00
Julien Danjou e25434fe25 [client/tasklist] Reactivate icon drawing with client.icon_set()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 22:37:08 +02:00
Julien Danjou dc431ec430 [scratch] Remove scratch client support.
This can be done in Lua now.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 19:47:29 +02:00
Julien Danjou 1f046b3c9f [everything] Switch from libconfuse to Lua
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 18:01:15 +02:00
Julien Danjou 255d91c711 [statusbar] Separate widget cache inside widets and sbars
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-13 16:48:33 +02:00
Julien Danjou fb1ab46eea [iconbox] Use a_strtobool()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-11 16:20:58 +02:00
Arnaud Fontaine 162b8a690c [all] Implement an atom cache in xutil as an ordered linked-list 2008-05-11 01:10:37 +02:00
Julien Danjou fb5b227214 [config] Rename Key to keybinding_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:05 +02:00
Julien Danjou 04ea13c205 [screen] Rename ScreensInfo to screen_info_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:05 +02:00
Julien Danjou 33837d77a1 [draw] Rename DrawCtx to draw_context_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:05 +02:00
Julien Danjou 5c51759cca [draw] Make text_align part of markup format
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:05 +02:00
Julien Danjou ce8d1ff89e [titlebar] Add string to format
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:04 +02:00
Julien Danjou ccfcde3555 [client] Escape clients name
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou e4d091ab2e [tag] Rename Tag type to tag_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou d1635db59f [client] Rename Client type to client_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou a73b07f5d3 [statusbar] Rename Statusbar type to statusbar_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou 0cd46ab6b1 [widgets] Rename Widget type to widget_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou e33d6cae80 [uicb] Rename Uicb type to uicb_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou e272000cc6 [util] Change Fuzzy type to fuzzy_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou bd18eb2018 [util] Change Position type to position_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou df7db5e86b [util] Change Alignment type to alignment_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou c9f4c45007 [rules] Rename Rule to rule_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou 59f8e36969 [titlebar] Rename Titlebar to titlebar_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou eb1a9bd69c [all] Rename Layer to layer_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Julien Danjou 97dc830db5 [util/rules] Move Fuzzy from rules to util
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00