Commit Graph

450 Commits

Author SHA1 Message Date
Julien Danjou 14061b4e7a systray: move KDE handling into client_manage()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 13:09:24 +02:00
Julien Danjou 207f06d720 systray: add KDE work around
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 13:06:23 +02:00
Julien Danjou ba63e7e784 systray: do not manage windows twice
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-29 13:38:39 +02:00
Julien Danjou e1e12f4c0a event: only map if the client is visible
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-28 11:47:29 +02:00
Julien Danjou dda116fea0 event: map window if they ask for
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 22:50:10 +02:00
Pierre Habouzit 585496b66a Make event handler setup private to the event module.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-26 22:47:56 +02:00
Julien Danjou 013b2afe62 remove useless #include
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 18:10:45 +02:00
Pierre Habouzit d45590fbcc 0 may be a valid function, LUA_REFNIL is what we want.
Also don't forget to unref the function on deletion.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 14:23:59 +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
Julien Danjou 678c9e3334 event: spurious printf removal
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:58:24 +02:00
Julien Danjou ec414ae39b systray: set orientation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 19:56:10 +02:00
Arnaud Fontaine 452b89d6ec Always use unchecked xcb functions 2008-06-21 19:56:51 +09:00
Julien Danjou 92f369e3aa lua: userdata_new is now macro
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 18:31:35 +02:00
Arnaud Fontaine b9e1ec69d0 Replace xcb_aux_get_screen() by a safer function 2008-06-17 17:14:00 +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 5bae1f0c37 window: rework root_grabbuttons()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 14:35:58 +02:00
Julien Danjou e5e379656a systray: import widget
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 18:12:16 +02:00
Michael Gehring e8e87c5a85 update event handler documentation.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 20:33:44 +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 7d79509df9 [keygrabber] Fix key mapping
- Use Mod5 to enter group 2 and 3
- Do not call the function is key not recognized

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 22:37:45 +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 00f966ea04 Replace tags by workspaces
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 16:30:46 +02:00
Julien Danjou 2b4ffb4b74 [event] Simplify event_handle_maprequest()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-05 18:13:11 +02:00
Julien Danjou 6ba90facb0 [client] Various documentation update and fixes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-05 09:27:16 +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 2742318f16 [common] Use pixmap instead of drawable type
It's just more clear.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 16:13:41 +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 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 05bb1d3833 [statusbar] Fix potential error if statusbar is Off on start
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 15:21:27 +02:00
Julien Danjou 0e3531d3a3 [client] Rework raise and mouse stuff
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-26 18:08:29 +02:00
Julien Danjou 083a4f13f7 [statusbar] Fix event handling on child window
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 14:01:09 +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 db5430420d [client] Create luaA_client_userdata_new() function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 22:56:03 +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
Arnaud Fontaine d662c66526 [event] Optimize xcb pointer and geometry queries. 2008-05-20 19:44:08 +01: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 4966c46d60 [event] Remove useless arguments to event_handle_mouse_button_press()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-11 16:56:18 +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 effaa99b91 [awesome] Remove useless includes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:35 +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
Arnaud Fontaine 6d1cb32837 [client] Fix regression (closed windows still mapped on the screen)
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
Arnaud Fontaine 20442adfa0 Cosmetic 2008-05-03 12:01:03 +02:00
Julien Danjou f31517817c [statusbar] Remove statusbar_display
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Julien Danjou a04395ddc9 [swindow] Store gc
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Julien Danjou 8f069ceb9b [event] Cosmetic and manage enhancement
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:02 +02:00
Arnaud Fontaine 2f9409ba74 Desallocate replies and events properly 2008-05-03 12:01:01 +02:00
Arnaud Fontaine 1309287ead Cleanup of TODO messages 2008-05-03 12:01:01 +02:00
Arnaud Fontaine 71e9100927 Remove useless xutil_root_window() 2008-05-03 12:01:00 +02:00
Arnaud Fontaine 02c99fccb8 Prefix xutil functions properly 2008-05-03 12:01:00 +02:00
Arnaud Fontaine 1eab0e44e7 * Make key symbols table, NumLock, ShiftLock and CapsLock global variables.
* Get CapsLock and ShiftLock masks properly and fix XLookupString() XCB equivalent.
2008-05-03 12:01:00 +02:00
Arnaud Fontaine 970d2e7bd9 When handling a ConfigureRequest, send a ConfigureWindow according to
the event value mask.
2008-05-03 12:01:00 +02:00
Arnaud Fontaine 163c1240d8 Fix incorrect call of xcb_configure_window() 2008-05-03 12:01:00 +02:00
Arnaud Fontaine dafafd077c Port Awesome to XCB 2008-05-03 12:00:59 +02:00
Jan Niehusmann 78dd0b8620 [event] Fix handling of keysym/keycode in event_handle_keypress.
Only compare the configured one of these two properties for any
given key.

Signed-off-by: Jan Niehusmann <jan@gondor.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-02 14:23:58 +02:00
Julien Danjou 6623668b6f [config] Store keysym or keycode (FS#64)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-02 11:12:53 +02:00
Julien Danjou bbb1b233ca [keys] Store KeySym, not KeyCode
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-18 14:57:52 +02:00
Julien Danjou a09e6180bb [mouse] Allow multiple bindings for mouse events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-09 18:03:25 +02:00
Julien Danjou 2f513459e2 [titlebar] Give focus when clicking with Button1
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-08 16:11:13 +02:00
Julien Danjou 68c14355af [events] Stop handling LeaveNotify events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-03 13:17:33 +02:00
Julien Danjou 680555a317 [bobmarley] Stop grabbing Motion events
That fails in GTK+ apps anyway

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-02 11:39:11 +02:00
Julien Danjou 6ee23de391 [event] Only record mouse position on real button grabbing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-28 17:49:11 +01:00
Julien Danjou 553af0db03 [event] Add more comment about the Bob Marley algorithm
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 16:57:50 +01:00
Julien Danjou 3fa15dd272 [core] Fix ConfigureRequest handling for non-floating windows
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 09:52:54 +01:00
Julien Danjou 536700b674 If the window did not received focus, restack it
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-25 11:28:56 +01:00
Julien Danjou c5afa7753b Split restack function out of focus, and fix click-to-raise
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 16:34:41 +01:00
Julien Danjou 7fae889888 Remove unused variable
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 15:26:13 +01:00
Julien Danjou 2045c811e2 Enhance configurerequest handling a bit
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 14:37:57 +01:00
Julien Danjou 8ba54194de Switch from uicb_exec(0, globalconf.argv) to uicb_restart()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 21:57:07 +01:00
Julien Danjou 904cd4e06a Normalize some window functions protos
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 0a6c6e017b Store physical screen id in statusbar and client, change get_phys_s() to screen_virttophys()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou c496df9fc6 Add support for mouse bindings on titlebars 2008-03-23 15:52:22 +01:00
Julien Danjou e22d57a0ca Change the way to do resize
Go back to old school

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou e5fbbcb612 Update titlebar on configure requests 2008-03-23 15:52:20 +01:00
Julien Danjou b2261160b4 Enable multiple keys bindings to be executed with the same key press event 2008-03-23 15:52:19 +01:00
Julien Danjou b51e352ed8 Fix errors with windows without titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 8b217359e9 Rename Auto to Maybe in Fuzzy; add Auto as Position; add support for titlebar as rule 2008-03-23 15:52:19 +01:00
Julien Danjou f29b0660fa Make sloppy focus work on titlebars 2008-03-23 15:52:19 +01:00
Julien Danjou 2c43fd6a69 Split titlebar properties into a struct with a SW and a Position 2008-03-23 15:52:18 +01:00
Julien Danjou 3c3015fd76 Remove resize_hints args to client_resize(), force usage of client_geometry_hints() 2008-03-23 15:52:18 +01:00
Julien Danjou ea88e324a0 First titlebar support 2008-03-23 15:52:18 +01:00
Julien Danjou c6eec955c8 Rename Area to area_t 2008-03-23 15:52:18 +01:00
Julien Danjou eee37d063c Use xinerama_is_active attribute and drop XineramaIsActive() usage 2008-03-23 15:52:17 +01:00
Julien Danjou 355b7d67b3 Change screen_get_bycoord() proto to take ScreensInfo as arg, and speed up things 2008-03-23 15:52:17 +01:00
Julien Danjou 0bde5c9e29 Move some screen functions from screen.c to new common/xscreen.c 2008-03-23 15:52:17 +01:00
Julien Danjou 867b2f0775 first version of awesome-menu 2008-03-23 15:52:15 +01:00
Julien Danjou bd2f4a212e Move grabkeys() out of event, and move it into window; clean and remove setup() function in awesome.c 2008-03-06 16:18:01 +01:00
Julien Danjou d10036a366 Remove useless call to get_phys_screen() in grabkeys()
screen is already a physical screen since we use ScreenCount()
2008-03-06 16:09:38 +01:00
Julien Danjou dd9a1b99c4 Rename events functions from handle_event... to event_handle 2008-03-06 09:09:59 +01:00
Julien Danjou edb865a070 Simplify grabkeys() function 2008-03-06 09:07:33 +01:00
Julien Danjou c1b503af1a Comment event.c functions 2008-03-06 09:05:15 +01:00
Julien Danjou de8dcbb724 replace drop_events arch by x,y pointer coordinates saving 2008-03-04 10:14:13 +01:00
Julien Danjou 960d870b0b fix screen_get_bycoord() 2008-02-25 13:40:30 +01:00
Julien Danjou 72d68b13a3 change focus raising 2008-02-09 23:12:40 +01:00
Julien Danjou a4d4fedfac fix wrong coords computing with left/right statusbar click 2008-02-08 15:35:09 +01:00
Nathan LaFreniere 1d57d7b327 switch KeySym to KeyCode 2008-02-08 14:35:32 +01:00
Julien Danjou 606d157e31 rename some screens function 2008-01-30 09:36:52 +01:00
Julien Danjou ab8d95f13d rework include 2008-01-29 11:27:14 +01:00
Julien Danjou ee1214846e rename some client functions 2008-01-29 08:21:05 +01:00
Julien Danjou 95d5fe299e rename focus() to client_focus() 2008-01-27 19:07:39 +01:00
Julien Danjou 37b4f62258 always grab Button1 2008-01-26 13:11:12 +01:00
Julien Danjou c22430a115 fix handling of window raisings 2008-01-25 23:43:16 +01:00
Julien Danjou a601553e3c unused var 2008-01-25 23:21:27 +01:00
Julien Danjou 34bc4e8191 replace bad code for configurenotify 2008-01-25 23:15:27 +01:00
Julien Danjou 485614f2df rewrite focus handling
- arrange() does not focus() anymore
- restore dropping events infra
- add client_unfocus()
- grabbuttons() where we should and add root_grabbuttons() for root window
2008-01-25 22:37:49 +01:00
Julien Danjou 3855ced402 remove selscreen arg 2008-01-24 23:48:35 +01:00
Julien Danjou ce41ed1eeb return if no widget match 2008-01-24 20:28:45 +01:00
Julien Danjou 30256b3be3 cosmetic 2008-01-24 20:24:16 +01:00
Julien Danjou 82d9cec79d don't regive focus to already focused window 2008-01-24 18:31:44 +01:00
Julien Danjou 240ee786d1 rename nscreens to nscreen 2008-01-24 13:48:49 +01:00
Julien Danjou c1569eedf4 store simple window geometry 2008-01-23 16:05:52 +01:00
Julien Danjou 5fa25b23f6 add some code for creating SimpleWindow-s and use it for statusbar 2008-01-23 15:54:30 +01:00
Nikos Ntarmos fa0ac03f5b set need_arrange on client_resize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-22 21:27:34 +01:00
Julien Danjou 668702b777 move list.h and util.[ch] to common/ 2008-01-21 18:14:59 +01:00
Julien Danjou 97f08901d6 call restack() only when focus()ing 2008-01-21 16:31:15 +01:00
Julien Danjou 83a0a4daf8 add a common infra to drop events 2008-01-21 16:31:15 +01:00
Julien Danjou bfc7f3ce5d clean out some need_arrange uneeded 2008-01-21 16:31:15 +01:00
Julien Danjou 6e4d13c9dc add a new cache system for arrange()ing 2008-01-21 16:31:15 +01:00
Julien Danjou bda97fa36d drop EnterWindow events after a keypress 2008-01-21 16:31:15 +01:00
Julien Danjou 47ee745425 rewrite client_manage() 2008-01-21 16:31:14 +01:00
Nikos Ntarmos c36ef2797b check for subwindow
Fix FS#31

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-11 19:18:43 +01:00
Julien Danjou a28c052af2 drop EnterWindow events to keep focus 2008-01-11 16:48:11 +01:00
Julien Danjou 542df6a3ab do not try to guess where we should XSync(), XSync after bunch of XEvents 2008-01-11 16:17:15 +01:00
Nikos Ntarmos a245b2c033 restart on XRandR event
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-11 13:41:29 +01:00
Nikos Ntarmos 956ce4ab8e add nscreen var to store screen count
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-11 13:39:48 +01:00
Julien Danjou d09d3ccafd use ev->same_screen var 2008-01-11 12:01:59 +01:00
Julien Danjou 876377880d cosmetic 2008-01-11 12:01:51 +01:00
Julien Danjou df121e7c03 cache is already invalidated 2008-01-07 19:00:45 +01:00
Julien Danjou 6483b36389 only invalidate cache if client is urgent 2008-01-07 19:00:17 +01:00
Julien Danjou 5c9291ff0b use a cache system for status bar 2008-01-07 18:12:38 +01:00
Nikos Ntarmos db0be0ac57 partial support for mouse bindings on root window when window displayed 2008-01-07 10:06:04 +01:00
Julien Danjou 7fe4468254 last fix did not work as expected 2008-01-07 00:31:19 +01:00
Julien Danjou 81afe81b4e force windows to tile mode 2008-01-07 00:28:27 +01:00
Julien Danjou 7dd8e9dd5f try to fix SDL/OpenGL apps 2008-01-07 00:17:07 +01:00
Julien Danjou 7ad579898f simplify unmanage code 2008-01-06 21:57:53 +01:00
Julien Danjou 3badaee8c7 remove unused variable 2008-01-06 21:50:03 +01:00
Julien Danjou d99660e0b8 apply rules after configurerequest 2008-01-06 21:28:49 +01:00
Julien Danjou af708d2fbc Rewrite everything about client geoemtry, resize, etc. 2008-01-06 20:36:39 +01:00
Julien Danjou 7983a3196d simplify window_configure() args 2008-01-05 20:25:55 +01:00
Julien Danjou 4d756f84c3 send window_configure on configrequest for floating 2008-01-05 20:23:30 +01:00
Julien Danjou 163acc8624 use Area to store window geoms 2008-01-05 19:38:50 +01:00
Julien Danjou e833ab06d6 Revert "honor configrequest"
This reverts commit 1eebcd74cd.
2008-01-05 18:31:01 +01:00
Julien Danjou 1eebcd74cd honor configrequest 2008-01-05 18:05:27 +01:00
Julien Danjou bfab98d1d4 add support for y coords in clics 2008-01-05 12:51:40 +01:00
Julien Danjou a34d1bc583 fix comparisons 2008-01-05 12:01:09 +01:00