aboutsummaryrefslogtreecommitdiffstats
path: root/screen.c (unfollow)
Commit message (Collapse)AuthorLines
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.
2013-04-30group conf_* init functionsokan-6/+4
2013-04-29use an int in screen_init and avoid needing to cast for screen number (which).okan-2/+2
2013-04-12push Screenq into screen_initokan-2/+7
2013-01-08teach screen_find_xinerama() about gap and adjust (simplify) callers;okan-6/+6
menu becomes gap-aware for free.
2013-01-07revert previousokan-3/+3
2013-01-07unbreak xinerama support from r1.41 for panning setupsokan-3/+3
2013-01-02merge in Xinerama screen query; no functional change.okan-23/+11
2013-01-02have screen_find_xinerama() return struct geom *reliably* instead ofokan-6/+14
XineramaScreenInfo; simplifies goop around the callers.
2012-12-18expand CHILDMASKokan-3/+4
2012-12-17stash the default screen visual and colormap in screen_ctxokan-1/+3
2012-11-29x_setupscreen -> screen_init; no functional change.okan-1/+55
2012-11-09sortokan-2/+2
2012-07-18Further simplify Xinerama init and re-init on XRR events.okan-16/+6
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-16check valueokan-2/+2
2012-07-16move the HasXinerama check into screen_find_xinerama and simplify logic;okan-1/+4
moves closer to logic in menu code.
2012-07-13convert xmax/ymax uses to view geometry.okan-4/+1
2012-07-13introduce screen "view" area and "work" area (gap applied) to simplifyokan-1/+11
various blocks that require understanding the screen geometry.
2012-07-06querying for Xinerama should be done per display, not per screen, sookan-1/+9
move chuck to display init; allows some shuffling to occur limiting screen_init_xinerama()'s scope while keeping order intact.