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
Julien Danjou
272f4b1c2a
Xft support
2007-10-01 19:22:57 +02:00
Julien Danjou
7fff452234
fix snap in Xinerama
2007-10-01 16:25:45 +02:00
Julien Danjou
8c531e2a81
store phys_screen
2007-10-01 15:23:05 +02:00
Julien Danjou
47ec01e571
Revert "fix bug in Xinerama when mouse is not in the same screen that mouse"
...
This reverts commit 845984fed0
.
2007-10-01 12:43:05 +02:00
Julien Danjou
845984fed0
fix bug in Xinerama when mouse is not in the same screen that mouse
2007-10-01 11:28:21 +02:00
Julien Danjou
659adaab5e
use get_real_screen() in a lot of places
2007-09-28 11:55:08 +02:00
Julien Danjou
8112ec2cca
introduce move_client_to_screen to move a client in a new screen and tag it with good tags
2007-09-28 11:30:51 +02:00
Julien Danjou
ed4f0c20fe
fix bug in mouseresize with Xinerama
2007-09-27 21:32:48 +02:00
Julien Danjou
11cbd79c62
make a lot of function in event and statusbar creation/handling Xinerama aware
2007-09-27 21:26:25 +02:00
Julien Danjou
bbb3a8cfbf
resize() now update client screen number in Xinerama
2007-09-27 20:19:36 +02:00
Julien Danjou
b76d5d6722
give good screen to manage()
2007-09-27 18:57:22 +02:00
Julien Danjou
491b5611c2
Fix screen detection in keypress for supporting Xinerama
2007-09-27 17:53:01 +02:00
Julien Danjou
bdd408cd6c
use get_screen_count instead of ScreenCount where needed
2007-09-27 17:13:31 +02:00
Julien Danjou
ca16334351
introduce get_xinerama_screen_bycoord(...)
...
this allows to retrieve the xinerama screen of a client with its coordinates
2007-09-27 17:13:30 +02:00
Julien Danjou
894b341feb
simplfiy drawstatus() remove screen useless arg
2007-09-24 16:23:49 +02:00
Julien Danjou
595eba78d7
create a Tag struct type and use it
2007-09-24 15:37:52 +02:00
Julien Danjou
1a276a7832
use sel to determine the right screen for current event instead of only XQueryPointer
2007-09-24 14:20:04 +02:00
Julien Danjou
2f43209c34
fix toggle floating with Button2 in tileleft layout, and prefix layout functions with layouts_
2007-09-20 22:07:59 +02:00
Julien Danjou
18e1369bb7
bug fix: fix bug when resizing with mouse
2007-09-19 11:19:43 +02:00
Julien Danjou
a8a814110c
fix the ultimate bug when restarting awesome, client misdisplayed
2007-09-19 00:03:54 +02:00
Julien Danjou
1cd4ba0086
stop using get_window_area* fct, and remove it
2007-09-18 23:16:27 +02:00
Julien Danjou
f56a26bac7
remove attribute unused, since it's used
2007-09-18 19:53:52 +02:00
Julien Danjou
79b140bc61
fix potential bug with movemouse
2007-09-18 19:53:52 +02:00
Julien Danjou
dcec6aa749
remove screen arg from uicb*
2007-09-18 19:53:52 +02:00
Julien Danjou
ef69814e29
simplify manage(), remove screen arg
2007-09-18 19:53:52 +02:00
Julien Danjou
30e7cf5b40
simplify arrange and restack
2007-09-18 19:53:46 +02:00
Julien Danjou
bf9601f79c
simplify focus, get screen from awesomeconf
2007-09-17 13:39:18 +02:00
Julien Danjou
8f8d603227
bug fix: move/resize with tiled windows
2007-09-16 17:28:42 +02:00
Julien Danjou
b3848afd88
allow tiled window to be resize/moved, setting them to the floating state
2007-09-16 15:55:37 +02:00
Julien Danjou
790fa25ed5
bug fix: wheel on root was infinite looping
...
I got you fucking bug!
2007-09-16 15:04:40 +02:00
Julien Danjou
43f96f7286
cosmetic
2007-09-16 14:56:46 +02:00
Julien Danjou
79a3659f72
remove DefaultScreen ; don't know if it's good, hoping
2007-09-16 14:56:40 +02:00
Julien Danjou
0539eaa4b0
is_visible check for screen
2007-09-16 14:56:08 +02:00
Julien Danjou
6ad0a0ba66
misplaced return
2007-09-16 14:56:08 +02:00
Julien Danjou
afc90f2224
fix some bug (typo ?) with event handling in multihead
2007-09-16 14:56:08 +02:00
Julien Danjou
1ca3c565ee
enhance multihead support, with N conf/dc
2007-09-16 14:56:08 +02:00
Julien Danjou
c82a3ea39b
don't grab keys if we don't know them
2007-09-16 14:55:16 +02:00
Julien Danjou
5e0cec002a
execute command where the mouse is, not where sel is
2007-09-16 01:56:16 +02:00
Julien Danjou
933b0413ea
add screen arg to uicb*
2007-09-16 01:05:43 +02:00
Julien Danjou
94824d2314
remove another DefaultRootWindow
2007-09-16 00:17:05 +02:00
Julien Danjou
024fba4649
remove some Default{Root,Screen} from event handlers
2007-09-16 00:11:10 +02:00
Julien Danjou
cd2c1657f5
remove Default* where possible
2007-09-15 23:29:38 +02:00
Julien Danjou
e91de5bfb9
restack and arrange take screen as arg
2007-09-15 23:17:59 +02:00
Julien Danjou
e4e8a2966f
get_display_info take screen and screen is stored in statusbar struct
2007-09-15 23:04:04 +02:00