aboutsummaryrefslogtreecommitdiffstats
path: root/screen.c (follow)
Commit message (Collapse)AuthorAgeLines
* Refactor callbacks to take a void * so as to not try and generalize intookan2016-10-18-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.
* When removing xrandr regions, ensure clients are within the bounds ofokan2016-10-04-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.
* Turn CALMWM_NGROUPS define into variable, ngroups.okan2016-10-04-2/+2
|
* During init, query screen for _NET_ACTIVE_WINDOW and set that client asokan2016-09-16-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).
* Partial revert of replacing screen_area() with region_find(); until aokan2015-11-11-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.
* Extend region to include both view and work areas; switch tookan2015-11-09-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.
* Fix whitespace.okan2015-08-21-5/+5
|
* Re-implement XClientMessage handling so that we can feed screen_find andokan2015-06-30-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.
* region is a _ctx, so name it sookan2015-06-26-17/+17
|
* Mechanical change from xinerama to region backed areas.okan2015-06-26-9/+6
|
* collect 'gap' applicationsokan2015-06-26-11/+15
|
* Replace screen region info gathering with XRandR equivalent of Xineramaokan2015-06-26-17/+28
| | | | | queries (currently act on XRandR events anyway). Fall-back mode without XRandR is still what X provides. This removes -lXinerama.
* Switch to limits.h; replace MAXPATHLEN and MAXHOSTNAMELEN with PATH_MAXokan2015-01-19-2/+3
| | | | | | and HOST_NAME_MAX+1, respectively. ok doug@
* no need for calloc(1,.. here, malloc is fine since we initializeokan2014-10-08-2/+3
|
* make group_init work like other *_init'sokan2014-10-08-2/+4
|
* Move stuff that doesn't belong in group_init; while here, explicitlyokan2014-09-23-1/+10
| | | | initialize hideall and cycling.
* Remove duplicate client queue (mruq); instead, remove and take theokan2014-09-08-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).
* more style nitsokan2014-09-07-6/+6
|
* screen_fromroot -> screen_findokan2014-09-07-3/+3
|
* gc->hidden has never consistently kept track of a group's state;okan2014-08-24-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.
* Purely mechanical; unify 'num', 'no' and 'shortcut'.okan2014-08-20-4/+4
|
* whitespaceokan2014-08-20-2/+2
|
* Make sure we cycle through existing client's group membership and setokan2014-02-08-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).
* Introduce a region queue and replace screen's XineramaScreenInfo; weokan2014-02-03-23/+27
| | | | | still use Xinerama to populate the regions per screen, but will switch at a more appropriate time.
* make this XQueryTree like the otherokan2014-02-03-13/+11
|
* Move redundant bits from screen_init (while dealing with existingokan2014-02-03-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.
* No need to store screen colormap and visual; rather just use the Xokan2014-02-02-3/+1
| | | | macros in the one place they are needed.
* Unlike free(3), XFree(3) can't be passed a NULL pointer.okan2014-02-02-3/+3
|
* move some init up and shed some blank linesokan2014-01-27-6/+4
|
* use consistent typesokan2014-01-03-3/+3
|
* Teach screen_find_xinerama() to apply gap only when told to do so;okan2013-12-13-6/+12
| | | | adjust callers. Needed for an upcoming feature.
* move Cursors into conf.okan2013-06-17-2/+2
|
* - configure menuwin with the screen, then create the xft drawable usingokan2013-05-20-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
* new -> initokan2013-05-11-2/+2
|
* replace conf_{gap,color,font} with conf_screen since really we areokan2013-05-11-4/+2
| | | | | configuring the screen *after* parsing, just as we do a conf_client on client manage.
* group conf_* init functionsokan2013-04-30-6/+4
|
* use an int in screen_init and avoid needing to cast for screen number (which).okan2013-04-29-2/+2
|
* push Screenq into screen_initokan2013-04-12-2/+7
|
* teach screen_find_xinerama() about gap and adjust (simplify) callers;okan2013-01-08-6/+6
| | | | menu becomes gap-aware for free.
* revert previousokan2013-01-07-3/+3
|
* unbreak xinerama support from r1.41 for panning setupsokan2013-01-07-3/+3
|
* merge in Xinerama screen query; no functional change.okan2013-01-02-23/+11
|
* have screen_find_xinerama() return struct geom *reliably* instead ofokan2013-01-02-6/+14
| | | | XineramaScreenInfo; simplifies goop around the callers.
* expand CHILDMASKokan2012-12-18-3/+4
|
* stash the default screen visual and colormap in screen_ctxokan2012-12-17-1/+3
|
* x_setupscreen -> screen_init; no functional change.okan2012-11-29-1/+55
|
* sortokan2012-11-09-2/+2
|
* Further simplify Xinerama init and re-init on XRR events.okan2012-07-18-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.
* check valueokan2012-07-16-2/+2
|
* move the HasXinerama check into screen_find_xinerama and simplify logic;okan2012-07-16-1/+4
| | | | moves closer to logic in menu code.