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
Julien Danjou
f46aeb4cd5
cosmetic: wrong indenting
2007-10-10 21:48:31 +02:00
Julien Danjou
a04ce1f4ef
bugfix: fix wrong cursor in mouseresize
2007-10-10 18:21:48 +02:00
Julien Danjou
9aa1621943
bugfix: wrong cursor in move window
2007-10-10 18:19:57 +02:00
Julien Danjou
e733af41ec
remove drawcontext everywhere
2007-10-10 14:09:36 +02:00
Julien Danjou
f57d275df1
move font to awesomeconf
2007-10-10 13:34:25 +02:00
Julien Danjou
2d0526696c
move cursors in awesome config
2007-10-10 13:29:46 +02:00
daniel@brinkers.de
ec6525883e
opacity change by mousewheel
2007-10-10 09:58:42 +02:00
Julien Danjou
9ec4e30a85
new feature: mouse wheel on layout symbol switch to prev/next
2007-10-05 13:51:19 +02:00
Julien Danjou
ca35643a5d
new feature: mouse wheel on statusbar do focus{next,prev}
2007-10-05 12:08:20 +02:00
Julien Danjou
eb414ce447
compute x one time only
2007-10-05 12:01:32 +02:00
Julien Danjou
b00f9ab1f6
new feature: add mouse wheel support on tags name
2007-10-05 10:53:39 +02:00
Julien Danjou
99ef84e621
bugfix: don't do stuff RootWindow() with non existent screen (Xinerama)
2007-10-03 20:58:00 +02:00
Julien Danjou
97a2085705
cosmetic: remove lines with empty spaces at end
2007-10-03 17:26:14 +02:00
Julien Danjou
e1318b53c2
bugfix: mouse wheel on root window works in Xinerama too
2007-10-03 17:17:46 +02:00
Julien Danjou
2db2dfdc7c
bugfix: snap windows to statusbar, not screen edges
2007-10-03 16:14:48 +02:00
Julien Danjou
4c4fb83e81
new feature: uicb_setlayout can no go backward ; binding Button3 click on layout symbol statusbar for reverse layout switching
2007-10-02 14:22:51 +02:00
Julien Danjou
950605b1a0
simplify get_screen_info()
2007-10-01 20:58:29 +02:00