okan
0fc885f41e
unbreak xinerama support from r1.41 for panning setups
2013-01-07 20:32:19 +00:00
okan
968dc645ee
use cc->bwidth in client_vmax since we've yet to reset it (matches
...
client_hmax); from Jan Stary
2013-01-06 01:01:26 +00:00
okan
65585e276f
rename {h,v}max functions for consistency; from Jan Stary
2013-01-04 16:30:03 +00:00
okan
8ca4aa87e7
really these are just border colors, so adjust the define
2013-01-04 16:27:58 +00:00
okan
41fd96bb01
spacing
2013-01-04 16:23:51 +00:00
okan
9e11fcccad
get rid of struct color
2013-01-04 16:23:04 +00:00
okan
07daaf479c
pass the screen workarea, as opposed to viewarea, allowing client
...
snapping to honor gap.
2013-01-02 21:41:14 +00:00
okan
7fa6ca94df
re-work client_snapcalc() so it takes client and edge dimensions with
...
snapdist; allows for simplier snap calculations.
required for an upcoming diff for honoring gap.
2013-01-02 21:37:21 +00:00
okan
68cdbb853d
merge in Xinerama screen query; no functional change.
2013-01-02 18:11:23 +00:00
okan
10e814fedf
have screen_find_xinerama() return struct geom *reliably* instead of
...
XineramaScreenInfo; simplifies goop around the callers.
2013-01-02 16:26:34 +00:00
okan
23c2576b3c
more variable consistency
2013-01-02 02:19:20 +00:00
okan
621a7f2c53
info->xine, for consistent variable names
2013-01-02 02:02:08 +00:00
okan
f26b8dff2e
after we toggle a group hidden, it makes no sense to set it as active
...
(in sticky or non-stick mode), regardless of existing clients assigned
to that group; oga marked this bit XXX in -r1.34 for it didn't seem make
sense then either.
pulled from a diff from from Alexander Polakov.
2013-01-01 14:50:01 +00:00
okan
572328d529
least intrusive way to plug a memleak when unbinding a duplicate key for
...
kbfunc_cmdexec; from Tiago Cunha
2013-01-01 14:33:52 +00:00
okan
f67f32f8a5
replace emptystring with strdup here as well so we know we are free'ing
...
a malloc'd variable everytime; from Tiago Cunha
2013-01-01 14:26:29 +00:00
okan
12bed5f129
make num of groups no longer off-by-one; from Alexander Polakov
...
note that a re-exec of cwm will not rewrite the group number atom of
*existing* clients, so they will remain off-by-one until each client has
its atom updated, or of course a restart of X.
2013-01-01 14:19:56 +00:00
okan
f718e8894b
gc unused cmd 'flags' variable
2012-12-19 15:21:34 +00:00
okan
9a1820657c
expand CHILDMASK
2012-12-18 18:39:55 +00:00
okan
ab9f6dbbff
use MOUSEMASK since we already have it
2012-12-18 18:35:36 +00:00
okan
565c84cc7a
remove unused SEARCHMASK
2012-12-18 17:44:18 +00:00
okan
7f6aabcb3d
define LockMask|Mod2Mask; no functional change
2012-12-18 17:37:39 +00:00
okan
44784133e7
simplify config file setup; with Tiago Cunha
2012-12-18 00:14:41 +00:00
okan
4766921753
put a default known_hosts into conf
2012-12-17 23:54:57 +00:00
okan
eabe498038
pull user home directory via getenv or getpwuid and stash it so we don't
...
need to do this everytime; with Tiago Cunha
2012-12-17 23:03:41 +00:00
okan
b08541104f
cmap -> colormap in client_ctx
2012-12-17 18:35:26 +00:00
okan
2410477c9d
stash the default screen visual and colormap in screen_ctx
2012-12-17 18:34:06 +00:00
okan
8f15d97537
replace client highlight with a client flag
2012-12-17 17:48:57 +00:00
okan
4ef0e7d9d2
make client_mtf static
2012-12-17 14:58:46 +00:00
okan
1c7a3484bf
create and use menuq_clear() helper; from Tiago Cunha
2012-12-17 14:32:39 +00:00
okan
b926f75dcc
current_client() returns _curcc, so use it where appropriate
2012-12-17 14:26:29 +00:00
okan
887ac8ab28
screen font -> xftfont
2012-12-17 14:20:52 +00:00
okan
5ca4dca2e3
knf
2012-12-17 02:53:29 +00:00
okan
52982ae188
non-trivial menu drawing rewrite, moving to Xft and solving various
...
font/color drawing issues; from Alexander Polakov
2012-12-17 02:28:45 +00:00
okan
00eccbe44f
zap extra lines
2012-11-29 16:50:03 +00:00
okan
d43f96b65c
specific last match for autogroup; few iterations with Kent Spillner.
2012-11-29 04:25:49 +00:00
okan
ddf27615e6
x_setupscreen -> screen_init; no functional change.
2012-11-29 03:54:46 +00:00
okan
58353e9599
remove dead extern
2012-11-29 03:34:19 +00:00
okan
db22777ba0
add xasprintf() for upcoming changes.
2012-11-28 14:32:44 +00:00
okan
9c0280009c
ever since the 9wm code bits were removed or replaced, this file has
...
been a no-op, for each source file has a complete license marker (ISC).
no objections from oga, who did the 9wm rewrite/remove work in 2008.
2012-11-28 14:25:05 +00:00
okan
096354b57d
replace hand rolled font_make() with XftFontOpenName() and merge into
...
font_init().
2012-11-28 14:14:44 +00:00
okan
50585c9a89
add some checks
2012-11-16 14:15:48 +00:00
okan
48634b386c
variable name consistency; from Thomas Pfaff
2012-11-14 21:31:53 +00:00
okan
89bef83e09
tab-complete buglet fix: once exec_path is completed, allow for
...
subsequent completion; from Alexander Polakov
2012-11-14 21:12:24 +00:00
okan
4f78cb6835
sort
2012-11-09 03:52:02 +00:00
okan
81715b0acb
fix some warnings; inspired by a diff from Thordur Bjornsson.
2012-11-08 20:18:19 +00:00
okan
74af9940e6
style nit; from Tiago Cunha.
2012-11-07 21:10:32 +00:00
okan
02dbbaba8a
add comment why we mouse unbind, just like kbd
2012-11-07 21:04:55 +00:00
okan
62f3e39ff4
now that we have FOREACH_SAFE queue macros, use them where appropriate;
...
from Tiago Cunha.
2012-11-07 21:01:48 +00:00
okan
8d78ddf545
plug a leak when using 'unmap' for kbd/mouse bindings; from Tiago Cunha.
2012-11-07 20:37:55 +00:00
okan
1e3fec4362
get rid of the xfree() wrapper around free(); from Tiago Cunha.
2012-11-07 20:34:39 +00:00
okan
1d807310d5
clarify windowname and windowclass values are pulled from the WM_CLASS
...
property; from Kent Spillner
2012-11-07 14:59:07 +00:00
okan
0fa8ad10b0
zap trailing space
2012-11-07 14:58:26 +00:00
okan
4f79744f37
missing headers; from Thordur Bjornsson.
2012-11-07 14:49:46 +00:00
okan
b01ce50ca5
spacing
2012-11-07 14:40:51 +00:00
okan
8bbba5aed3
tab completion support for menus; from Alexander Polakov.
...
ok sthen@ on an older incarnation
2012-11-07 14:39:44 +00:00
okan
09b4f89a44
try to clarify xprop(1) output, with respect to WM_CLASS, without going
...
overboard; suggested idea by jmc
2012-11-01 01:10:47 +00:00
okan
17e94be7be
no longer a reason to carry conf_path in struct conf, so dice.
2012-10-31 22:06:24 +00:00
okan
34267fe638
replace 'reload' with 'restart', which merely re-exec's cwm using the
...
existing argv; same idea with respect to argv saving as Alexander
Polakov. reload support was half-complete and is getting in the way.
agreed to by many
2012-10-31 19:30:19 +00:00
okan
d6b5535794
on reload, run each client through conf_client to pick up potential
...
ignore and bwidth changes; also add a hack for existing maximized
windows so they don't inherit a new bwidth.
based on a diff from, and discussion with, Tiago Cunha.
2012-10-29 19:46:03 +00:00
okan
b3191069d5
clarify autogroup option; based on diffs from kspillner@acm.org with
...
feedback from jmc
2012-10-28 20:13:02 +00:00
okan
72f1943e2c
comment what this whole bit does, not just part of it.
2012-10-23 16:13:59 +00:00
okan
b94eed0ab4
add a height to struct menu and use it in the most obvious of places.
2012-10-23 16:08:59 +00:00
okan
770189e8ac
treat menu width the same as the height is treated when deciding its
...
max size and location; partially from a diff from Alexander Polakov.
2012-10-23 15:50:15 +00:00
okan
44b83028a3
Stop drawing when menu doesn't fit inside the screen; picked from a
...
larger diff from Alexander Polakov.
2012-10-23 15:32:38 +00:00
okan
762473fe35
revert previous for now until a way to test more than a few encodings is found
2012-09-12 15:09:33 +00:00
okan
2a98b1a00b
be explicit in which key masks we allow during keypress and buttonpress
...
events; from Alexander Polakov - makes non-us layout reliable.
2012-09-10 13:28:04 +00:00
okan
a78478db77
replace with xu_getprop wrapper used everywhere else.
2012-09-09 20:52:57 +00:00
okan
ab1deebeda
extend client_resize so that it can know when to reset max flags and
...
bwidth; this allows a client to be resized from a max state, which now
gets treated like a non-max'd client. based on a diff that does part of
this in a different way from Alexander Polakov.
2012-09-09 19:47:47 +00:00
okan
f4e0469f06
support multibyte input to menu code; from Alexander Polakov with a tiny tweak.
2012-08-07 14:05:49 +00:00
okan
9e50f2e028
Further simplify Xinerama init and re-init on XRR events.
...
While testing for Xinerama during setup was done display-wide, each time
XineramaQueryScreens() is called either in start-up or due to an XRR
event, the library re-tests for the Xinerama extension anyway before
moving on; so the initial test is redundant and allows another global to
go away with one other change: always fill in sc->xinerama (and _no),
regardless of the success of malloc in XineramaQueryScreens(), and use
it to see if Xinerama dimensions exist when asked by client and/or menu
code.
2012-07-18 21:53:22 +00:00
okan
476b0dcf17
unify various max routines to match client placement and partially menu ones
...
when calculating screen dimensions.
2012-07-16 01:53:14 +00:00
okan
8a8244095d
check value
2012-07-16 01:42:00 +00:00
okan
147b66e3ac
move the HasXinerama check into screen_find_xinerama and simplify logic;
...
moves closer to logic in menu code.
2012-07-16 01:36:30 +00:00
okan
94b92cf7fb
re-use geom struct in client_ctx (saved)geometry.
2012-07-13 17:01:04 +00:00
okan
6ee7c6534f
convert xmax/ymax uses to view geometry.
2012-07-13 15:21:35 +00:00
okan
3f2059e461
introduce screen "view" area and "work" area (gap applied) to simplify
...
various blocks that require understanding the screen geometry.
2012-07-13 14:18:04 +00:00
okan
3ce93c9b3b
fix atom for setting WM_STATE.
2012-07-08 02:55:01 +00:00
okan
8260032aee
fix atom for retrieving WM_STATE between re-exec's.
2012-07-08 02:50:41 +00:00
okan
0ec36603b5
remove a redundant assignment and another one up.
2012-07-08 01:00:24 +00:00
okan
37bdf57a02
querying for Xinerama should be done per display, not per screen, so
...
move chuck to display init; allows some shuffling to occur limiting
screen_init_xinerama()'s scope while keeping order intact.
2012-07-06 14:18:00 +00:00
dcoppa
78655b3e88
Add a couple examples of keybindings using keysyms, as discussed
...
with okan@ and sthen@.
OK okan@, sthen@
2012-07-06 08:41:29 +00:00
okan
43b628a3d0
the display's width and height are updated after an XRandR event so we
...
don't need to pass down the new values to screen_update_geometry(); so
just read the width/height values directly for both uses of
screen_update_geometry(). prep for further changes in this area.
2012-07-05 17:35:13 +00:00
okan
e52aef56f0
assign and use screen ctx where appropriate and consistently.
2012-07-04 23:42:03 +00:00
okan
3a1ddcb19e
use the screen ctx since we already have it assigned.
2012-07-04 18:07:12 +00:00
okan
74ef1605a1
fix missing atom (WM_PROTOCOLS) wrt new style handing; without this, the
...
window manager didn't know if a client supported CLIENT_PROTO_DELETE and
thus used a hammer, XKillClient.
behaviour reported by Tim van der Molen.
2012-07-04 18:00:13 +00:00
okan
d24974f4cb
re-implement atom handing; makes for a normalized and more consistent
...
separation between cwm and ewmh. seen by a few.
2012-07-03 13:49:03 +00:00
okan
50687e789b
get rid of more stray lines/spaces
2012-05-16 21:57:21 +00:00
okan
838f6a5713
instead of using the menu window for _NET_SUPPORTING_WM_CHECK, create a
...
dummy one to use instead; allows us to not have to wait for menu_init(),
so re-shuffle _NET_SUPPORTED slightly.
ok sthen@
2012-05-16 01:17:14 +00:00
okan
61a281d1f3
fix comment
2012-05-16 01:10:11 +00:00
okan
adfd269db7
cycle through other common cycling modifiers; based on a diff from
...
Alexander Polakov.
ok sthen@
2012-05-16 01:09:17 +00:00
okan
abc316c162
convert from deprecated XKeycodeToKeysym to XkbKeycodeToKeysym
...
ok sthen@
2012-05-16 01:04:36 +00:00
okan
87d3c25241
altpersist->cycling to be more clear that this is for cycling mod
...
persistence; based on a diff from Alexander Polakov, in preparation for
looping through other potential cycling modifiers.
2012-05-13 15:17:13 +00:00
okan
6dcdd18c5a
knf, some from a diff from Tiago Cunha.
2012-05-13 15:15:54 +00:00
okan
dcfe652e93
wrap long lines; from Tiago Cunha.
2012-05-10 00:39:47 +00:00
okan
41a86560b4
fix section order: move AUTHORS below HISTORY; from Tiago Cunha
...
ok jmc@
2012-05-09 18:37:39 +00:00
pascal
0bb9a6d6a1
kill useless .Pp
...
ok jmc@
2012-05-07 21:25:29 +00:00
okan
42304914dc
check if we're in the group already, else multiple calls to
...
group_movetogroup() on one client will still increment nhidden if the
group is hidden.
found the hard way by Thomas Jeunet and fix from Alexander Polakov -
thanks to both!
ok oga@
2011-12-29 20:48:38 +00:00
okan
a396addc5c
put snapdist in the correct location; as an option, not a bind; Tiago Cunha.
...
ok oga@
2011-11-06 02:03:47 +00:00
okan
6f33ccac59
rename variable to reduce potential for name-space collision.
...
bikesheding and ok oga@.
2011-10-17 18:18:38 +00:00
okan
66bb8d02da
use xfree instead of free since strings is allocated with xmalloc; from
...
dhill
ok oga@
2011-10-12 15:43:50 +00:00
okan
7a6e2b9d5a
move client to group (movetogroup) and hide client only if group is
...
already hidden (suggested behavior from Alexander Polakov).
ok sthen oga
2011-09-19 07:23:03 +00:00
okan
e18bdf5702
fix spelling I keep getting wrong for some unknown reason; found by and
...
diff from Alexander Polakov.
2011-09-13 09:17:30 +00:00
okan
5d6aec2db4
add WM_TRANSIENT_FOR event support: moves dialogs, toolbars and such to
...
the group of the main application window; based on a diff from Alexander
Polakov with CLIENT_IGNORE flag suggestion from oga@.
ok oga@
2011-09-13 08:41:57 +00:00
okan
780e9cb0df
repair groupcycle (broke after cycle-in-group support added more flags);
...
found by and fix from Thomas Pfaff.
ok oga@
2011-09-13 08:37:49 +00:00
okan
3f2d53b6dd
allow configurable menu font color; from Alexander Polakov with a tweak
...
from me.
ok oga@
2011-09-08 12:35:33 +00:00
okan
107bc37429
allow menufg/menubg to be configurable; from Alexander Polakov.
...
ok oga@
2011-09-08 12:07:03 +00:00
okan
9ab59987f7
reinit menu on reload; from Alexander Polakov. needed for catching
...
upcoming menu config changes.
ok oga@
2011-09-08 12:00:49 +00:00
okan
9dabac6117
restore a comment and add another for clarity.
2011-09-05 07:37:55 +00:00
oga
d341c2bfd8
Make flavours of maximisation additive.
...
i.e. horiz-max + vertmax = full maximisation. full - horiz = vertmax.
etc.
Martynas wrote something like this once, so I did okan, this version
seems to finally deal with the corner cases.
ok okan@.
2011-09-04 16:59:31 +00:00
okan
d1b5022611
split off window hints from geometry so we don't need to carry them all
...
around when dealing with {,h,v}max. same idea from oga.
2011-09-03 09:42:33 +00:00
okan
ed6f73250e
simplify color initialization.
...
ok oga@
2011-09-03 09:25:39 +00:00
okan
aa9dbd1dca
Add {r,}cycleingroup to cycle through clients belonging to the same
...
group as the active client (as opposed to all unhidden clients); from
Alexander Polakov, with a tiny tweak requested by oga.
ok oga@
2011-09-03 09:20:58 +00:00
okan
f93ec1eba0
"defaultfont" is unclear (and confusing while reading code) when it also
...
applies to the user supplied font, so rename.
ok oga@
2011-09-03 09:17:16 +00:00
okan
d44962b456
zap unused macro. ok oga@
2011-08-29 09:10:49 +00:00
okan
dda3ed6180
restore mouse move via the keyboard, noticed by todd@. while the check
...
for cc was wrong due to the fact that cc->sc is always filled in during
the event, we don't even need it - just operate on the focused screen's
root window regardless.
ok todd@ oga@
2011-08-29 09:09:45 +00:00
oga
af80ac7042
A while ago I wrote some code to not warp to ignored windows on map (rev
...
1.52), not realising that the previous (less efficient) fix had already
been commited (rev 1.50).
Had this in my tree for ages to remove the previous code. Effectively
reverts rev 1.50.
ok okan@
2011-08-22 16:34:34 +00:00
okan
661c8ef1c1
revert r1.11 of parse.y and create logic in conf_setup instead to deal
...
with the various scenarios of when to attempt a parse of the config,
load defaults, and when to warn and/or exit. triggered by bogus warning
first noticed by sobrado@.
ok oga@
2011-08-22 16:18:05 +00:00
okan
648d5b0b39
Re-draw borders after reloading, not before; from Alexander Polakov.
...
ok oga@
2011-07-26 08:51:24 +00:00
okan
3826753e1a
use the menu border; from Alexander Polakov, but with the existing define.
...
ok oga@
2011-07-25 15:41:05 +00:00
okan
bd65f03126
We are inconsistent when it comes to function returns, so just go all
...
the way with the cwm specific parts.
ok oga@
2011-07-25 15:10:24 +00:00
okan
24bf547e5f
Clarify defines and make them not look like non-local ones; started by a
...
small diff from Thomas Pfaff.
ok oga@
2011-07-23 13:09:11 +00:00
okan
df02d70181
correct spelling; from Alexander Polakov.
2011-07-14 11:39:53 +00:00
okan
33023ff923
UTF8-ify, from Alexander Polakov, but without setlocale(), after
...
feedback from stsp@ - thanks!
'go for it' oga@
2011-06-27 12:46:54 +00:00
okan
9eac37010a
warn if we can't parse the config file on start, just like we do on reload.
...
part of a larger diff that was ok oga@
2011-06-25 13:37:05 +00:00
okan
5f2753dc80
Since cwm(1) uses the same parser as others in src, document how
...
comments and line extensions work. Taken from sthen@'s recent
commit in src.
ok sthen@
2011-06-25 13:12:56 +00:00
okan
0fd446f068
add 'normal' cursor and shuffle the others we use to make a bit more
...
sense and to be slightly less un-expected. from Alexander Polakov.
re-use 'normal' cursor now instead XC_hand1 for menu selection. i
really wish X had real docs and made sense.
ok on earlier diff with '?' removed (but it's back now) oga@
2011-06-24 06:52:23 +00:00
okan
53fbeb4e7a
New option to raise a client via the mouse (unbound by default);
...
opposing action, lower, already exists and bound. Both keyboard
mappings already exist.
'no opinion either way' oga@
2011-06-24 06:09:26 +00:00
okan
ffa68ab4a0
introduce a new config option to snap to the screen edge. 'snapdist'
...
keyword taken from a diff from Sviatoslav Chagaev to do the same thing,
but implemented in a completely way (based on some very old code from
mk@). default set to 0, so no behavior change.
ok oga@ (who would also like to take it further...)
2011-06-24 06:06:24 +00:00
okan
c800341623
re-do various bits of {,h,v}max for simplicity and less flag handling.
...
as a bonus, flipping between various combinations of vmax+hmax provides
a more predictable behavior.
commitski oga@
2011-06-24 06:01:47 +00:00
okan
5e2c6f5c05
replace the non-working check to see if another wm is running with a
...
method that actually works. checking for icccm compliant wm's should
also be done first, but that's another diff (noted by oga).
ok oga@
2011-06-24 05:58:51 +00:00
okan
c1530aea4c
more nitems usage.
...
ok oga@
2011-06-24 05:54:30 +00:00
okan
2f0f43df32
re-order sweep draw so that we map into the client window after
...
re-parenting; from Sviatoslav Chagaev.
ok oga@
2011-06-24 05:51:25 +00:00
okan
74252c7d0a
struct XftFont already has height which we can use directly instead of
...
calculating ourselves, so do so.
ok oga@
2011-06-24 05:45:57 +00:00
okan
08f0ea6df6
alter a few function returns and prototypes; found by lint.
...
ok oga@
2011-06-24 05:40:09 +00:00
okan
cfdfe3cdd9
Correct extern declaration and while here, rename a variable to be
...
pedantic.
from Thomas Pfaff.
ok oga@
2011-06-24 05:33:41 +00:00
okan
209974b036
collapse client and group {r,}cycle defines since they are really
...
the same thing.
ok oga@
2011-06-24 05:30:42 +00:00
naddy
2e88a2b0e8
switch to installing source manuals:
...
* cope with new bsd.man.mk
* update imake configuration
ports use of imake remains unchanged
2011-06-23 22:48:59 +00:00
okan
3d9ed32226
fix botched client and group cycle defines; noticed by Thomas Pfaff.
...
"no cookie! fix it" - oga@
2011-05-15 17:58:47 +00:00
okan
dc3d407467
remove left over XSync; ok oga@
2011-05-13 12:53:19 +00:00
okan
4fb00eca7b
tag and comment cleanup; ok oga@
2011-05-11 13:53:51 +00:00
okan
b1f11d8dc6
introduce a new 'freeze' flag (CMS-f by default) which may be applied to
...
any window, after which all move/resize requests will be ignored,
essentially freezing the window in place.
there's a possibility to merge this with the 'ignore' concept, pending
on how ignore+freeze should behave (really more ewmh stuff), but punting
for now since ponies are on the line.
requested and tested by thib at k2k11 with ponies, unicorns and rainbows.
'save the unicorns' todd@, ok oga@
2011-05-07 17:15:37 +00:00
oga
a1517de675
On map, don't warp to windows that are marked as ignored.
...
Requested by Christian Neukirchen last august. He provided a patch but the one I
wrote was significantly simpler (1 - 2 + in the whole diff).
makes sense to okan@.
2011-05-06 19:39:44 +00:00
okan
28ba33af91
bump window resize back to 60hz. instead, we should not need to sync
...
every time we move/resize a window, so remove XSync in both mouse move
and resize events. tested by Brynet as well.
ok oga@
2011-05-05 19:52:52 +00:00
okan
800a938556
re-org. ok oga@
2011-05-05 16:40:37 +00:00
okan
d4b279e29e
make the menu window aware of xinerama info; this makes the menu stay
...
within the current screen, like other cwm window placements and
mutations (vmax/hmax/max) - from Sviatoslav Chagaev.
ok oga@
2011-05-05 15:32:24 +00:00
okan
98c5b36dbb
revert the XSync timing change for client move only; first noticed by
...
brynet.
sure oga@
2011-03-23 07:27:32 +00:00
okan
4c04a27385
warp the pointer back, iff we don't move the mouse, once we are done
...
with the menu; idea and initial from Sviatoslav Chagaev.
discussion with and ok oga@
2011-03-22 13:50:40 +00:00
okan
9a52c582b1
we should re-focus the client and ungrab the ptr even if we don't have a
...
mouse based match (i.e. in the kbd no match case). update the comment
as well.
ok oga@
2011-03-22 11:09:52 +00:00
okan
482c4ce498
fix nousance of always highlighting the first entry even when there is
...
no match (seen in the ctrl-a case)
ok oga@
2011-03-22 11:05:13 +00:00
okan
d0a487aa3d
move the default case to the end.
...
ok oga@
2011-03-22 11:03:05 +00:00
okan
a9420f917b
reduce the number of times we sync during a window resize.
...
ok oga@
2011-03-22 10:59:08 +00:00
okan
1494c3e4c9
introduce nitems macro, with the appropriate ifndef.
...
ok oga@
2011-03-22 10:57:31 +00:00
okan
2de4639d4c
if virt/horz un-maximizing, restore only the un-maximized axis
...
coordinates; allows moving a client and not restoring the maximized axis
coordinates.
picked from a larger martynas diff from ages ago.
ok oga@
2011-03-22 10:56:08 +00:00
okan
f109779994
(0,0) is also inside in the screen; from Sviatoslav Chagaev.
...
ok oga@
2011-03-22 10:54:42 +00:00
okan
51c21fc3ef
while this piece deals with client argv's in a seemingly inefficient way
...
(noticed by Tim Peniket), since we don't ever do anything with cliarg,
remove the hunk and cliarg completely.
ok oga@
2011-03-22 10:52:37 +00:00
okan
a2810e744d
remove XXX and move a configure event out of the event handler functions.
...
reminded by a similiar diff from Thomas Pfaff.
ok oga@
2011-03-22 10:49:46 +00:00
okan
3b73daa6c2
move the single keycode function directly into the menu code.
...
ok oga@
2011-03-22 10:47:59 +00:00
matthieu
7ae39052df
xcb is no longer optional.
2011-03-08 20:48:59 +00:00
okan
eab1b94e0a
if we are saving the pointer location for a specific client, make sure
...
that if it is not already inbounds, put it in the default location,
which happens to be inbounds.
behavior noticed by Thomas Pfaff while maximizing and un-maximizing a
window, leaving the pointer behind and causing client_cycle() to be a
bit lost.
ok oga@
2011-02-13 20:09:57 +00:00
tedu
c222c6a5c7
we lose track of highstack somewhere, so recompute it before we need it.
...
fixes a crash reported by christian neukirchen. ok okan
2011-02-13 17:25:20 +00:00
martynas
cba4495309
in MotionNotify geom.x, geom.y calculations take into account bwidth.
...
fixes the annoying bug where windows would go +bwidth pixels right,
+bwidth pixels down. ok okan@
2010-12-14 11:08:47 +00:00
matthieu
66473b7fbe
Explicitely link libxcb when needed for static arches.
2010-11-27 14:25:47 +00:00
schwarze
f7ffd5f80b
s/-offset -indent/-offset indent/ for correct indentation,
...
and properly encode \(:a
found by mandoc -Tlint
2010-09-25 21:58:18 +00:00
schwarze
694354ad23
s/\.Pb/.Pp/ for correct vertical spacing; found by mandoc -Tlint
2010-09-25 21:48:08 +00:00
okan
49e1aa0fed
do not warp to clients marked 'ignore'; from chneukirchen at gmail - thanks.
...
(with the manpage bit from me).
ok oga@
2010-09-25 20:04:55 +00:00
okan
0b646a740b
picked a henning diff from src - original log:
...
fix linecount bug with comments spanning multiple lines
problem reported with the obvious fix for bgpd by Sebastian Benoit
<benoit-lists at fb12.de>, also PR 6432
ok oga@
2010-09-25 20:02:58 +00:00
okan
2efae64cef
spacing nits
2010-09-25 20:01:27 +00:00
okan
3261bc07fe
more clear variable name so than name/class shouldn't be confused again.
...
ok oga@
2010-09-25 19:58:08 +00:00
okan
2fc8292339
clarify window name/class a bit more with word ordering.
...
ok oga@
2010-09-25 19:54:02 +00:00
okan
bd36084da7
revert -r1.45 of group.c (log was: fix window name and class to match
...
cwmrc(5)). instead, fix cwmrc(5) to match the old behavior which also
happens to match the example config, of which many have based their
configs; this also nicely matches the output of xprop(1).
clean-up of variable names as a separate commit.
suggested by sthen (and something we should have done initially).
discussed with and ok oga@
2010-07-30 12:28:19 +00:00
okan
eb3cfa8f7c
fix backwards example (after r1.45 of group.c); noticed by phessler@
...
ok oga@ phessler@
2010-07-23 15:13:00 +00:00
okan
84863b048e
fix window name and class to match cwmrc(5); from Holger Mikolon - thanks!
...
ok oga@
2010-06-28 12:29:04 +00:00
okan
268faf71ba
initialize nitems
...
ok oga@
2010-05-22 22:32:08 +00:00
okan
6b0b021a68
replace XFetchName() with something more intelligent which attempts to
...
use the appropriate netwm Atom first, as well as deal with utf8.
slightly different incarnation tested by sthen@ and ajacoutot@ - thanks!
ok oga@
2010-05-22 22:10:31 +00:00
oga
c4175c932e
grab events on the root window *before* we look for existing windows.
...
This closes a race we were hitting often where stuff started right
before cwm may not get noticed and not have borders.
ok okan@. Prompted by something todd noticed.
2010-04-12 16:17:46 +00:00
okan
4944ac9995
clean up a few xu_* functions to just accept what they need (Window).
...
ok oga@
2010-04-11 16:51:26 +00:00
schwarze
7ddffd1fa6
Fix formatting errors breaking the xenocara mandoc(1) build:
...
* .Bl may only have .It children
* .SH requires an argument
* blank lines are illegal outside literal context
Now "cd /usr/xenocara && make man" succeeds,
but unfortunately, that covers a minority of X11 manuals only.
ok matthieu@
2010-03-20 20:13:27 +00:00
okan
5d67594356
preserve labels after an edit action is aborted; extending the menu
...
struct just for this is the least intrusive approach until the menu code
is reviewed.
inspired by Thomas Pfaff's report on tech@
ok oga@
2010-02-10 01:23:05 +00:00
stsp
33b5baf3fb
Honour program-specified window position in size hints when placing windows.
...
Makes XMMS windows appear as expected.
ok okan, oga
2010-02-02 19:28:46 +00:00
okan
3d3e2130f8
- allow per-screen gap; not (yet) user configurable.
...
- teach _NET_WORKAREA about gap.
ok oga@
2010-01-27 03:04:50 +00:00
okan
ba93a73ad3
pull all non-X11 headers from calmwm.h and place them only where they
...
are required.
encourged to go all the way by oga@
2009-12-15 04:10:42 +00:00
okan
71e1e63bce
spacing
2009-12-15 03:38:11 +00:00
okan
0c7627b2f7
pull these headers only into files that need them.
...
ok oga@
2009-12-15 03:34:34 +00:00
okan
899043b215
rid ourselves of these functional macros; convert to real functions.
...
ok oga@
2009-12-15 03:26:22 +00:00
okan
5a72fec630
mostly irrelevant now, so remove.
...
ok oga@
2009-12-15 03:25:22 +00:00
okan
9dfa8ad14a
merge the 2 common header files; specific includes to be pulled out as
...
separate commits.
ok oga@
2009-12-15 03:24:36 +00:00
oga
732db655c0
kill _CWM_GRP atom setting. The netwm stuff does us well enough now that
...
it's superfluous.
ok okan@
2009-12-14 16:39:01 +00:00
oga
d0275e11af
add _NET_WORKAREA. for now we ignore the gap, this'll change soonish.
...
ok okan@
2009-12-11 18:09:16 +00:00
oga
3ec3bf2582
another int/long fixup that was giving dodgy property values on amd64, shame on
...
me for not reading xlibs (appauling) documentation more closely.
ok okan@
2009-12-11 17:57:38 +00:00
oga
cb76db27c6
implement support for _NET_WM_DESKTOP properties on windows.
...
it works kinda like _CWM_GRP, which we added to aid restarts a while
ago, but it's standardised and clients are specifically allowed to set
it to request a desktop.
for noe we leave _CWM_GRP support in, but its days are now numbered.
while i'm here fixup an int/long mixup with an earlier diff.
ok okan@
2009-12-11 17:55:42 +00:00
oga
7d0bb562dc
Implement _NET_DESKTOP_NAMES, this one was a bit tricky since thespec
...
says that a pager can change the property at any time (most need a
clientmessage). So deal with property updates.
Needed to shuffle some of the other code around since we can't just use
shortcut_to_name[] everywhere now.
ok okan@
2009-12-11 17:51:42 +00:00
oga
c77ea38a4c
Implement _NET_VIRTUAL_ROOTS (just clear it, we don't use that technique)
...
and _NET_SHOWING_DESKTOP (we're never doing so right now).
only three informational root-window hints to go.
ok okan@
2009-12-10 23:21:26 +00:00
oga
a53f6f767e
Implement _NET_CURRENT_DESKTOP, _NET_DESKTOP_VIEWPORT and
...
_NET_DESKTOP_GEOMETRY.
ok okan@
2009-12-10 23:14:58 +00:00
oga
206c3e3bc9
finish unfucking the screen_ctx handling.
...
remove screen_current() it was utterly bogus when nscreens > 1.
pass a fake client_ctx in the case where there's no client and the
kbfunc or mousefunc doesn't need a real one, it just contains the
current screen, modify these functions so that they pass down the screen
context to their callees.
make groups per screen, it's the only way it makes sense in this regard.
ok okan@.
2009-12-10 17:16:51 +00:00
okan
ed29ebe53b
start fixing screen_ctx usage, for it is utterly broken. bring font
...
into screen_ctx and start passing screen_ctx around to in order get rid
of Curscreen; fixup per-screen config colors the same way.
diff mostly from oga@, with a bit harsher reaction to the state of screen_ctx.
"please commit" oga@
2009-12-08 16:52:17 +00:00
oga
2f8a50c4d5
Implement _NET_NUMBER_OF_DESKTOPS, currently this is statically 9 and
...
unchangable. the group code needs some cleaning up before this will be a
bit less hackish.
ok okan@
2009-12-07 23:19:51 +00:00
oga
13825a5c16
support _NET_CLIENT_LIST.
...
the x property api doesn't let you remove one entry from an X property
array, so client_remove is kinda expensive, but there's no real way
around that..
ok okan@
2009-12-07 22:46:15 +00:00
oga
2a5e34e85e
Implement _NET_ACTIVE_WINDOW. for now just the informational hint is
...
supported, the client message to change this will be supported when all
informational hints are working.
ok okan@
2009-12-07 22:21:59 +00:00
okan
51fb32f347
introduce the beginnings of netwm support, minimally and correctly;
...
allows java to be happy, but additionally stops others from whinning
about a non-netwm complaint wm. more to come.
written a few times; this one includes a clever hack from oga@ to
populate _NET_SUPPORTED.
ok oga@
2009-12-07 21:20:52 +00:00
okan
bb65c9fc09
fix off-by-one where a mere click would select the first item inside a menu
...
from Thomas Pfaff
ok oga@
2009-12-07 19:48:08 +00:00
okan
d23d607f19
we already have sc from the passed cc, so just used that instead.
...
ok oga@
2009-12-07 19:45:36 +00:00
okan
4b33ec9b0c
be consistent
...
ok oga@
2009-12-07 19:44:31 +00:00
okan
d1ba9d87b1
remove unused extern
...
ok oga@
2009-12-07 19:42:59 +00:00
tobias
18dd1d8fc7
style (whitespaces)
...
ok oga, okan
2009-11-28 17:52:12 +00:00
tobias
44eea5f75c
Corrected grammar in comment.
...
ok (and better style suggestion by) oga, okan
2009-11-22 21:38:50 +00:00
oga
3bb2531f46
With Xinerama enabled, the borders of a maximized window will show up on
...
all adjacent screens. This patch hides the borders while the window is
maximized.
From Bertrand Janin; thanks!
ok okan@
2009-09-25 15:57:49 +00:00
okan
d1b60130a8
re-introduce the intention of the change from rev 1.4 in menu.c here
...
instead, by moving the check for '\0' to only the places that it
matters. hint and 50% of the diff from oga@, prodded by todd@
ok oga@
2009-09-05 16:06:15 +00:00
tobias
6e4f4540c2
style
...
ok oga
2009-09-05 14:10:11 +00:00
okan
c3064dbf27
unroll the CCTOSC macro; from Thomas Pfaff
...
ok oga@
2009-08-27 01:38:08 +00:00
okan
2f17ef273a
static; ok oga@
2009-08-25 12:05:11 +00:00
okan
1facf8e143
we are not doing access control here, so replace the "check if file is
...
executable" goo with access(2).
originally from jacekm@ long time ago.
"i can live with that" oga@
2009-08-25 02:02:59 +00:00
oga
1a74c54fd8
Reduce duplciation of code for checking modifiers in key/mouse bindings.
...
shaves a bunch of bytes.
ok okan@
2009-08-25 01:44:39 +00:00
oga
9924c77a57
Instead of calling conf_bind*() 50 gazillion times in a row, store an
...
array with all the parameters in and just loop over that to setup the
default keybindings - it's so much easier to read.
okan@ "love love love"ed this
2009-08-25 01:42:05 +00:00
oga
78deb6c3b0
Instead of messing around everytime we do a resize, just clamp the
...
resize increments to a minimum of one, and use it unconditionally.
"you've convinced me, do it!" okan@
2009-08-25 01:32:40 +00:00
okan
30e985c9db
unroll macro; ok oga@
2009-08-25 01:26:09 +00:00
oga
081d2deacd
Add a keybinding to allow horizontal maximisation of a window (CMS-enter).
...
based on a diff by Thomas Pfaff; thanks!
ok okan@
2009-08-24 23:54:41 +00:00
okan
5111e27310
bring together gathering, calculating and applying of size hints;
...
additionally, respect aspect ratio hints.
ok oga@
2009-08-24 23:49:04 +00:00
oga
67c21c1d1a
Instead of having a function that just calls TAILQ_INIT on a global, use
...
TAILQ_HEAD_INITIALIZER() and drop the function.
ok okan@
2009-08-24 21:22:48 +00:00
oga
5407ee5608
instead of checking for flags in the client context, then removing them.
...
e.g.:
if (flags & flags_we_care_about)
flags &= ~(flags_we_care_about);
just whack the flags unconditionally, it's simpler.
okan@ agrees.
2009-08-24 17:04:39 +00:00
okan
a75b749328
remove unnecessary Ar macros
...
ok jmc@
2009-08-08 17:27:51 +00:00
okan
fb65a7fcc0
remove unnecessary Dq macro; based on a diff from Martin Toft
...
feedback and ok jmc@, martynas@
2009-08-08 00:25:52 +00:00
oga
7230692acb
use fnmatch to glob the entries in the exec menu.
...
allows shell globbing constructs such as *ctl, etc in the exec menu (m-?
by default).
Adapted from a diff from Thomas Pfaff, okan@ got almost the same diff as
me when reworking it, and oked this one.
2009-06-26 12:45:12 +00:00
okan
d893a97dee
static local functions and data; almost identical diff from Thomas Pfaff
...
ok oga@
2009-06-26 12:21:58 +00:00
okan
28840135ea
tidy up startup/init routines
...
ok oga@
2009-06-23 21:52:38 +00:00
okan
e61fd04310
compact a bit by condensing a few if-else's; from Thomas Pfaff
...
"go on then" oga@
2009-06-20 00:55:41 +00:00
okan
a7dfb91b88
unroll XCALLOC/XMALLOC macros; since we use xcalloc/xmalloc all over the
...
place anyway, this makes things a bit more consistent; from Thomas Pfaff
ok oga@
2009-06-20 00:22:39 +00:00
okan
0230e26854
spacing
2009-06-20 00:19:56 +00:00
sobrado
9bc8348d66
`exec'' and
`ssh'' are lowercase.
...
ok martynas@
2009-06-19 10:43:49 +00:00
sobrado
2de9f26c1d
items on the first list should have full stops too.
...
ok martynas@
2009-06-18 20:44:40 +00:00
sobrado
b0a20e655b
the on-line manual should use the same notation for key bindings
...
as the configuration file, this way writing configuration files is easier;
add a few missing interactive command (.Ic) macros to key bindings;
slightly improve spacing in the lists; other tweaks.
ok martynas@
2009-06-18 20:24:54 +00:00
okan
1183bd535d
remove unnecessary casts; from Thomas Pfaff
...
ok oga@
2009-06-17 13:08:37 +00:00
okan
89d865166d
re-factor parts of mouse move/resize bit to shrink and make more
...
readable; no behavior change
ok oga@
2009-06-17 12:45:01 +00:00
okan
96b7d95a17
move like defines to a central, logical location; no binary change.
...
aok oga@
2009-06-17 12:30:17 +00:00
okan
f18194f34c
'no' is the answer to the comment question: cc->name can't be NULL at
...
this point due to client_setname()'s work; remove this check.
ok oga@
2009-05-30 00:30:27 +00:00
okan
9e51da2d59
re-order a bit for readability.
...
"if it makes you happy" oga@
2009-05-30 00:30:17 +00:00
okan
56f901ac72
revert the 1.4 change - causes a double free noticed by grange@ a while
...
ago while using kazehakase (or clients that don't set a name).
ok oga@
2009-05-30 00:29:08 +00:00
sthen
01c9bf9a3c
In movetogroup, check the window's current group and skip client_hide()
...
if it's the same as the active group. Was in my original movetogroup diff,
but it got simplified a little too far. ok oga@
2009-05-19 12:49:37 +00:00
okan
403de0648e
nuke the leading underscore notation for local static functions - there
...
are far better ways to know.
"go for it" oga@
2009-05-18 00:23:35 +00:00
oga
099e0eb73d
oops, we appear to have grown an extra prototype for group_only(), get
...
the secateurs out.
2009-05-18 00:17:46 +00:00
oga
01972f31ae
Rip out the event layer and just use a static array of callbacks like
...
every other window manager since twm.
The event layer is very nice, very shiny, very flexible, and very much
underutilised. We don't need any of those shiny features so it's
probably better to earn ourselves 1k smaller text size instead.
ok todd@, okan@
2009-05-18 00:14:19 +00:00
okan
60e9431c86
redraw all borders at once on reload
...
"sure" oga@
2009-05-17 23:54:17 +00:00
okan
d3c904a333
a long time coming - re-work the way we deal with colors: since we're
...
using Xft(3), use it to select the font color as well instead of trying
to build one; properly allocate and free colors at-will, e.g. we now
have configurable colors.
feedback and ok's todd@ and oga@
2009-05-17 23:40:57 +00:00
okan
1a91924225
minor bit of knf, just to be consistent; oga@ doesn't mind that much
2009-05-17 23:37:52 +00:00
okan
b25495ebda
unbreak
2009-05-17 22:48:47 +00:00
sthen
5dd486dee8
add a "movetogroup" function, which hides the current window from
...
display and moves it to another group. useful with the recently added
"grouponly" function, giving the ability to use groups as simple
virtual desktops (similar to e.g. xmonad, dwm and scrotwm).
this doesn't have default keyboard bindings; cwmrc(5) now shows how
you could use these functions (use M-1...9 for grouponly1...9 and
MS-1...9 for movetogroup1...9 to emulate the default dwm bindings).
ok oga@
2009-05-17 17:04:59 +00:00
sthen
662b00c143
redraw the border when unhiding a client window. fixes the situation where
...
you change to a different group and the mouse isn't over a window; previously
the border of the previously active window was highlighted but it didn't
actually have focus.
reads ok to oga@.
2009-05-17 16:51:43 +00:00
oga
11fa2e97eb
add missing prototype.
2009-05-14 16:29:58 +00:00
oga
873b5b8ebb
Add a new command (currently no default keybindings for it), grouponly[1-9].
...
This works like the group select binding, but hides all other groups.
So, the people who've been complaining that they don't get "virtual
desktops" in cwm may want to try this out in cwmrc (from memory, untested):
---
#cwmrc
# add new windows to the current group
set sticky
# automatically sticky windows. xclock for now.
# to make more windows sticky use group_toggle to unset their group
autogroup 0 xclock
# make the group selection keys hide other groups, emulate virtual desktops
bind CM-1 grouponly1
bind CM-2 grouponly2
bind CM-3 grouponly3
bind CM-4 grouponly4
bind CM-5 grouponly5
bind CM-6 grouponly6
bind CM-7 grouponly7
bind CM-8 grouponly8
bind CM-9 grouponly9
---
mostly by sthen, tweaks from me.
ok todd@, "if it works i'm ok with it" okan@, ok sthen@
2009-05-14 16:24:04 +00:00
okan
0eea198f30
right and middle mouse buttons swapped; from rgouveia@cosmico.net
2009-05-04 22:01:35 +00:00
okan
fcc63352ee
no need to use the global here.
...
ok todd@ oga@
2009-05-04 19:13:33 +00:00