aboutsummaryrefslogtreecommitdiffstats
path: root/screen.c (unfollow)
Commit message (Collapse)AuthorLines
2021-04-27Add BSD compatibility functions and headersWynn Wolf Arbor-1/+1
Original file locations in the OpenBSD tree: - lib/libc/stdlib/reallocarray.c - lib/libc/stdlib/strtonum.c - lib/libc/string/strlcat.c - lib/libc/string/strlcpy.c - sys/sys/queue.h
2020-03-26Instead of using _NET_ACTIVE_WINDOW on restart, use the pointer location to ↵okan-11/+18
determine what client to set active. Reduces a round trip for every window.
2020-03-26Trim event_mask to those that the root window actually needs.okan-11/+8
2020-03-18Unrelated style fixes, consistency changes and sorting, appropriate ↵okan-16/+24
dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
2020-03-18add, then use, xvasprintf, checking for appropriate return.okan-5/+2
2019-03-08Print window id in hex; while here, remove unnecessary newline.okan-2/+2
2019-03-04Separate out the menu window from the client resize/move geom window; in eachokan-1/+46
case, create and destroy on-demand. Isolate more menu specific code.
2019-03-04fix a few misplaced (and misnamed) ewmh root window functionsokan-3/+3
2019-03-04_NET_WORKAREA needs ngroups, so screen_update_geometry() needs to come afterokan-2/+2
conf_group().
2019-03-01Tie group number and name together during config.okan-5/+2
2018-02-13Store the screen's visual type and colormap.okan-1/+3
2018-02-13Consolidate region 'view' and 'area'.okan-9/+5
2018-02-09limit scope of screen_apply_gap()okan-2/+4
2018-01-23Fix wins comparison declaration since it's unsigned from XQueryTree().okan-4/+5
2016-10-24Sprinkle __func__ in appropriate error messages.okan-2/+2
2016-10-18Refactor callbacks to take a void * so as to not try and generalize intookan-5/+5
client_ctx in keypress and buttonpress event handlers; pass appropriate *ctx's based on context. While here, limit some globals, replace defines with appropriate variables and fix some naming.
2016-10-04When removing xrandr regions, ensure clients are within the bounds ofokan-1/+24
the screen; adapted from an ancient diff from Sviatoslav Chagaev. Things in this area will likely change, but put this in so it works now and serves as a reminder.
2016-10-04Turn CALMWM_NGROUPS define into variable, ngroups.okan-2/+2
2016-09-16During init, query screen for _NET_ACTIVE_WINDOW and set that client asokan-3/+4
active; while we already look at what's under the pointer, use this information first, then look under the pointer (saving that round-trip). This restores the active state to a client after restart even if the pointer is not above it (and of course the pointer is not above another client).
2015-11-11Partial revert of replacing screen_area() with region_find(); until aokan-1/+23
fix for a regression is found; this bug has been around for a long time it seems, but this change exposed it. Likely need to track clients in to and out of regions.
2015-11-09Extend region to include both view and work areas; switch tookan-16/+21
region_find() which no longer needs to recalculate gap each time a client (or menu) is created or altered. If no RandR, fall back to display dimensions while building regions instead of during execution.
2015-08-21Fix whitespace.okan-5/+5
2015-06-30Re-implement XClientMessage handling so that we can feed screen_find andokan-3/+3
client_find valid resources as needed, relieving the need for screen_find to ungracefully handle invalid root windows. Removes a long standing XXX. Should theoretically allow XClientMessage handling on more than one X screen. Alter callers of screen_find to handle failures.
2015-06-26region is a _ctx, so name it sookan-17/+17
2015-06-26Mechanical change from xinerama to region backed areas.okan-9/+6
2015-06-26collect 'gap' applicationsokan-11/+15
2015-06-26Replace screen region info gathering with XRandR equivalent of Xineramaokan-17/+28
queries (currently act on XRandR events anyway). Fall-back mode without XRandR is still what X provides. This removes -lXinerama.
2015-01-19Switch to limits.h; replace MAXPATHLEN and MAXHOSTNAMELEN with PATH_MAXokan-2/+3
and HOST_NAME_MAX+1, respectively. ok doug@
2014-10-08no need for calloc(1,.. here, malloc is fine since we initializeokan-2/+3
2014-10-08make group_init work like other *_init'sokan-2/+4
2014-09-23Move stuff that doesn't belong in group_init; while here, explicitlyokan-1/+10
initialize hideall and cycling.
2014-09-08Remove duplicate client queue (mruq); instead, remove and take theokan-2/+2
global Clientq and place it inside screen_ctx since every client belongs to a screen, then use the same per screen clientq to track stacking order (the sole reason for mruq).
2014-09-07more style nitsokan-6/+6
2014-09-07screen_fromroot -> screen_findokan-3/+3
2014-08-24gc->hidden has never consistently kept track of a group's state;okan-2/+1
group_show() and group_hide() are not the only ways a group can change state - if all clients in a group are either hidden or unhidden, then that group's state should change, as well as the various EWMH ways. Instead of trying to keep track in a wide variety of places, simply query the clients in a group before needing to take action based on the group's state. Solves long standing confusion of when a group is hidden or not.
2014-08-20Purely mechanical; unify 'num', 'no' and 'shortcut'.okan-4/+4
2014-08-20whitespaceokan-2/+2
2014-02-08Make sure we cycle through existing client's group membership and setokan-1/+2
the hidden state on the group; important to know group hidden state after a re-exec or restart of cwm (as easily seen in group menu).
2014-02-03Introduce a region queue and replace screen's XineramaScreenInfo; weokan-23/+27
still use Xinerama to populate the regions per screen, but will switch at a more appropriate time.
2014-02-03make this XQueryTree like the otherokan-13/+11
2014-02-03Move redundant bits from screen_init (while dealing with existingokan-12/+6
clients) directly into client_init, performing the X roundtrip only once. With the previous change in maprequest, this moves decision making into one place for creating new clients.
2014-02-02No need to store screen colormap and visual; rather just use the Xokan-3/+1
macros in the one place they are needed.
2014-02-02Unlike free(3), XFree(3) can't be passed a NULL pointer.okan-3/+3
2014-01-27move some init up and shed some blank linesokan-6/+4
2014-01-03use consistent typesokan-3/+3
2013-12-13Teach screen_find_xinerama() to apply gap only when told to do so;okan-6/+12
adjust callers. Needed for an upcoming feature.
2013-06-17move Cursors into conf.okan-2/+2
2013-05-20- configure menuwin with the screen, then create the xft drawable usingokan-2/+1
the menu window since that's the only place on which we draw - elminate the need to change the drawable on every font draw
2013-05-11new -> initokan-2/+2
2013-05-11replace conf_{gap,color,font} with conf_screen since really we areokan-4/+2
configuring the screen *after* parsing, just as we do a conf_client on client manage.