Commit Graph

223 Commits

Author SHA1 Message Date
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