Age | Commit message (Collapse) | Author |
|
Leads to clearer code in screen.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Only used in editor.c when introduced, but they're used elsewhere since.
|
|
|
|
|
|
Less goo in main.c
|
|
|
|
|
|
|
|
|
|
Should help use them from within tests.
|
|
So that we can easily use it from tests.
|
|
This function appends n UTF-8 characters to its sbuf parameter. Falls
back to bytes in a non-UTF-8 locale. If width = -1, it appends the
whole input string.
|
|
This program can be run using `make check`. In order to do this, you
will need to run `autogen.sh` again.
|
|
Ensure that we don't truncate UTF-8 characters in %42s-style format
strings.
Prompted by a similar diff by Will Storey <will@summercat.com>, that
made use of the wide char API. I find it simpler to just handle UTF-8.
|
|
These functions are used in many parts of ratpoison. In order to compile
a separate program using the ratpoison files, we need them available
outside of main.c.
|
|
When onlyborder is set to 0 (default 1), borders are not displayed if
there is only a single frame on a given screen.
This is useful if you use (thick) coloured borders to show which is the
currently focused window when using splits, but also don't want to have
borders taking up space unnecessarily when running a fullscreen window.
Signed-off-by: Vasil Zlatanov <v@skozl.com>
|
|
The current implementation of `sync_wins`, which gets called after
control is returned to ratpoison following a call to `tmpwm`, gets
executed once per screen.
This is not only unnecesary, but also causes ratpoison to break after
returning from `tmpwm`. This is due to two things: first, we can scan
for the windows in only one pass, because the call to `XQueryTree`
returns all windows below the root window, which is shared across the
screens. Second, the current implementation only checks whether a
window is a special ratpoison window (i.e. the key window, bar window,
etc.) for the current screen. This results in some windows being
mapped although they shouldn't be, which is what causes the break
preventing ratpoison from receiving commands correctly,
This patch fixes these issues by only running `sync_wins` once instead
of on all screens, and by using the existing `is_rp_window` utility
function to prevent a special ratpoison window from being mapped,
regardless of the screen it belongs to.
Signed-off-by: Antoine Busque <antoinebusque@gmail.com>
|
|
In its current state, history expansion requiring any sort of string
lookup is not working, always returing "event not found". This is due
to `history_offset` being set improperly by an early call to
`using_history`.
A call to `using_history` needs to follow, not precede, the loop
performing initialization of history entries found in
`history_expand_line`. This allows for `history_offset` to reflect the
now non-zero length of the history, restoring the expected behaviour
of history expansion.
Tested-by: Martin Hertz <mvhertz@gmail.com>
Signed-off-by: Antoine Busque <antoinebusque@gmail.com>
|
|
When switching to another screen, the focus{left,right,up,down} commands
only show the frame indicator if the target screen has more than one
frame. This behavior is kinda non-intuitive.
Pointed out by Antoine Busque, who also provided a different fix.
|
|
When compared with the existing overlap check in
`find_frame_{up,down}`, it appears that the original implementation of
the overlap test for `find_frame_{left,right}` is erroneous. Indeed,
the wrong boundaries are used, which causes issues like allowing
finding a frame in one direction, but not finding the frame when going
back in the reverse direction.
Commands like `focus{left,right}` rely on the corresponding
`find_frame` function. The original boundaries check issue meant that,
on differently sized screens, focus could pass from one screen to the
next in one direction, but not in the other.
The boundary checks have therefore been corrected to mirror those in
`find_frame_{up,down}`, and check for actual overlap between the
frames.
Signed-off-by: Antoine Busque <antoinebusque@gmail.com>
|
|
|
|
|
|
Looks like strcasestr was actually a GNU extension, so using _BSD_SOURCE
doesn't make sense. POSIX declares it in strings.h, glibc-2.25 and
older declare it in string.h if _GNU_SOURCE is defined.
|
|
|
|
|
|
Should help finding typos in config files. (If use startxr, you should
probably redirect stdout and stderr to ~/.xsession-errors in your
~/.xinitrc.)
|
|
|
|
Kills an error message and fixes a "regression" in my setup.
Previously, if xinerama was not active (disabled or screen count == 1),
out-of-screen windows were added to screen 0 and were considered
"managed".
|
|
|
|
|
|
All the hard work on xrandr done by Mathieu OTHACEHE, thanks!
|
|
Rewrite screen_del conditional imbrications for a better readability.
No functional changes here.
|
|
Handle correctly the fact that the deleted screen could be the last one.
If a screen is plugged, and no other screens are present, give focus to
it's key window.
|
|
This function is useful to find the windows displayed on a specific screen and
hide them.
|
|
This is an update to Pedro Silva's patch, so that it applies against the
xrandr branch. That patch introduced four new functions, frame_*_abs,
which report a frame's left, right, top, and bottom coordinates offset by
it's screen arrangement. This allows the use of the focus* commands as
additional screen navigation tools, and has the added benefit of making the
find_frame_* functions clearer.
|
|
|
|
|
|
|
|
|
|
|
|
Every screen stores a copy of xrandr RootWindow even if they all share
the same RootWindow.
This patch stores the RootWindow in a global location for all
screens. Further work is required to remove RootWindow from per screen
structure.
|