Age | Commit message (Collapse) | Author | Files | Lines |
|
[PURPOSE]
In editors such as vi and emacs, a user can mark a line in a file with
a shortcut key and afterwards jump back to that line using the shortcut.
The idea is extended to opened windows. A user can assign a keyboard
shortcut to an opened window. Afterwards, the shortcut can be used to
switch focus back to the marked window.
Such shortcuts save the user from pressing "alt+tab" multiple times to
cycle through windows until the desired one is found.
[EXAMPLE USAGE]
The following binding is added to file "~/.fluxbox/keys":
Mod1 m ARG :MarkWindow
Mod1 g ARG :GotoMarkedWindow
User enters "alt+m x" to mark the currently focused window with shortcut
key 'x'
User enters "alt+g x" to switch focus to the marked window
[IMPLEMENTATION SUMMARY]
- Two new commands were added :MarkWindow and :GotoMarkedWindow
- Keys.cc was modified:
- addBinding() method supports parsing an argument placeholder where
the user can pass in a shortcut key
- doAction() method forwards the shortcut key to the command to execute
- Class Keys::t_key was modified to recognize a placeholder key
- New class ShortcutManager was added to maintain mapping of shortcut
keys to marked windows
|
|
On the run, make it raise on left-clicks (like the toolbar)
The enum already existed ;-)
REQUEST: 113
|
|
... actions in keys.
This allows to override the default behavior as well as adding actions
for the mouse wheel.
Special casing of the two "geometry" related buttons (eg. to perform
smart maximization, reverse the partial maximzation, add shading to the
min button or whatnot)
All other buttons have a rather dedicated meaning and are only really
interesting for adding mouse wheels or eg. the window menu on rmb
clicks.
Needs docu.
|
|
The user needs to enter his chain within 5 seconds
Otherwise the chain is reset.
REQUEST: 291
|
|
When trying to doAction(ButtonPress, ...), we check whether the
action would hit for type==MotionNotify.
In this case we do nothing but return "true" to tell the caller that
this event is "for us". Otherwise the event would be replayed to the
client and there'd go out MotionNotify grabs.
tl;du: This fixes MoveX actions.
|
|
This reverts 58e09b719077605efadac9b712acb8f5e752f732 after having regressions
and bug reports in regards to autorepeated key events are not working anymore.
So, the problem with the lost keypress after the workspace change is still
open but at least the behavior for other folks is as it was. Since 58e09b7190
seems to be corelated to "auto repeat" keys it might indicate the problem
which 58e09b7190 "fixed". We will see.
Fixes #1115.
|
|
|
|
Clang and Gcc-4.9 complaint about some unused variables here
and there. And who are we to not make a compiler happy :)
|
|
|
|
Do not Ungrab the keyboard for a KeyPress event, this causes us to lose the
KeyRelease event which is needed to ungrab the keyboard after the event
happened.
|
|
Do not try to be too smart which compilations need config.h, as most of
them will simply because of the config.h has information about system
capabilities.
|
|
By removing FbTk/LogicCommands.o from LDADD in src/Makefile.am (commit
06655f6) I prevented the linker to pick up FbTk/LogicCommands.o and thus
rendered all logic-commands useless.
Using a small helper object to pull in the dependency fixes this problem
without relying on manually tweaking the build system.
|
|
Adding the following lines to the keys file restore the old behaviour to
use Mouse2 on tabs to start tabbing, and keep OnTitlebar Mouse2 to lower
the window.
OnTab Mouse2 :StartTabbing
OnTab Move1 :StartMoving
Note: Internal tabs are triggering both OnTab and OnTitlebar events.
|
|
Found with cppcheck:
"Prefix ++/-- operators should be preferred for non-primitive
types. Pre-increment/decrement can be more efficient than
post-increment/decrement. Post-increment/decrement usually
involves keeping a copy of the previous value around and adds
a little extra code."
|
|
I'm doing this because I want to have access to keybindings from lua and for that I need more
flexible ownership semantics.
|
|
it is too easy too shoot yourself in the foot with it, other smart pointers also don't allow such
assignments. If you do want to assign to a RefCount pointer, use reset().
ps: assignment between two RefCounts remains possible, of course.
|
|
|
|
setxkbmap and xmodmap both might change the keycodes. thus fluxbox needs
to remap the keysyms from the currently loaded keytree to new keycodes
after it received a 'MappingNotify' event.
we do not reload() the keys file because:
* the user might work on it right now
* remap only needed symbols is cheaper than parsing the keysfile anyway
|
|
the previous version of operator*() made no sense. E.g., it violated the invariant
(*ptr).foo <=> ptr->foo. The dereferencing operator now returns a reference to the pointed-to
object, rather than a pointer to it.
I also added a bool conversion operator, which can be used in testing the NULL-ness of the
pointer. Anyone wondering if that could be done in a simpler way is encouraged to read
<http://www.artima.com/cppsource/safebool.html>.
And, finally, I removed the mutable flag from the m_data member, since it does not need it.
|
|
commit 882a50fe1d4930b156965c54d9b66ecb27b4c9b2 removed the hardcoded limit to
cycle to windows on other workspaces, though it was and IS a good default
behaviour. if users do not want this (they want to cycle to windows on other
workspaces), they should explicitly avoid '(workspace=[current])' in their
keysfile.
|
|
|
|
|
|
|
|
reordering of Resource-related stuff was because of
"error: explicit specialization of 'getString' after instantiation"
complaints.
|
|
again, i do not know yet, why this could happen.
|
|
i ran across problems on a freshly installed ubuntu without
any config files, m_keylist was not initialized, yet unsure why.
|
|
|
|
this allows to move some hardcoded keysbindings into the keys file and
makes the code simpler
|
|
This will reduce the number of #ifdef DEBUG for
simple debug messages.
include "Debug.hh" and use fbdbg instead of cerr for debug.
|
|
the hardcoded 'OnTitlebar Mouse1 :Raise' (see Window.cc, FluxboxWindow::buttonPressEvent())
is disabled for now, should be added to fluxbox-update_configs
|
|
|
|
|
|
|
|
of self-written code.
No functional change.
Signed-off-by: Slava Semushin <php-coder@altlinux.ru>
|
|
|
|
swallowed)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The thing next_key pointed to was getting freed in deleteTree.
Signed-off-by: Tomas Janousek <tomi@nomi.cz>
|
|
|
|
ObjectRegistry
|
|
|
|
|
|
|