Commit Graph

347 Commits

Author SHA1 Message Date
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
Julien Danjou 3018282169 use switch instead of if/elseif/else 2008-01-05 11:57:24 +01:00
Julien Danjou 6ca7d7b2db use Area in Widget 2008-01-04 21:46:25 +01:00
Julien Danjou af6ff367eb typedef enum Position 2008-01-04 19:12:07 +01:00
Julien Danjou d25d5b921f add sloppy_focus option to allow click-to-focus 2008-01-04 14:40:26 +01:00
Julien Danjou e3de02d2ce optimize if statements 2008-01-04 13:04:15 +01:00
Julien Danjou 10c257d57a get rid of Client phys_screen 2008-01-02 19:26:55 +01:00
Julien Danjou 437bc5c22c add 2008 copyright notice 2008-01-02 16:59:43 +01:00
Julien Danjou 4f65aa8f51 rework headers inclusion 2008-01-01 18:02:36 +01:00
Julien Danjou 909f92d500 replace UICB_PROTO macro by a typedef 2008-01-01 17:25:48 +01:00
Julien Danjou f7f6951957 allow to have several statusbar 2007-12-30 21:00:34 +01:00
Julien Danjou 6f4dec78ff remove Display as arg from window_*() fcts 2007-12-30 15:24:51 +01:00
Julien Danjou 0df27e0f6a split the display part of statusbar_draw(), move it to new statusbar_display(), and call it for expose events 2007-12-30 13:17:26 +01:00
Julien Danjou 1021f86e24 rework draw stuff
- remove display from DrawCtx
- add Drawable in statusbar
2007-12-30 12:26:11 +01:00
Julien Danjou 8c36b49f7f add support for _NET_WM_WINDOW_TYPE_DOCK 2007-12-28 21:26:02 +01:00
Julien Danjou 169e658a18 handle configure request for windows we don't handle 2007-12-28 20:27:56 +01:00
Julien Danjou f37c71c162 add support for _NET_WM_STATE_FULLSCREEN
This commit also drop the handle_event_configurerequest() because it seems
totally unuseful now. This can cause problem, and if so, report it.
2007-12-28 18:31:31 +01:00
Julien Danjou f93a441da7 remove Display from Client struct 2007-12-27 23:10:43 +01:00
Julien Danjou 87fce96644 add support for NET_CLOSE_WINDOW 2007-12-27 20:49:38 +01:00
Julien Danjou c900e37843 add mouse bindings to status bar 2007-12-27 15:49:00 +01:00
Julien Danjou 0d75586ed5 fix p_delete 2007-12-27 14:21:26 +01:00
Julien Danjou 7099794c64 switch to get_current_tags() in event.c 2007-12-27 13:14:20 +01:00
Julien Danjou d5d9439777 add support for Urgency hint 2007-12-23 15:16:10 +01:00
Aldo Cortesi 5f079ef73e Clean get_screen_info and get_display_info.
Besides making these functions much nicer to use, this fixes a number of
things:

- Clients now don't have to free the returned structures.

- The ScreenInfo allocated by XineramaQueryScreens should be freed with XFree,
  not p_delete.

This patch also introduces an abstract Area type that will be very useful.
2007-12-23 09:53:50 +01:00
Aldo Cortesi 51379e065b Clean interface of statusbar_update_position. 2007-12-23 09:51:44 +01:00
Aldo Cortesi 7190e4fa48 Change awesome_config -> AwesomeConf.
All other struct definitions in the project follow this naming convention.
2007-12-19 10:43:02 +01:00
Aldo Cortesi ce556ec743 The preferred line length is 80 characters. 2007-12-18 11:27:26 +01:00
Aldo Cortesi 965cbb7e0b Continue to simplify interfaces that require arguments in globalconf.
Today I focus on screen.c.
2007-12-18 11:26:39 +01:00
Aldo Cortesi 205f2c55ca Make "Statusbar statusbar" the in VirtScreen "Statusbar *statusbar". This is
more consistent with the rest of the interface, and will make our life easier
when we have mulitiple statusbars per screen.
2007-12-18 11:26:18 +01:00
Nikos Ntarmos 395c0ba6d7 mouse button press on the statusbar causes segfault
The tags member of screen is no longer an array but a linked list, thus
tags[0] (used in config.c) is ok since tags points to the first tag
struct, but tags[i], i>0 is wrong. There is one such use in
handle_event_buttonpress, causing awesome to segfault when pressing with
the mouse on the statusbar. The attached patch fixes this.
2007-12-17 07:35:08 +01:00
Aldo Cortesi 2f74c079aa Massive, massive interface refactoring.
The big change here is that we now keep our configuration structure in a global
variable called globalconf. This radically simplifies many interfaces, since
passing awesomeconf everywhere is no longer necessary. There are also more
subtle interface effects - now we can reliably identify a screen from just a
screen ID, rather than an awesomeconf, screenid tuple.

Overall, this patch makes most of the interfaces in awesome much nicer to use -
enjoy!

Yes, this is a huge patch, but since a lot of the refactoring was done
systematically using vim macros, splitting this up would have been very hard.
2007-12-16 12:12:48 +01:00
Aldo Cortesi f36a56cdcc Refactor draw.c
This is a big patch that does not change any behaviour. We abstract the data
needed by the draw.c functions into a context object, and pass that around
instead of passing each argument every time. This results in a much cleaner API
- most functions lose 3-4 arguments.

This is a preparatory patch for further work on statusbar.
2007-12-15 09:30:29 +01:00
Julien Danjou df2a8e1b1d add a focus history 2007-12-14 21:51:54 +01:00
Julien Danjou aacb020564 rename statusbar functions 2007-12-14 20:10:52 +01:00
Julien Danjou bb1381abc2 make tags a linked list instead of array 2007-12-14 19:05:30 +01:00
Julien Danjou 213c839597 prefix some client functions with client 2007-12-14 16:05:10 +01:00
Aldo Cortesi 2b5ba1f16f Improve the call signature of get_current_tag and get_current_layout. 2007-12-14 09:29:42 +01:00
Julien Danjou 5fa67c23df split awesomeconf and screen config
a.k.a the big post-2.0 blind commit
2007-12-11 20:56:51 +01:00
Nikos Ntarmos 3931061646 GTK+ combo box goes lower 2007-12-03 10:00:31 +01:00
Nathan Hüsken 9524f15478 Adding padding 2007-11-28 11:00:48 +01:00
Nikos Ntarmos 355dc7d556 fix rules handling in configurequest events 2007-11-27 16:48:06 +01:00
Nikos Ntarmos 3a6cd243e4 fix reloadconfig segmentation fault
needed because keys arrays is freed so we can't access it again
2007-11-15 17:20:22 +01:00
Julien Danjou f3102efc39 retag window on configurerequest 2007-11-15 15:43:58 +01:00
Julien Danjou e50041ab10 also update rcoords on configure request 2007-11-15 15:14:40 +01:00
Julien Danjou dd2c511181 move_client_to_screen() implies tag_client_with_current_selected() 2007-11-15 14:49:08 +01:00
Julien Danjou d2e297bfa6 fix bug with configure request windows
I KILLED TEH MPLAYER BUG 11!11
2007-11-14 21:30:08 +01:00
Julien Danjou 7a919a76fb mouse button clicks on windows are now configurable 2007-11-14 17:18:16 +01:00
Julien Danjou cfa31c399d introduce mouse.[ch] files and move uicb_mouse*() to them 2007-11-13 22:57:57 +01:00
Julien Danjou 0c5c5ce426 remove nkeys: keys is now a linked list 2007-11-12 17:22:40 +01:00
Julien Danjou f3d0ada5df fix awesomeconf struct handling in resizemouse() and movemouse(), fix bug on Xinerama 2007-11-12 14:51:51 +01:00
Julien Danjou 38e6a309cb use CLEANMASK() where we should 2007-11-12 14:22:44 +01:00
Julien Danjou 69c235280d resizemouse() is now an uicb function 2007-11-12 14:06:59 +01:00
Julien Danjou f72c1bb54c movemouse() is now an uicb function 2007-11-12 14:02:52 +01:00
Julien Danjou ef7034b0b8 use linked list instead of tabs for mouse bindings 2007-11-12 13:21:28 +01:00
Julien Danjou 05e102a49a mouse clicks on root window are now configurable 2007-11-12 10:55:21 +01:00
Julien Danjou 939d9eb149 fix indentation 2007-11-12 09:59:54 +01:00
Julien Danjou f05a695dba Simplify a bit this code 2007-11-12 09:58:04 +01:00
Julien Danjou dcdbd06e56 handle mouse button event on statusbar if position is right/left 2007-11-11 22:56:59 +01:00
Julien Danjou 0753ed5fb5 statusbar drawable is no more stored but dynamicaly created; this fix a problem with statusbar on right 2007-11-11 22:27:00 +01:00
Julien Danjou 95938f8fef factorize mouse button press event handling for status bar 2007-11-11 16:33:59 +01:00
Julien Danjou 0bee56e27d mouse buttons are now configurable for click on layout symbols 2007-11-11 16:01:49 +01:00
Julien Danjou 99370f0ccd mouse buttons are now configurable for click on title bar 2007-11-11 15:55:13 +01:00
Julien Danjou a75c7f694a mouse buttons are now configurable for click on tag names 2007-11-11 15:40:01 +01:00
Julien Danjou 8b048ec6fe tags uicb function does not take arg name anymore, but tag index number 2007-11-11 11:30:07 +01:00
Julien Danjou 101e1783d8 Also use dummy arg to togglefloating for mouseresizing 2007-11-10 10:13:10 +01:00
Nikos Ntarmos 360f96b5fd stop centering mouse on move, just keep current coords 2007-11-09 19:22:42 +01:00
Nikos Ntarmos ae406f51dc Map new clients on the screen where the mouse pointer is
I was having this annoying issue with multi-head setups on d9b49f5,
where new clients would always get mapped to the same screen (leftmost).
It seems that the x and y coordinate in the XWindowAttributes of new
clients are set to 0,0. The attached patch ignores these values and uses
the coordinates of the mouse pointer instead.
2007-11-08 11:38:18 +01:00
Julien Danjou eabbd371a5 events: warp and center in window pointer when moving with mouse 2007-10-31 14:27:28 +01:00
Julien Danjou d64d353d5b fix mouse wheel on root window for Xinerama 2007-10-29 20:21:13 +01:00
Julien Danjou 14e8c82a8a fix max() size restore, introduce volatile option to resize() 2007-10-29 15:24:10 +01:00
Julien Danjou 001f430c0c remove global client_sel, use tag's client_sel 2007-10-26 23:19:13 +02:00
Julien Danjou f330cb303c rename manage() and unmanage() to client_*() 2007-10-26 19:51:20 +02:00
Julien Danjou d24413a75d rename resize() to client_resize() 2007-10-26 19:51:20 +02:00
Julien Danjou e646072312 move grabbuttons to window functions 2007-10-26 19:51:20 +02:00
Julien Danjou 47a878e4cd move set_shape in client.c to window_setshape in window.c 2007-10-26 19:51:20 +02:00
Julien Danjou ddf64e9db2 grab some window function from client.c and move them in window.c 2007-10-26 18:23:15 +02:00
Julien Danjou e47e1a4a23 remove unmapped attribute
this fix a bug when fast-switching between tags and dropping
some windows management as we should not.
Use window_getstate() (moved from awesome.c's getstate()) instead.
2007-10-23 16:32:55 +02:00
Julien Danjou f379de70ce Remove disp arg to manage(), add comments to manage() and rename setclienttrans to window_settrans 2007-10-22 16:25:27 +02:00
Julien Danjou cabfc67b87 rename configure() as window_configure() and passes info as args 2007-10-17 17:29:21 +02:00
Julien Danjou 2e832c8186 get_client_bywin() only need a single pointer, not a double 2007-10-17 17:09:26 +02:00
Julien Danjou 1080180320 move get_client_bywin in client.c 2007-10-16 22:40:02 +02:00
Julien Danjou 842eed01c0 remove current_layout, insert get_current_layout() to get it dynamicly 2007-10-16 22:33:15 +02:00
Nikos Ntarmos 7ecbae334f use Cairo to render fonts 2007-10-16 16:35:28 +02:00
Nikos Ntarmos 9360efb89e fix click-to-raise feature 2007-10-16 12:27:31 +02:00
Julien Danjou fefa16611a restack does not need Display as arg 2007-10-15 18:28:07 +02:00
Julien Danjou 0026bd3813 focus does not need Display as arg 2007-10-15 18:25:29 +02:00
Julien Danjou ccb7e89750 arrange() does not need Display as arg 2007-10-15 18:23:05 +02:00
Julien Danjou 17bc4dc9a7 drawstatusbar does not need display as arg 2007-10-15 18:19:33 +02:00
Julien Danjou 5b130bd18d grabkeys does not need display/screen as arg 2007-10-15 18:17:33 +02:00
Julien Danjou 14ea2dc0ae minimal tab support 2007-10-15 16:28:36 +02:00
Julien Danjou fa98171d0b fix memory leak in movemouse() 2007-10-15 16:28:36 +02:00
Julien Danjou a74ca1d1de tabswidth is 4 not 6 2007-10-15 13:56:24 +02:00
Julien Danjou 4e0acfa99a add coding style stuff 2007-10-15 13:40:52 +02:00
Julien Danjou 7ca3bd32bb fix regression with mousewheel on statusbar 2007-10-12 14:36:36 +02:00
Julien Danjou 067b15bf7c new windows will be assigned to the current screen 2007-10-12 10:49:03 +02:00
Julien Danjou 863714f501 use p_delete instead of XFree for our own pointers 2007-10-11 23:44:35 +02:00
Julien Danjou c4e130d7d9 remove Display as param for uicb 2007-10-11 23:32:29 +02:00
Julien Danjou c3986a5937 sel is no more extern 2007-10-11 23:12:05 +02:00
Julien Danjou 12ef66b79a clients list is no more global 2007-10-11 21:50:32 +02:00
Julien Danjou 3c6e7fa6de cosmetic, fix indentations 2007-10-11 15:23:33 +02:00
Julien Danjou 4f1940d94f only focus if new entered windows in != than currently focused 2007-10-11 11:41:40 +02:00
Julien Danjou c05ed01c1a bugfix: only catch first click to raise if we're floating 2007-10-11 11:33:40 +02:00
Nikos Ntarmos 8401eee5f5 Implementing a click-to-raise feature
When in floating mode or in floating layout the only way to bring one
window on top of another seems to be a focus switch through
focusnext/focusprev. The following patch implements a click-to-raise
feature.
2007-10-11 10:34:16 +02:00
Julien Danjou 9b05a2b21f bugfix: handle correctly event while mouse moving/resizing 2007-10-11 10:28:43 +02:00