Commit Graph

  • ed22d7a944 Define callbacks, then default bindings. okan 2016-11-14 21:25:59 +0000
  • 64e133b289 Reorganize for upcoming changes. okan 2016-11-14 19:56:05 +0000
  • 98c913cc3b Remove the (8) default bindings for pointer move since they conflict with default bindings for emacs, which wins; the feature remains and can be bound to whatever users wish with cwmrc(5). okan 2016-11-14 13:52:33 +0000
  • dcb741d2b1 cvsimport okan 2016-10-24 20:44:08 +0000
  • db93599a0f Make it clear these are flags. okan 2016-10-24 20:44:08 +0000
  • 972e28d58c Remove duplicate check that strsubmatch() already does; while here, fix a comment. okan 2016-10-24 18:57:12 +0000
  • eb43101591 Sprinkle __func__ in appropriate error messages. okan 2016-10-24 17:39:38 +0000
  • ffd60b3cab Get rid of 'matchname'; it's too surprising to have the menu change during client search as different potential str matches are cycled through. If there's interest, the only string that doesn't exist in the listing is the window's class - that can be added of course, but it makes the line too long imho. okan 2016-10-24 17:16:23 +0000
  • b1af1bedd0 clean up search_match_client(); no behaviour change okan 2016-10-22 19:16:43 +0000
  • 0bb1be86c6 Refactor callbacks to take a void * so as to not try and generalize into client_ctx in keypress and buttonpress event handlers; pass appropriate *ctx's based on context. okan 2016-10-18 17:03:30 +0000
  • 38eac7d7e9 remove another unused proto okan 2016-10-12 16:11:15 +0000
  • 15bf703e1c Rename 2 kbfunc to match closer to what they do okan 2016-10-06 14:53:52 +0000
  • 987ee736b9 Add an argument to the callbacks to pass the xevent context, button or key press. This allows to remove a few hacks to duplicate functions only for behaviour changes; now differing behaviours are pushed down to the callback. Also will allow for previously unavailable actions to be bind-able down the road. okan 2016-10-06 14:41:19 +0000
  • 66f5360fd4 Check the ptr bounds in the new client during cycling, since not all actions do ptrsave, such as restoring client geometry; adapted from a diff by Vadim Vygonets. okan 2016-10-06 14:30:05 +0000
  • e7dcb17e1e More accurate to say 'toggle', rather than 'select', for group[n]/nogroup. okan 2016-10-05 14:01:23 +0000
  • c131620d7b Add CM-a for 'nogroup' (CM-0 stays for now); update manpage to reflect. okan 2016-10-05 13:35:17 +0000
  • d40820d3f3 Stash wmname into conf. okan 2016-10-05 13:10:59 +0000
  • a37606c63f When removing xrandr regions, ensure clients are within the bounds of 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. okan 2016-10-04 20:15:55 +0000
  • 5c13775d31 Calculate client nameqlen in client_setname(), the only place it's needed/used. okan 2016-10-04 15:52:32 +0000
  • 9306c1fbd3 Turn CALMWM_NGROUPS define into variable, ngroups. okan 2016-10-04 15:18:20 +0000
  • 8aa5033d12 Start simplifying menu code; and in turn, remove a cursor no longer needed. okan 2016-10-03 18:43:49 +0000
  • 03f5dc219e Defaults are split between defines and conf_init(); normalize these, as well as give 'sticky' groups its own variable. okan 2016-10-03 14:42:34 +0000
  • 792f85cde9 For both kb and mouse move, it is possible to grab a client and move it completely off the screen/region; instead, if the pointer is outside of the client bounds, warp the pointer to the closest edge before moving. okan 2016-10-03 13:52:17 +0000
  • a8a111dffd client_ptrwarp should not deal with unhiding or raising clients (non ptr requests); most callers do this already - deal with the few that do not. client_ptrwarp becomes a simple wrapper (setpos) but it will be expanded. okan 2016-10-03 13:41:30 +0000
  • 1d3a6905f1 remove unused proto okan 2016-09-30 21:44:51 +0000
  • 1c54fc079d Set the initial ptr position during client init, instead of waiting until (maybe) a ptrwarp call. Likewise, explicitly ensure an inbounds ptr position (same as initial) when saving. okan 2016-09-30 20:55:54 +0000
  • 2d8f621b8d Use instinsic X11 functions for key/btn/ptr grab/ungrab/regrab requests; the one line wrappers provided no value and limited altering calls where needed; additionally, most of them had but one caller. okan 2016-09-30 18:28:06 +0000
  • 8b26a43bf1 Replace mousefunc_sweep_draw() with a generic menu_windraw() using va lists; use it appropriately for both window dimension and position in the respective mousefunc calls. okan 2016-09-30 15:12:19 +0000
  • f63b2e2341 Switch to XWindowEvent() pulling out events that match the mask *and* window. okan 2016-09-30 15:05:02 +0000
  • 24d6348e52 no need to unmap menu window again okan 2016-09-29 00:30:40 +0000
  • 0e8c706633 Mechanical change: move screen menu bits to their own struct. okan 2016-09-29 00:21:55 +0000
  • 92b81d3df5 Inline Xft draw and extents wrappers; too much abstraction. okan 2016-09-28 17:06:33 +0000
  • b32989d379 Do not call sweep_draw() too early: don't yet have w/h dimensions; plus we will get a MotionNotify event right away anyway, setting required parameters. okan 2016-09-28 15:54:54 +0000
  • 57b2a6cf79 Continue merging kb and mouse functions: fold mousefunc_menu_{client,cmd,group} into the respective kbfunc_menu_{client,cmd,group} functions; simply pass a flag down from config denoting mouse action behaviour. okan 2016-09-22 14:36:03 +0000
  • 3947f1268a Allow ctrl-[ for abort (esc); from Benjamin Scher Purcell okan 2016-09-20 19:58:54 +0000
  • 08631748fd de-static client_inbound() okan 2016-09-20 19:11:19 +0000
  • 74e4a3c60b remove debug that accidentally snuck in okan 2016-09-20 18:23:12 +0000
  • 9cf3174696 Get rid of curcc, instead cycle through the queue; removes the need for client_none(). okan 2016-09-20 18:21:32 +0000
  • fa06851b0e cvsimport okan 2016-09-16 14:32:02 +0000
  • 6a53e3a859 During init, query screen for _NET_ACTIVE_WINDOW and set that client as 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). okan 2016-09-16 14:32:02 +0000
  • 8d44e4b3e8 cvsimport okan 2016-09-14 21:00:24 +0000
  • 2bbe111cc0 Some clients fail to setup hints at all, so initalize for them; fallout from r1.218 switching to malloc - clearly missed this case. okan 2016-09-14 21:00:24 +0000
  • b8933ebcca Fix-up a few simple uses of client_current(): check CLIENT_ACTIVE flag instead of relying on curcc. okan 2016-09-14 19:45:33 +0000
  • 9124a561e3 init label okan 2016-09-13 17:42:58 +0000
  • a94254137c Limit mouse resize to hints within the client; matches kbd resize behaviour. okan 2016-09-13 13:42:28 +0000
  • e1234b75b8 Switch to just malloc since we need initialize most everything anyway. okan 2016-09-12 13:48:41 +0000
  • b14a4b222d 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! okan 2016-09-12 13:47:00 +0000
  • c82c3f0835 Simplify group_holds_only_hidden(); from Vadim Vygonets. okan 2016-09-02 16:07:11 +0000
  • 67a9eaa440 Simplify toggling flags; from Vadim Vygonets. okan 2016-09-02 15:08:44 +0000
  • 44f3fefe11 Do not draw borders on ignored clients when returning from fullscreen; from Vadim Vygonets. okan 2016-09-01 18:38:52 +0000
  • 4cf9a34b65 Remove redundant minimum client size adjustment (minw and minh are always positive since r1.214); from Vadim Vygonets. okan 2016-09-01 18:34:04 +0000
  • d2616ce397 cvsimport okan 2016-08-28 15:23:24 +0000
  • 8c1b05e534 Enable the use of numpad Enter key on menus; from Henrique N. Lengler. okan 2016-08-28 15:23:24 +0000
  • 319b388b42 cvsimport matthieu 2016-08-13 09:59:48 +0000
  • 5015c850bd add a column to previous commit for consitency. matthieu 2016-08-13 09:59:48 +0000
  • 375368a94c conf_screen: report the fontname that can't be opened in case of failure. ok dcoppa@ matthieu 2016-08-13 09:58:37 +0000
  • bbbaacf177 cvsimport Christian Neukirchen 2016-06-08 13:18:37 +0200
  • ffc365bc5d If supplied format to menuq_add() is NULL, fill text with an empty string; found by Christian Neukirchen. okan 2016-04-28 16:28:38 +0000
  • a889f32af6 menu: menuq_add: avoid passing null pointers to vsnprintf. Christian Neukirchen 2016-04-02 17:21:04 +0200
  • 47f04cdfc6 Merge 9a3022c657 into f9e9f76856 Taylan Tatlı 2016-04-02 07:59:12 +0000
  • 9a3022c657 Update kbfunc.c Taylan Tatlı 2016-04-02 10:56:40 +0300
  • 0c17325df9 Update kbfunc.c Taylan Tatlı 2016-04-02 10:50:26 +0300
  • 35a6513317 Update kbfunc.c Taylan Tatlı 2016-04-02 10:41:55 +0300
  • 2c14afffd2 Update conf.c Taylan Tatlı 2016-04-02 10:28:52 +0300
  • ad022bf09b Update calmwm.h Taylan Tatlı 2016-04-02 10:15:01 +0300
  • dd0c112678 Update calmwm.h Taylan Tatlı 2016-04-02 10:14:28 +0300
  • 437109a747 Update calmwm.h Taylan Tatlı 2016-04-02 10:13:46 +0300
  • f9e9f76856 cvsimport okan 2015-11-17 15:19:19 +0000
  • 4ac6daa27d Fix a typo from r1.201; fixes window_grouptoggle binding. okan 2015-11-17 15:19:19 +0000
  • 8aa2f317af If a client does not set increment values, use 'moveamount' as a way to scale keyboard based resizes; extend kbfunc_amount(). okan 2015-11-17 14:32:38 +0000
  • e8d77b6890 Inline the only use of mousefunc_sweep_calc. okan 2015-11-17 14:31:28 +0000
  • 669631e5fa Run pledge only on OpenBSD. Christian Neukirchen 2015-11-16 14:47:21 +0100
  • b2cb9b9524 Merge 3ac907dc10 into cd21e16675 Vadim Vygonets 2015-11-16 13:21:16 +0000
  • 3ac907dc10 Reintroduce __dead Vadim Vygonets 2015-11-16 11:41:34 +0100
  • 8fdb7d486c Only pledge on OpenBSD Vadim Vygonets 2015-11-16 11:41:15 +0100
  • 4e51ce57a7 cvsimport okan 2015-11-12 21:28:03 +0000
  • 3d7df63f05 cvsimport okan 2015-11-12 21:28:03 +0000
  • 323672ace7 more client vs screen context differences okan 2015-11-12 21:28:03 +0000
  • 4aca2b8764 If a client sets hints, honor them for kb resize requests, just like we do for mouse based resize requests. okan 2015-11-12 18:33:30 +0000
  • 9a48836ceb 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. okan 2015-11-12 18:26:41 +0000
  • a2c066e447 pledge "stdio rpath proc exec" cwm before main event loop, after init/setup - mostly for menu building. okan 2015-11-12 17:56:54 +0000
  • 00bdd48b1d 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. okan 2015-11-11 14:22:01 +0000
  • 09565bc423 Use position on root to figure out region. okan 2015-11-10 22:06:57 +0000
  • e20110f344 Start cleaning up name vs function differences; replace magic numbers. okan 2015-11-10 20:05:33 +0000
  • 31c74e9157 Clean up unused defines. okan 2015-11-09 20:15:23 +0000
  • d7bd299819 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. okan 2015-11-09 20:03:29 +0000
  • cd21e16675 cvsimport okan 2015-09-23 14:09:40 +0000
  • 5fcf251672 Only when mapping clients from an initial wm start or restart, query the pointer and if it matches the child window, activate it; new clients will not need to make this roundtrip to the server. okan 2015-09-23 14:09:40 +0000
  • 0fdcf3f3df On execwm, we should properly release resources before exec'ing into a new window manager; so allow CWM_EXEC_WM to assign new wm to wm_argv and pass through cwm_status (now EXECWM) so that x_teardown() gets called before exec'ing the new window manager. Removes the need for a separate x_restart() now, using new wm_argv; and consolidates errno for execvp. okan 2015-09-16 17:58:25 +0000
  • 3f0b6cf4ea cvsimport okan 2015-08-28 12:07:28 +0000
  • 47a10cc055 Lost fix from r1.112; add comment. okan 2015-08-28 12:07:28 +0000
  • 28d4001eca Mechanical change: group->gc okan 2015-08-27 18:53:14 +0000
  • f467838e7b Add consistent checks against NULL. okan 2015-08-27 18:42:56 +0000
  • 19826222f6 Move client cycle grab/ungrab into a more relevant place; while here, update comments about why we need to grab/ungrab the keyboard. okan 2015-08-27 18:40:09 +0000
  • 5391659629 Re-add lost chunk in group_cycle from r1.113. okan 2015-08-27 17:43:44 +0000
  • 6d53091429 Further simplify _NET_WM_DESKTOP handling using new group_assign(). okan 2015-08-25 20:35:49 +0000
  • 871ed39ccf oops; remove left over debug print okan 2015-08-25 19:52:02 +0000
  • cb60a4b917 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). okan 2015-08-25 19:49:19 +0000
  • 96262a6b0c 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. okan 2015-08-25 18:29:10 +0000
  • dcfbc9e809 Implement _NET_CLIENT_LIST_STACKING (from Thomas Admin), but bottom-to-top order, as per spec (notified Thomas as well). okan 2015-08-24 15:42:57 +0000