Commit Graph

568 Commits

Author SHA1 Message Date
Julien Danjou 1acc6ec8f6 Fix various bug with smart/mouse floating placement
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
Julien Danjou 7c79f94341 Move titlebar initialization routine in titlebar.c 2008-03-23 15:52:20 +01:00
Julien Danjou 0b6d6d738a Do nothing it the client already has focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou 720dabbaf6 Add support for titlebar on right 2008-03-23 15:52:20 +01:00
Julien Danjou bb0fab396f Add an ismoving attribute to client to fix a bug with titlebar and mouse moving in Xinerama 2008-03-23 15:52:20 +01:00
Julien Danjou a42d43a853 Fix various placement issue with titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou 850145f994 Changing floating geometry is bad 2008-03-23 15:52:20 +01:00
Julien Danjou 466ed47c2a Remove useless code 2008-03-23 15:52:20 +01:00
Julien Danjou dbe2052320 Check for sw also before restacking titlebars 2008-03-23 15:52:20 +01:00
Julien Danjou c99bc4dc1d Fix titlebar drawing on max 2008-03-23 15:52:20 +01:00
Julien Danjou 3eef1842e4 Do not use titlebar_update_geometry_floating() which sucks in client_resize() 2008-03-23 15:52:20 +01:00
Julien Danjou e22d57a0ca Change the way to do resize
Go back to old school

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou cf58c338e4 Add drawing support for left titlebars 2008-03-23 15:52:20 +01:00
Julien Danjou 99d72010c5 Fix various metrics problems with titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou dd71f55469 Fix regression introduced by 7e2f59d851437d68c47b5827644eba117c0e7b82
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:20 +01:00
Julien Danjou 31f6010eda Put titlebar resize for floating in titlebar_update_geometry_floating() function and call it for movemouse
This fix the problem when moving a window on a floating layout on screen N to
non-floating layout on screen M
2008-03-23 15:52:19 +01:00
Julien Danjou c9450c6fbd Remove switch/case for sw creation of titlebar, useless 2008-03-23 15:52:19 +01:00
Julien Danjou eb595fe06e Add support for Bottom titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 9bd32fc3b8 Split titlebar stuff into titlebar.[ch], and uicb_client_toggletitlebar 2008-03-23 15:52:19 +01:00
Julien Danjou bc6656320d Add support for text_align option in titlebars 2008-03-23 15:52:19 +01:00
Julien Danjou f9f75629e1 Rule for titlebar applies event if we restart; set default to auto, which means off 2008-03-23 15:52:19 +01:00
Julien Danjou cc56ccd2e9 Use section for titlebar parameters 2008-03-23 15:52:19 +01:00
Julien Danjou 3aa550ef6b Cosmetic changes 2008-03-23 15:52:19 +01:00
Julien Danjou bb453bd444 s/client_titlebar_update_position/client_titlebar_update_geometry/g 2008-03-23 15:52:19 +01:00
Julien Danjou b51e352ed8 Fix errors with windows without titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 539636c77e Fix bug with floating windows and titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou 95f8325c06 Fix titlebar width (add borders) 2008-03-23 15:52:19 +01:00
Julien Danjou b6f86ebb63 Smart placement support handling titlebar 2008-03-23 15:52:19 +01:00
Julien Danjou a6b203f8a6 Disable titlebar for dock and panels 2008-03-23 15:52:19 +01:00
Julien Danjou 12584caa5d Compute the rule only one time 2008-03-23 15:52:19 +01:00
Julien Danjou 8b217359e9 Rename Auto to Maybe in Fuzzy; add Auto as Position; add support for titlebar as rule 2008-03-23 15:52:19 +01:00
Julien Danjou 2c43fd6a69 Split titlebar properties into a struct with a SW and a Position 2008-03-23 15:52:18 +01:00
Julien Danjou 4311564945 Fix condition for having titlebars 2008-03-23 15:52:18 +01:00
Julien Danjou dce101d044 Split out titlebar handling into layout for non-floating, and into resize for floating 2008-03-23 15:52:18 +01:00
Julien Danjou 3c3015fd76 Remove resize_hints args to client_resize(), force usage of client_geometry_hints() 2008-03-23 15:52:18 +01:00
Julien Danjou ea88e324a0 First titlebar support 2008-03-23 15:52:18 +01:00
Julien Danjou f1109b055c Simplify next/prev stuff 2008-03-23 15:52:18 +01:00
Julien Danjou c6eec955c8 Rename Area to area_t 2008-03-23 15:52:18 +01:00
Julien Danjou fa47024714 Change colors infrastructure to style: rename colors_ctx_t to style_t and add font in it 2008-03-23 15:52:18 +01:00
Julien Danjou 0a980095b3 Rework colors stuff, add a common colors_ctx_t containing colors and shadow options 2008-03-23 15:52:17 +01:00
Julien Danjou eee37d063c Use xinerama_is_active attribute and drop XineramaIsActive() usage 2008-03-23 15:52:17 +01:00
Julien Danjou 355b7d67b3 Change screen_get_bycoord() proto to take ScreensInfo as arg, and speed up things 2008-03-23 15:52:17 +01:00
Julien Danjou 0bde5c9e29 Move some screen functions from screen.c to new common/xscreen.c 2008-03-23 15:52:17 +01:00
Julien Danjou 867b2f0775 first version of awesome-menu 2008-03-23 15:52:15 +01:00
Julien Danjou a734c7dd5d Remove transparency prop on focus
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-19 15:04:43 +01:00
Julien Danjou 4516bfcf3a Check for EWMH hints after reloading client props
This avoid to think a client has already props in case it's tagged
with EWMH and then do not use its rules
2008-03-15 14:46:45 +01:00
Julien Danjou 9d98d71ad1 Keep floating windows on top of the stack 2008-03-04 15:25:59 +01:00
Julien Danjou de8dcbb724 replace drop_events arch by x,y pointer coordinates saving 2008-03-04 10:14:13 +01:00
marco candrian 317929baea Is the pointer inside client with including the borders...
it didn't reshift the pointer when the pointer was on the
right border (or even somebit in the client) because it didn't calculate
the border with to the dimensions.

Also, it wrapped the pointer inside the client. now it leaves it on the border
when that was the case before. Or on resizing (smaller) the pointer might also move
(relativ to the client) to the most outside point of the left or top border.

There is still the problem so:
the client gets moved/resize, the pointer might get out of the area temprarly and the
client loses the focus - despite that the pointer will reshifted onto it again.

A general: client_focus(sel, screen, False);
at the end seems to help, but is probably not clean etc.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-02 19:28:50 +01:00
marco candrian 271bf8da4a border width taken into account on pointer movement
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-28 10:28:07 +01:00
marco candrian f604d4dbdd client_moveresize fix
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-28 07:54:45 +01:00
Julien Danjou e5038732ca check if the unmapped client is not the scratchpad 2008-02-26 17:45:55 +01:00
Julien Danjou f54ff424a0 check widgets position 2008-02-25 20:09:19 +01:00
Julien Danjou 960d870b0b fix screen_get_bycoord() 2008-02-25 13:40:30 +01:00
Julien Danjou 1e3f3d9300 floating placement can be chosen by config 2008-02-13 18:04:20 +01:00
marco candrian 4ff0dae17e trailing whitespaces removed
like:
find . -iname "*.txt" -o -iname "*.c" -o -iname "*.h" | xargs sed -i 's/\s\+$//'

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-13 09:05:10 +01:00
Julien Danjou a84eae2700 fix stacking issues 2008-02-12 14:39:52 +01:00
Julien Danjou 768aef8960 check transient and isfixed for setting floating state, even if we can loadprops 2008-02-12 10:19:59 +01:00
Julien Danjou 1b63e8a3c5 rename get_current_layout to layout_get_current() 2008-02-12 10:09:36 +01:00
Julien Danjou e0099da269 use get_current_layout() 2008-02-12 10:08:16 +01:00
Julien Danjou 9390abcfb4 fix memory leak in smart_placement (with area_list_remove) and fix the algo 2008-02-11 17:15:28 +01:00
Julien Danjou 72d68b13a3 change focus raising 2008-02-09 23:12:40 +01:00
Julien Danjou 2fad66e23f focus on maximize() 2008-02-09 22:42:21 +01:00
Julien Danjou 85e5baa4b1 focus scratch window when it appears, and don't select it for focusing in history 2008-02-08 15:08:42 +01:00
Julien Danjou cdb85ad098 stop raising like dumb 2008-02-06 19:48:26 +01:00
Julien Danjou b2e004b453 add scratch window support 2008-02-06 09:06:43 +01:00
Julien Danjou befcf19ea2 introduce fuzzy logic: fix problem with not_master 2008-02-05 17:31:47 +01:00
Julien Danjou a26b40fa28 fix segfault in client_zoom 2008-02-05 07:15:23 +01:00
Julien Danjou 06904cfcaa Revert "remove opacity_unfocused" 2008-02-04 14:54:50 +01:00
Julien Danjou a4a7433928 not size, position 2008-02-01 11:30:39 +01:00
Julien Danjou 4ad1f8a54a don't compute position if program or user specified ones 2008-02-01 10:42:16 +01:00
Julien Danjou 606d157e31 rename some screens function 2008-01-30 09:36:52 +01:00
Julien Danjou c3aeedfa24 better use of the space in smart placement 2008-01-29 09:13:35 +01:00
Julien Danjou d9298f6edb rename get_current_tags to tags_get_current() 2008-01-29 08:31:13 +01:00
Julien Danjou ee1214846e rename some client functions 2008-01-29 08:21:05 +01:00
Julien Danjou 9c7bbad840 respect border widths 2008-01-28 20:16:54 +01:00
Julien Danjou ea57fd8fc9 add support for smart windows placement in floating layout 2008-01-28 18:30:23 +01:00
Julien Danjou e233c2bfab drop some EnterWindow events on swap/zoom 2008-01-28 16:46:31 +01:00
Julien Danjou b016919d59 use client's screen here 2008-01-28 12:28:25 +01:00
Julien Danjou 75d57960de type: screen != phys_screen 2008-01-28 11:44:57 +01:00
Julien Danjou 9f68db5360 use c->screen geometry, not display's 2008-01-28 11:43:37 +01:00
Julien Danjou a0bef6d49e missing include 2008-01-27 19:08:11 +01:00
Julien Danjou 95d5fe299e rename focus() to client_focus() 2008-01-27 19:07:39 +01:00
Julien Danjou b6642e45c8 rename initxcolor to draw_color_new() and move it to draw.c 2008-01-27 18:56:37 +01:00
Julien Danjou 37b4f62258 always grab Button1 2008-01-26 13:11:12 +01:00
MATSUU Takuto 363cefefee transparency rule support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-25 23:48:24 +01:00
Julien Danjou c22430a115 fix handling of window raisings 2008-01-25 23:43:16 +01:00
Julien Danjou 6f1e1e1abe handle focus history on arrange() 2008-01-25 22:50:18 +01:00
Julien Danjou 485614f2df rewrite focus handling
- arrange() does not focus() anymore
- restore dropping events infra
- add client_unfocus()
- grabbuttons() where we should and add root_grabbuttons() for root window
2008-01-25 22:37:49 +01:00
Julien Danjou 8434040cb2 do not drop XSetInputFocus errors; but we can not give focus to unmapped windows 2008-01-25 09:37:41 +01:00
Julien Danjou 367b4d48fb Revert "rewrite focus() a bit"
This reverts commit 652c1459ba.
2008-01-25 00:51:11 +01:00
Julien Danjou 652c1459ba rewrite focus() a bit 2008-01-24 23:58:56 +01:00
Julien Danjou 3855ced402 remove selscreen arg 2008-01-24 23:48:35 +01:00
Julien Danjou 5ade4d63e0 remove opacity_unfocused
this is crap
2008-01-24 23:45:04 +01:00
Julien Danjou 7073133e66 remove drop event infrastructure 2008-01-24 23:43:46 +01:00
Julien Danjou 0abb100adf use client_setfloating() in uicb_togglefloating() 2008-01-24 20:09:11 +01:00
Julien Danjou 00f7cd006a save client props on floating 2008-01-24 18:31:14 +01:00
Julien Danjou 44aab9ff4b call get_screen_bycoord() anyway 2008-01-22 17:30:06 +01:00
Julien Danjou 67933fb670 initial x,y coords are set with respect to statusbars (FS#45) 2008-01-22 09:50:24 +01:00
Julien Danjou 668702b777 move list.h and util.[ch] to common/ 2008-01-21 18:14:59 +01:00
Julien Danjou 97f08901d6 call restack() only when focus()ing 2008-01-21 16:31:15 +01:00
Julien Danjou 83a0a4daf8 add a common infra to drop events 2008-01-21 16:31:15 +01:00
Julien Danjou 6fce5830ff arg is useless now 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 2f8978c15b add client_find_next_visible() 2008-01-21 16:31:15 +01:00
Julien Danjou 4809b8bc6e make swapnext cycling 2008-01-21 16:31:15 +01:00
Julien Danjou 650788479d doc 2008-01-21 16:31:15 +01:00
Julien Danjou ed3f624fc0 move clients' uicb away from layout.c 2008-01-21 16:31:15 +01:00
Julien Danjou 7f4dc5a871 use client_setfloating() to change floating attribute 2008-01-21 16:31:15 +01:00
Julien Danjou 5570612dec resize on floating set 2008-01-21 16:31:14 +01:00
Julien Danjou f9cebe0dd8 respect rules 2008-01-21 16:31:14 +01:00
Julien Danjou 94197429e5 tag_client_with_rule() only tag is a rule match 2008-01-21 16:31:14 +01:00
Julien Danjou 47ee745425 rewrite client_manage() 2008-01-21 16:31:14 +01:00
Julien Danjou 654fba9b5e insert and use rule_matching_client() 2008-01-21 16:31:14 +01:00
Julien Danjou bdd474348b use cycle functions 2008-01-21 16:31:14 +01:00
Julien Danjou 572f409a29 use lists functions for Client 2008-01-21 16:31:13 +01:00
Nikos Ntarmos 7c122e00ac Fix for windows showing up in tile-mode and not before already floated (FS#22)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-16 19:01:30 +01:00
Nikos Ntarmos a9170edf10 don't draw the border of skip'ed windows
ewmh_process_window_type_atom(...) clears the border for windows that
are to be skipped. However, client_updatewmhints(...) doesn't.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-15 08:24:26 +01:00
Fabienne Ducroquet aedfe8b665 Fix client_togglehorizontalmax and client_toggleverticalmax
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-12 17:02:12 +01:00
Julien Danjou 903555e502 better fix for max windows 2008-01-11 17:56:50 +01:00
Julien Danjou 93e137eaab invalidate cache 2008-01-11 16:44:24 +01:00
Julien Danjou 7c93dd381e fix maximization on floating layouts 2008-01-11 16:41:03 +01:00
Julien Danjou d427ffe4d2 invalidate only if we focus a new client 2008-01-11 16:01:10 +01:00
Julien Danjou 901f1da5ca fix documentation 2008-01-11 13:37:33 +01:00
Julien Danjou 876377880d cosmetic 2008-01-11 12:01:51 +01:00
Julien Danjou ce0b433aba check if client is not NULL
Debian bug #459992
2008-01-10 07:05:54 +01:00
Nikos Ntarmos 08e13d598e Fix for 'windows showing up in tile-mode and not before already floated'
FS#22

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-09 09:43:39 +01:00
Julien Danjou e3f5dc81e9 fix swapping when already master 2008-01-07 19:07:22 +01:00
Julien Danjou cef0253652 no need to refocus 2008-01-07 19:06:23 +01:00
Julien Danjou 4a610dfeb3 no need to restore focus 2008-01-07 19:03:17 +01:00
Julien Danjou 6483b36389 only invalidate cache if client is urgent 2008-01-07 19:00:17 +01:00
Arnaud Fontaine 7a2b851a03 fix XGetTransientForHint() call
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-07 18:57:25 +01:00
Julien Danjou c2ca948b39 add new_get_focus option 2008-01-07 18:54:45 +01:00
Julien Danjou 5c9291ff0b use a cache system for status bar 2008-01-07 18:12:38 +01:00
Julien Danjou 1381989651 restack on max 2008-01-06 23:37:53 +01:00
Julien Danjou bdfb84f3b5 remove useless AWESOMEPROPS_ATOM() define 2008-01-06 22:55:46 +01:00
Julien Danjou a5c86280b3 remove Display arg of xgettextprop() 2008-01-06 22:53:40 +01:00
Julien Danjou b4ff03c27e fix rearrange 2008-01-06 22:28:15 +01:00
Julien Danjou 7ad579898f simplify unmanage code 2008-01-06 21:57:53 +01:00
Julien Danjou a30579b32e respect config for resizing 2008-01-06 20:43:13 +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 70a3114dba use Area as arg for client_resize 2008-01-05 20:19:59 +01:00
Julien Danjou 163acc8624 use Area to store window geoms 2008-01-05 19:38:50 +01:00
Julien Danjou 5a66ffb2e7 remove flags attribute 2008-01-05 18:57:33 +01:00
Julien Danjou a8a9b7d925 simplify client_resize 2008-01-05 18:54:17 +01:00
Julien Danjou 3742f31216 remove setborder uicb 2008-01-04 17:56:18 +01:00
Julien Danjou 1d08ed45a8 add new_become_master option to disable new client becoming automaticaly master 2008-01-04 17:53:28 +01:00
Julien Danjou bcebd5e1ce fix various uninit vars 2008-01-04 14:19:59 +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 0cf4ff6d9f implement not_master rules option (FS#6) 2008-01-02 12:00:36 +01:00
Julien Danjou 9e93857864 use sel->border instead of globalconf borders 2008-01-02 11:37:16 +01:00
Julien Danjou 6701d0d2be add a borders option to client_maximize() to (not) handle border removal 2008-01-02 11:36:06 +01:00
Julien Danjou 9865d44a88 Revert "remove borders modification on maximize()"
This reverts commit d8ef2748a6.
2008-01-02 11:32:12 +01:00
Nikos Ntarmos d8ef2748a6 remove borders modification on maximize() 2008-01-02 09:55:03 +01:00
Julien Danjou 4f65aa8f51 rework headers inclusion 2008-01-01 18:02:36 +01:00
Julien Danjou f467fed598 use LayoutArrange and Uicb type into config.h ; move some functions from layout.c to client.c 2008-01-01 17:37:16 +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
Nikos Ntarmos 0fb6cf2817 check for EWMH.initial_state 2007-12-30 18:31:22 +01:00
Julien Danjou 6f4dec78ff remove Display as arg from window_*() fcts 2007-12-30 15:24:51 +01:00
Julien Danjou 3216eb4d41 documente some functions and simplify client_saveprops() proto 2007-12-30 15:08:38 +01:00
Julien Danjou 8c36b49f7f add support for _NET_WM_WINDOW_TYPE_DOCK 2007-12-28 21:26:02 +01:00
Julien Danjou 4e45103537 skip skippable windows when looking for a client 2007-12-28 14:12:54 +01:00
Julien Danjou 91c0f00b2b update EWMH info before applying rules 2007-12-28 14:03:22 +01:00
Julien Danjou e0c1472249 windows that start in Withdrawstate are skipped in focus list 2007-12-28 13:43:47 +01:00
Julien Danjou 19cd145861 use focus history when focus(NULL) 2007-12-28 10:12:34 +01:00
Julien Danjou f93a441da7 remove Display from Client struct 2007-12-27 23:10:43 +01:00
Julien Danjou 48d9ea047f simplify is_client_tagged() proto 2007-12-27 23:05:34 +01:00
Julien Danjou e95dc4b4cd simplify tag_client() and untag_client() proto 2007-12-27 22:43:59 +01:00
Julien Danjou 2287c0ff7c add support for NET_WM_STATE and NET_WM_STATE_STICKY 2007-12-27 22:39:29 +01:00
Julien Danjou 87fce96644 add support for NET_CLOSE_WINDOW 2007-12-27 20:49:38 +01:00
Julien Danjou 50e7595a0c add support for _NET_ACTIVE_WINDOW 2007-12-27 19:33:01 +01:00
Julien Danjou 423659d401 move ewmh_update_net_client_list() into ewmh.c 2007-12-27 18:01:36 +01:00
Julien Danjou c66c6dff84 add support for _NET_CLIENT_LIST 2007-12-27 16:19:05 +01:00
Julien Danjou f5f31d36d7 switch to get_current_tags() in client.c 2007-12-27 13:22:40 +01:00
Julien Danjou 58a3c0c494 add new UICB: uicb_focus_client_byname 2007-12-23 16:16:02 +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 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 980afac1cf Make sure all uicb_ functions have doxygen annotations.
Also refactor some indentation while I'm there.
2007-12-19 10:42:34 +01:00
Aldo Cortesi cbf5c474c1 Documentation generation fixes.
- Fix many instances of incorrect and incomplete doxygen annotations.
- Teach doxygen not to complain when it comes accross gcc __attribute__
specifications.
- Turn off graph generation by default.
- Make doxygen quiet, so we can actually see warnings when they occur.
2007-12-19 10:42:24 +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
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