summary refs log tree commit diff
path: root/mousefunc.c
Commit message (Collapse)AuthorAgeFilesLines
* cvsimportokan2016-09-141-7/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/master: Some clients fail to setup hints at all, so initalize for them; fallout from r1.218 switching to malloc - clearly missed this case. Fix-up a few simple uses of client_current(): check CLIENT_ACTIVE flag instead of relying on curcc. init label Limit mouse resize to hints within the client; matches kbd resize behaviour. Switch to just malloc since we need initialize most everything anyway. change 'sticky' to 'stick' to toggle client stickiness (seems the default binding worked for everyone for a long time!); conflict with group sticky found by Ali Farzanrad - thanks! Simplify group_holds_only_hidden(); from Vadim Vygonets. Simplify toggling flags; from Vadim Vygonets. Do not draw borders on ignored clients when returning from fullscreen; from Vadim Vygonets. Remove redundant minimum client size adjustment (minw and minh are always positive since r1.214); from Vadim Vygonets.
| * Limit mouse resize to hints within the client; matches kbd resizeokan2016-09-131-7/+2
| | | | | | | | behaviour.
* | cvsimportokan2015-11-171-16/+7
|\| | | | | | | | | | | | | * refs/heads/master: Fix a typo from r1.201; fixes window_grouptoggle binding. If a client does not set increment values, use 'moveamount' as a way to scale keyboard based resizes; extend kbfunc_amount(). Inline the only use of mousefunc_sweep_calc.
| * Inline the only use of mousefunc_sweep_calc.okan2015-11-171-16/+7
| |
* | cvsimportokan2015-11-121-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/master: more client vs screen context differences If a client sets hints, honor them for kb resize requests, just like we do for mouse based resize requests. Move kb pointer movement out of the kbfunc_client_moveresize since it's got nothing to do with clients, thus doing flags work causes lots of waste and almost useless jumpy pointer movements; while here, split out move and resize since they share almost no code, just like mouse client move/resize; factor out amount and factor. Still wonder why this is here, but it works now. pledge "stdio rpath proc exec" cwm before main event loop, after init/setup - mostly for menu building. Partial revert of replacing screen_area() with region_find(); until a 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. Use position on root to figure out region. Start cleaning up name vs function differences; replace magic numbers. Clean up unused defines. Extend region to include both view and work areas; switch to 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.
| * Partial revert of replacing screen_area() with region_find(); until aokan2015-11-111-5/+6
| | | | | | | | | | | | 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.
| * Use position on root to figure out region.okan2015-11-101-2/+1
| |
| * Start cleaning up name vs function differences; replace magic numbers.okan2015-11-101-1/+1
| |
| * Extend region to include both view and work areas; switch tookan2015-11-091-5/+5
| | | | | | | | | | | | | | 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.
* | cvsimportokan2015-08-281-3/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/master: (21 commits) Lost fix from r1.112; add comment. Mechanical change: group->gc Add consistent checks against NULL. Move client cycle grab/ungrab into a more relevant place; while here, update comments about why we need to grab/ungrab the keyboard. Re-add lost chunk in group_cycle from r1.113. Further simplify _NET_WM_DESKTOP handling using new group_assign(). oops; remove left over debug print Allowing sending a valid 'nogroup' (0) group_ctx to group_assign() (since we init all groups), though assigning the client's group to NULL for 'sticky'; use this simplification in a few places (others to follow). Split out sticky mode checks and the restoring of a client's group and _NET_WM_DESKTOP from the config-based auto-grouping; no (intentional) behavior changes. Needed for further work in cleaning up this area. Implement _NET_CLIENT_LIST_STACKING (from Thomas Admin), but bottom-to-top order, as per spec (notified Thomas as well). Don't allow freeze operations on fullscreen (consistent with what fullscreen does). Sort _NET_WM_STATE Atoms like the spec. Move CLIENT_STICKY logic from client hide/unhide to group hide/unhide; rationale being that clients should be able to hide/unhide independently of group switching. Add Xkb modifier to ignore mask; from Alexander Polakov. Fix whitespace. Add client freeze extension to _NET_WM_STATE Atom, allowing flag to persist. As usual with new Atoms, requires X restart. _NET_WM_STATE_STICKY implies only sticky at the group/desktop level, not position and size; based on discussion with a few. Instead of special casing the 'term' and 'lock' commands, go back to keeping them hidden; showing them has apparently caused confusion/angst. Leave command list order from .cwmrc alone; remove sort. Bring group and client cycle closer together. ...
| * _NET_WM_STATE_STICKY implies only sticky at the group/desktop level, notokan2015-08-211-2/+2
| | | | | | | | position and size; based on discussion with a few.
| * Instead of special casing the 'term' and 'lock' commands, go back tookan2015-08-211-1/+5
| | | | | | | | keeping them hidden; showing them has apparently caused confusion/angst.
* | cvsimportokan2015-07-121-6/+4
|\|
| * introduce 'groupsearch' for group menu search; matches on either groupokan2015-07-121-4/+2
| | | | | | | | number/shortcut and/or name.
| * styleokan2015-07-011-3/+3
| |
* | cvsimportChristian Neukirchen2015-07-011-6/+6
|\|
| * no longer need to pass down format strings after introducing search_print_cmdokan2015-06-301-1/+1
| |
| * Introduce a callback for cmd menu printing, special-casing 'lock' andokan2015-06-301-1/+1
| | | | | | | | 'term'.
| * Mechanical change from xinerama to region backed areas.okan2015-06-261-4/+4
| |
* | cvsimportokan2015-06-091-25/+6
|\|
| * switch to search_print_client() as the print callback since it will now ↵okan2015-06-081-7/+2
| | | | | | | | display labels as well
| * stash window dimensionsokan2015-06-081-3/+1
| |
| * even if the menuq is empty, at least show an empty menu instead of justokan2015-06-071-6/+0
| | | | | | | | bailing making it look like the binding isn't working.
| * add a flag to indicate a menu list instead of overloading 'prompt'okan2015-06-051-3/+3
| |
| * merge kbd and mouse grouptoggleokan2015-05-211-6/+0
| |
* | cvsimportChristian Neukirchen2015-01-221-1/+2
|\|
| * Switch to limits.h; replace MAXPATHLEN and MAXHOSTNAMELEN with PATH_MAXokan2015-01-191-1/+2
| | | | | | | | | | | | and HOST_NAME_MAX+1, respectively. ok doug@
* | cvsimportokan2014-09-271-1/+1
|\|
| * these have nothing to do with 'sticky', but rather group membership; rename.okan2014-09-271-1/+1
| |
* | cvsimportokan2014-09-181-23/+22
|\|
| * Move motion time check to the top of each MotionNotify block (andokan2014-09-181-16/+15
| | | | | | | | | | | | eliminate from ButtonRelease); further limits the amount of work done outside the threshold, notably mousefunc_sweep_calc, screen_find_xinerama and client_snapcalc.
| * ewmh states _NET_WM_STATE_STICKY should not alter positionokan2014-09-171-2/+2
| |
| * Use a similarly named check as sticky for hidden check in a group.okan2014-09-171-2/+2
| |
| * Introduce a check to see if a group holds only 'sticky' clients and useokan2014-09-171-1/+1
| | | | | | | | | | | | | | | | this check to decide if a group is virtually empty. Rationale: if a group contains *only* 'sticky' clients, it should be skipped while cycling through groups. Apply similar logic to the group menu. Based on an idea from phessler@, who also tested another version.
| * name the group client queue appropriately, like other queuesokan2014-09-081-1/+1
| |
| * 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).
| * Now that a group knows its screen, only pass down the group_ctx.okan2014-09-081-1/+1
| |
* | cvsimportChristian Neukirchen2014-09-071-7/+27
|\|
| * Rework group names: stash the group name inside the group_ctx as opposedokan2014-09-061-1/+1
| | | | | | | | | | | | to having to manage an array outside in screen_ctx for group names and shortcuts. Simplifies (and moves bits for) reading, and constructing data for, EWMH's _NET_DESKTOP_NAMES.
| * bring menu bits closer togetherokan2014-09-021-3/+2
| |
| * add explicit paran and drop some empty lines bringing like functions closerokan2014-09-011-5/+2
| |
| * Merge group_menu into mousefunc_menu_group.okan2014-09-011-1/+25
| |
| * Fix nogroup regression, where nogroup became an actual group - theokan2014-08-221-1/+2
| | | | | | | | | | | | | | | | | | | | symantics between cwm groups and ewmh got in the way. Ensure a client that wants to be in nogroup stays in nogroup (thus stays in view), even when (re)reading NET_WM_DESKTOP. Paritially reverts patchset 644 (2014-02-07 13:09 PST) which deals with a NULL cc->group. All to be revisited when NET_WM_STATE_STICKY hits cwm. Reported by many; testing and ok phessler.
| * Purely mechanical; unify 'num', 'no' and 'shortcut'.okan2014-08-201-2/+1
| |
* | cvsimportokan2014-02-081-1/+1
|\|
| * all mapped clients now should have a group, so simplify some casesokan2014-02-071-1/+1
| |
* | cvsimportokan2014-01-301-25/+0
|\|
| * Remove duplicate mouse functions and instead use the kbfunc ones. Nookan2014-01-301-25/+0
| | | | | | | | | | user visable changes at this point, but they'll merge at an appropriate time.
* | cvsimportokan2014-01-291-7/+6
|\|
| * Minimize trivial differences between a few kb and mb functions.okan2014-01-291-7/+6
| |