summary refs log tree commit diff
path: root/screen.c
Commit message (Collapse)AuthorAgeFilesLines
* Add group-last command that shows only the previously active group; ok okanop2022-01-271-0/+1
|
* Instead of using _NET_ACTIVE_WINDOW on restart, use the pointer locationokan2020-03-241-10/+17
| | | | | to determine what client to set active. Reduces a round trip for every window.
* Trim event_mask to those that the root window actually needs.okan2020-03-201-10/+7
|
* Unrelated style fixes, consistency changes and sorting, appropriateokan2020-02-271-15/+23
| | | | | dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
* add, then use, xvasprintf, checking for appropriate return.okan2020-01-221-4/+1
|
* Print window id in hex; while here, remove unnecessary newline.okan2019-03-081-1/+1
|
* Separate out the menu window from the client resize/move geom window; in eachokan2019-03-041-0/+45
| | | | case, create and destroy on-demand. Isolate more menu specific code.
* fix a few misplaced (and misnamed) ewmh root window functionsokan2019-03-041-2/+2
|
* _NET_WORKAREA needs ngroups, so screen_update_geometry() needs to come afterokan2019-03-041-1/+1
| | | | conf_group().
* Tie group number and name together during config.okan2019-03-011-4/+1
|
* Store the screen's visual type and colormap.okan2018-02-131-0/+2
|
* Consolidate region 'view' and 'area'.okan2018-02-131-8/+4
|
* limit scope of screen_apply_gap()okan2018-02-091-1/+3
|
* Fix wins comparison declaration since it's unsigned from XQueryTree().okan2018-01-231-3/+4
|
* Sprinkle __func__ in appropriate error messages.okan2016-10-241-1/+1
|
* Refactor callbacks to take a void * so as to not try and generalize intookan2016-10-181-4/+4
| | | | | | | | 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-041-0/+23
| | | | | | 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-041-1/+1
|
* During init, query screen for _NET_ACTIVE_WINDOW and set that client asokan2016-09-161-2/+3
| | | | | | | | 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-111-0/+22
| | | | | | 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-091-15/+20
| | | | | | | 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-211-4/+4
|
* Re-implement XClientMessage handling so that we can feed screen_find andokan2015-06-301-2/+2
| | | | | | | | 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-261-16/+16
|
* Mechanical change from xinerama to region backed areas.okan2015-06-261-8/+5
|
* collect 'gap' applicationsokan2015-06-261-10/+14
|
* Replace screen region info gathering with XRandR equivalent of Xineramaokan2015-06-261-16/+27
| | | | | 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-191-1/+2
| | | | | | and HOST_NAME_MAX+1, respectively. ok doug@
* no need for calloc(1,.. here, malloc is fine since we initializeokan2014-10-081-1/+2
|
* make group_init work like other *_init'sokan2014-10-081-1/+3
|
* Move stuff that doesn't belong in group_init; while here, explicitlyokan2014-09-231-0/+9
| | | | initialize hideall and cycling.
* Remove duplicate client queue (mruq); instead, remove and take theokan2014-09-081-1/+1
| | | | | | 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-071-5/+5
|
* screen_fromroot -> screen_findokan2014-09-071-2/+2
|
* gc->hidden has never consistently kept track of a group's state;okan2014-08-241-1/+0
| | | | | | | | | | 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-201-3/+3
|
* whitespaceokan2014-08-201-1/+1
|
* Make sure we cycle through existing client's group membership and setokan2014-02-081-0/+1
|\ | | | | | | | | 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-031-22/+26
| | | | | | | | | | still use Xinerama to populate the regions per screen, but will switch at a more appropriate time.
* | make this XQueryTree like the otherokan2014-02-031-12/+10
| |
* | Move redundant bits from screen_init (while dealing with existingokan2014-02-031-11/+5
| | | | | | | | | | | | 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-021-2/+0
| | | | | | | | macros in the one place they are needed.
* | Unlike free(3), XFree(3) can't be passed a NULL pointer.okan2014-02-021-2/+2
| |
* | move some init up and shed some blank linesokan2014-01-271-5/+3
| |
* | use consistent typesokan2014-01-031-2/+2
| |
* | Teach screen_find_xinerama() to apply gap only when told to do so;okan2013-12-131-5/+11
| | | | | | | | adjust callers. Needed for an upcoming feature.
* | move Cursors into conf.okan2013-06-171-1/+1
| |
* | - configure menuwin with the screen, then create the xft drawable usingokan2013-05-201-1/+0
| | | | | | | | | | 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-111-1/+1
| |
* | replace conf_{gap,color,font} with conf_screen since really we areokan2013-05-111-3/+1
| | | | | | | | | | configuring the screen *after* parsing, just as we do a conf_client on client manage.