Commit Graph

530 Commits

Author SHA1 Message Date
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
Julien Danjou 53e5630c6c add screen to drawstatusbar 2007-09-15 22:57:37 +02:00
Julien Danjou 3cc29b0250 add screen args to focus() 2007-09-15 22:51:09 +02:00
Julien Danjou bf4007eef5 add screen args to grabkeys() 2007-09-15 22:45:08 +02:00
Julien Danjou c02be2ab82 store screen of client, first step to multi head support 2007-09-15 22:36:23 +02:00
Julien Danjou 56a387ec5c move updatebarpos to statusbar.c 2007-09-15 15:26:51 +02:00
Julien Danjou fe89aa31b0 create statusbar.c and move things from draw.c 2007-09-15 15:16:53 +02:00
Julien Danjou 6a11f10764 move drawable to statusbar struct 2007-09-15 14:58:41 +02:00
Julien Danjou 01b2785587 rename drawstatus to drawstatusbar 2007-09-15 13:54:02 +02:00
Julien Danjou fda58db5f6 stop using deprecated get_windows_area*() 2007-09-14 12:01:39 +02:00
Julien Danjou b509d5cbcf add support for XRandR 2007-09-13 16:00:23 +02:00
Julien Danjou c8abcf33fb add XShape support 2007-09-13 15:58:08 +02:00
Julien Danjou c96d88975f move cursor in DC 2007-09-12 18:16:20 +02:00
Julien Danjou 2c6a71f358 add DC to uicb_*() args 2007-09-12 18:11:27 +02:00
Julien Danjou de3fdc02d8 add DC to arrange() 2007-09-12 17:00:33 +02:00
Julien Danjou 9897e5a839 remove DC from global in draw.c 2007-09-12 16:55:47 +02:00
Julien Danjou d6c63bd086 remove wa(x,y,h,w) from global vars, add functions to compute them 2007-09-12 16:03:42 +02:00
Julien Danjou 7659289b9e chance license to GPLv2 2007-09-12 14:29:51 +02:00
Julien Danjou ca137b1582 cosmetic and remove usless default/break 2007-09-11 18:23:29 +02:00
Julien Danjou 2677cc3515 cosmectic, move x in if block 2007-09-11 17:51:48 +02:00
Julien Danjou 9223e8c0b8 Revert "remove unmapped attribute"
This reverts commit 10e324ad0b.
2007-09-11 15:55:34 +02:00
Julien Danjou 10e324ad0b remove unmapped attribute 2007-09-11 14:56:24 +02:00
Julien Danjou 9f56ade4e9 use more safe functions and update #inlcude 2007-09-11 14:00:49 +02:00
Julien Danjou fc686750eb move some netatom back but only in setup() 2007-09-10 16:55:33 +02:00
Julien Danjou c95c4173a6 remove NetWMName 2007-09-10 16:49:54 +02:00
Julien Danjou 6f528063be rename jdwm to awesome 2007-09-10 12:06:54 +02:00
Julien Danjou 20a599c07e move barwin to Statusbar 2007-09-07 17:29:36 +02:00
Julien Danjou 80c119a873 remove global var screen, compute it 2007-09-07 17:25:10 +02:00
Julien Danjou 8db67dca7c remove sw/sh, calculate each time 2007-09-07 17:19:03 +02:00
Julien Danjou d61ca0da62 move bpos to Statusbar struct and change name of default_statubar_position in jdwmconf 2007-09-07 16:35:46 +02:00
Julien Danjou a6a705dd85 remove global bh/blw and add a Statusbar type 2007-09-07 16:13:59 +02:00
Julien Danjou a9d1f4a37d remove global selscreen variable and remove unused vars from setup() 2007-09-07 12:53:30 +02:00
Julien Danjou 1d25e8897a set *handler as local to main, not global/extern, and set handler functions no-static 2007-09-07 12:29:54 +02:00
Julien Danjou e5f2ed3f22 remove extern seltags, put it in jdwmconf 2007-09-06 19:05:26 +02:00
Julien Danjou 9ab236d500 rename handler functions 2007-09-05 22:46:18 +02:00
Julien Danjou 24e15433b7 remove bpos from global var, added in jdwmconf 2007-09-05 20:39:11 +02:00
Julien Danjou f7173bd79d first import 2007-09-05 20:15:00 +02:00