Commit Graph

433 Commits

Author SHA1 Message Date
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
Aldo Cortesi d5fd96dbd2 Refactor the focus.c interface to use globalconf. 2007-12-17 18:21:42 +01:00
Aldo Cortesi b6bfd1a4d0 The arg to uicb_ functions is no longer const. 2007-12-17 18:19:44 +01:00
Aldo Cortesi 6e8b1383fe Various doc comment fixes. 2007-12-16 12:13:07 +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
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 e53b941679 rename loadprops to client_loadprops 2007-12-14 19:06:03 +01:00
Julien Danjou bb1381abc2 make tags a linked list instead of array 2007-12-14 19:05:30 +01:00
Julien Danjou 781ebc8882 move tag_client_with_rules() from client.c to tag.c 2007-12-14 16:40:08 +01:00
Julien Danjou 3a4fbce6f9 rename isvisible() to client_isvisible() and move it in client.c 2007-12-14 16:38:12 +01:00
Julien Danjou 687b648c1b fix some includes and add copyright 2007-12-14 16:15:40 +01:00
Julien Danjou 213c839597 prefix some client functions with client 2007-12-14 16:05:10 +01:00
Julien Danjou 37a7116c92 we should reset client_sel on untag 2007-12-14 16:01:01 +01:00
Julien Danjou d197014d71 untag client on unmanage 2007-12-14 15:58:09 +01:00
Julien Danjou 14809f80e4 remove useless client_reattach_after() 2007-12-14 14:51:58 +01:00
Julien Danjou 078d224b46 use a linked list for handling tag <-> client relationship 2007-12-14 14:29:32 +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
Aldo Cortesi dcff13a5e7 Comment typos. 2007-12-14 08:47:21 +01:00
Julien Danjou 5f811b1cf2 use VirtScreen arg for tag_client_with_current_selected() 2007-12-13 10:46:32 +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
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 ac188235ed Split x-related util functions to a separate xutil.{c,h} file pair.
Hi there.

awesome-client is now linked against the whole hog of x-related libs
that awesome depends on. These get pulled in by awesome-client using the
same LDFLAGS as awesome. Removing x-related libs from the LDFLAGS for
awesome-client is only half of the story, as it also depends on util.c
which now has a couple of x-related functions. The attached patch also
splits these functions into a separate xutil.{c,h} file pair and teaches
the rest of the files to use them. Apart from the small difference in
file size (I see a 3-3.5% decrease in file size, both for a stripped and
a non-stripped awesome-client binary), this should also somewhat reduce
the startup time (since awesome-client won't have to map all of these
libraries).

Cheers...

\n\n
2007-11-19 20:45:21 +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 aa4de56ef5 simplify client_manage() 2007-11-15 14:44:43 +01:00
Julien Danjou 455ef2e1d7 rename uicb_swap{prev,next} to uicb_client_swap{prev,next} 2007-11-14 18:07:35 +01:00
Julien Danjou 8b933e196b rename uicb_settrans to uicb_client_settrans 2007-11-14 17:52:49 +01:00
Julien Danjou b594731fc2 rename uicb_moveresize to uicb_client_moveresize 2007-11-14 17:51:22 +01:00
Julien Danjou c5ee95992c rename uicb_killclient to uicb_client_kill 2007-11-14 17:50:16 +01:00
Julien Danjou 7a919a76fb mouse button clicks on windows are now configurable 2007-11-14 17:18:16 +01:00
Julien Danjou 88b6f17410 bugfix: initialize matched to False, damn it 2007-11-14 12:12:30 +01:00
Julien Danjou 5c5e9418d7 don't forget to retag windows on screen changes 2007-11-14 11:11:04 +01:00
Julien Danjou adf437c0e3 use tag_client_with_current_selected() instead of our own loop and set -O2 or mplayer fails 2007-11-14 10:42:28 +01:00
Julien Danjou 0779473a30 fix problem with mplayer 2007-11-14 10:34:02 +01:00
Julien Danjou 98c869c8f3 remove garbage printf() 2007-11-13 23:00:11 +01:00
Julien Danjou 0acaae11d9 stop using applyrules() and do some stuff ourselves 2007-11-13 22:41:56 +01:00
Julien Danjou 06dc3ba221 add new rules.c file with new functions for using Rule-s struct 2007-11-13 21:41:57 +01:00
Julien Danjou adcadddc46 define RULE_NOSCREEN -1 2007-11-12 19:35:31 +01:00
Julien Danjou f70424487e screen can now be specified in rules 2007-11-12 18:21:03 +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
Nikos Ntarmos 0f840d2eec Sanitize screen changes - take 2
I was looking back at this issue and realized that it is possible for
one of the x,y coordinates to be negative and yet a screen change must
be performed. This may happen when a window is moving with its
upper-left corner outside the upper part of the screen, and it crosses
the x-axis boundary between two consecutive screens.
2007-11-10 17:59:33 +01:00
Julien Danjou 1004cefa2f Remove current tab support
We will add a real new one later.
2007-11-10 10:45:32 +01:00
Julien Danjou 6ef4b8e741 really update coords on resize 2007-11-10 10:12:50 +01:00
Nikos Ntarmos e2452fa62a Sanitize screen changes
Whith Xinerama active a client that moves outside the upper-left screen
boundary is erroneously changing screens. The attached patch changes
this behavior so that a client may change screen only when its new
coordinates are positive. The assumption is that the client can't fall
off the lower-right boundary since the mouse pointer can't go there when
moving. However, the upper-left corner of a window (which is the point
we use to compute the client's scren) can move more to the left or up
than the upper-left corner of the screen (coords 0,0) thus becoming
negative.
2007-11-09 19:25:31 +01:00
Nikos Ntarmos 360f96b5fd stop centering mouse on move, just keep current coords 2007-11-09 19:22:42 +01:00
Nikos Ntarmos 96350151b9 Fix issue with multiple clients having focused border on same tag
It so happens that when two clients are fired up one after the other on
the same tag, they both get a 'focused'-type border. A bisect sequence
showed that the culprit was commit 001f430. I think that it all boils
down to client_manage just setting tag->client_sel and hoping for
arrange(...) to do the Right Thing (TM). The attached patch uses
focus(...) instead.
2007-11-08 11:31:37 +01:00
Nikos Ntarmos 983d2d72a6 implement uicb_reloadconfig 2007-10-31 11:37:38 +01:00
Julien Danjou 14e8c82a8a fix max() size restore, introduce volatile option to resize() 2007-10-29 15:24:10 +01:00
Julien Danjou bd20a965f3 update client coords on manage() to set them on the right screen in Xinerama 2007-10-27 22:54:34 +02:00
Julien Danjou ddfc087c99 also saves real coords in floating layout 2007-10-27 09:02:48 +02:00
Julien Danjou 001f430c0c remove global client_sel, use tag's client_sel 2007-10-26 23:19:13 +02:00
Julien Danjou 9d507dc50c rewrite get_current_tag_number() in get_current_tag() 2007-10-26 22:15:26 +02:00
Julien Danjou c817b07d9a rename ban() and unban() to client_*() 2007-10-26 19:51:20 +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 bd0dc10842 compute c->screen correctly 2007-10-26 18:42:05 +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
Nikos Ntarmos 4db1146f6c Remember the focused window on tag changes
a. Adds a get_current_tag_number function to allow for above updates
and teaches get_current_layout(...) and arrange(...) to use it.
b. Adds an extra client_sel entry in struct Tag, updated on
focus(...), manage(...), and unmanage(...), and used in arrange(...).
2007-10-25 20:20:13 +02:00
Julien Danjou dd5387e25e bugfix: do not assume 0,0 is the screen coords, for god sake 2007-10-25 18:52:28 +02:00
Julien Danjou 530a6ef104 bugfix: save rx/ry/rw/rh when resizing a floating window 2007-10-25 13:57:02 +02:00
Julien Danjou 702d85b4d2 do not use c->screen but awesomeconf->screen in si 2007-10-24 12:35:53 +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 9b60eb3d06 bugfix: set rx correctly 2007-10-22 17:01:25 +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 71b7860ba3 cosmetic and documente Bool-s attribute in Client 2007-10-22 11:21:27 +02:00
MATSUU Takuto b1dcf6c71b set{nmaster,ncol,mwfact,moveresize} to work
From 842eed01c0, setnmaster, setncol,
setmwfact and setmoveresize don't work fine.
2007-10-22 09:56:33 +02:00
Julien Danjou 03681846fa remove useless isbanned attribute on Client 2007-10-19 15:42:48 +02:00
Julien Danjou 7a921fbc5e remove ftview attribute 2007-10-19 15:41:20 +02:00
Julien Danjou 25d12961a8 rename setclientstate to window_setstate and change args for isprotodel() 2007-10-19 15:36:41 +02:00
Julien Danjou f957a0e0b5 cosmetic remove useless {} 2007-10-19 15:31:30 +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 02c07a8e11 move tabbed windows collapsed in **clients list, so focusing next/prev will be nicer 2007-10-17 15:09:59 +02:00
Julien Danjou e7da450d3c client_attach and detach are together <3 2007-10-17 12:12:40 +02:00
Julien Danjou 8a1633ccbe rename and document client_attach/detach 2007-10-17 12:10:17 +02:00
Julien Danjou b59df01d6c document get_client_bywin 2007-10-17 11:49:54 +02:00
Julien Danjou cffeb9a22c use get_client_bywin in manage() 2007-10-16 22:43:03 +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 9360efb89e fix click-to-raise feature 2007-10-16 12:27:31 +02:00
Julien Danjou 00ddb9d398 bugfix: restore focus after swapprev/next 2007-10-15 21:17:32 +02:00
Julien Danjou 035bf83f59 untab on unmanage 2007-10-15 20:23:54 +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 8cd37bedf5 cosmetic 2007-10-15 18:06:47 +02:00
Julien Danjou b1e22e1d8b cosmetic 2007-10-15 17:33:28 +02:00
Julien Danjou 0339b6f64b fix refresh of colborders 2007-10-15 16:57:54 +02:00
Julien Danjou 14ea2dc0ae minimal tab support 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 b89779677e remove snext from Client struct 2007-10-12 11:43:07 +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 0899432059 remove stack 2007-10-11 23:17:12 +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 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 e733af41ec remove drawcontext everywhere 2007-10-10 14:09:36 +02:00
Julien Danjou 1a755ff245 simplify color handling 2007-10-10 13:07:12 +02:00
daniel@brinkers.de ec6525883e opacity change by mousewheel 2007-10-10 09:58:42 +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 067861a942 bugfix: don't put new clients on top without computing statusbar position 2007-10-03 16:18:45 +02:00
Julien Danjou 7e1be2be50 document detach function 2007-10-03 00:13:09 +02:00
Julien Danjou 950605b1a0 simplify get_screen_info() 2007-10-01 20:58:29 +02:00
Julien Danjou 2ea22c721c set inline in header file 2007-10-01 20:44:02 +02:00
Julien Danjou f1ef5c2ddd move uicb_ to end of file 2007-10-01 20:42:59 +02:00
Julien Danjou 7204cbdc46 restore fullscreen support on Xinerama 2007-10-01 16:43:01 +02:00
Julien Danjou 8c531e2a81 store phys_screen 2007-10-01 15:23:05 +02:00
Julien Danjou bdeb1eaca4 free ScreenInfo unconditionnally 2007-10-01 14:25:56 +02:00
Julien Danjou 3e385c3bea use real_screen in grabbuttons(), fix Xinerama support 2007-09-29 13:09:45 +02:00
Julien Danjou 7beabd32d3 enhance windows screen moving when windows are floating 2007-09-28 16:40:20 +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 2680d34a64 make manage() more Xinerama efficient 2007-09-27 21:22:01 +02:00
Julien Danjou bbb3a8cfbf resize() now update client screen number in Xinerama 2007-09-27 20:19:36 +02:00
Julien Danjou 783a10f146 cosmetic 2007-09-27 18:57:03 +02:00
Julien Danjou b4cc86abf0 make moveresize work with +/- as others 2007-09-27 12:30:18 +02:00
Julien Danjou a22b4c1008 new feature: add swap{next,prev} for reordering visible windows 2007-09-25 12:41:36 +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 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 6d97fc8292 update documentation 2007-09-20 21:27: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 9919ba2d4b add uicb_setborder to change conf borderpx while running 2007-09-18 23:36: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 0539eaa4b0 is_visible check for screen 2007-09-16 14:56:08 +02:00
Julien Danjou 933b0413ea add screen arg to uicb* 2007-09-16 01:05:43 +02:00
Julien Danjou 969b38c63d remove DefaultRootWindow from grabbuttons, use c->screen to grab real RootWindow 2007-09-15 23:21:04 +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 c02be2ab82 store screen of client, first step to multi head support 2007-09-15 22:36:23 +02:00
Julien Danjou 9cdc7c3ef9 fix vlc bug 2007-09-15 20:24:40 +02:00
Julien Danjou fe89aa31b0 create statusbar.c and move things from draw.c 2007-09-15 15:16:53 +02:00
Julien Danjou 01b2785587 rename drawstatus to drawstatusbar 2007-09-15 13:54:02 +02:00
Julien Danjou 4488708feb use compute function in settrans() 2007-09-14 13:50:46 +02:00
Julien Danjou 59c870db3e add get_display_info function to screen.c and use it for getting windows_area geom 2007-09-14 11:55:56 +02:00
Julien Danjou c8abcf33fb add XShape support 2007-09-13 15:58:08 +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 28df49c3cb rename gettextprop to xgettextprop and move it to util.c 2007-09-12 15:01:35 +02:00
Julien Danjou 2d63bf2825 typo 2007-09-12 14:31:19 +02:00
Julien Danjou 7659289b9e chance license to GPLv2 2007-09-12 14:29:51 +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 cf3135b6cf documentation and simplify uicb_settrans 2007-09-11 13:14:43 +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 a6a91757c1 remove wmatom 2007-09-10 16:48:00 +02:00
Julien Danjou 56b92a20b4 remove WMState 2007-09-10 16:47:20 +02:00
Julien Danjou 9485e7305c remove WMName 2007-09-10 16:45:42 +02:00
Julien Danjou 58dac78b87 remove WMProtocols 2007-09-10 16:44:23 +02:00
Julien Danjou deadd850ae remove WMDelete 2007-09-10 16:43:20 +02:00
Julien Danjou baa1e422fe rename last jdwm to awesome and make config a little more robust 2007-09-10 16:11:57 +02:00
Julien Danjou 6f528063be rename jdwm to awesome 2007-09-10 12:06:54 +02:00
Julien Danjou 2de4fd3fec remove sx and sy since they are always 0, LOL 2007-09-07 17:36:21 +02:00
Julien Danjou 8db67dca7c remove sw/sh, calculate each time 2007-09-07 17:19:03 +02:00
Julien Danjou c3d2e56ef1 remove jdwmprops as global var, replaced by a macro 2007-09-07 16:46:46 +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 a4449818f3 remove useless string.h inclusion 2007-09-07 11:48:30 +02:00
Julien Danjou 7fd29e4bad make prop saveprops() dynamicly allocated too 2007-09-07 11:18:27 +02:00
Julien Danjou 75bb6ee238 bug fix, size of prop was not good 2007-09-07 00:09:56 +02:00
Julien Danjou aa4177c2b1 make loadprops more dynamic 2007-09-06 23:48:18 +02:00
Julien Danjou 6dcccd7a5a Rework settrans
- set setclienttrans static
- remove current_opacity arg of setclienttrans, not useful
2007-09-06 22:45:05 +02:00
Julien Danjou 2044f82761 fix segfault with transparency 2007-09-06 22:29:14 +02:00
Julien Danjou bbfbb26326 remove prop from global and static, use in fcts 2007-09-06 22:02:50 +02:00
Julien Danjou e5f2ed3f22 remove extern seltags, put it in jdwmconf 2007-09-06 19:05:26 +02:00
Julien Danjou f7173bd79d first import 2007-09-05 20:15:00 +02:00