Age | Commit message (Collapse) | Author |
|
|
|
So that we can easily use it from tests.
|
|
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>
|
|
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!
|
|
This function is useful to find the windows displayed on a specific screen and
hide them.
|
|
|
|
|
|
Use find_screen_by_attr function, remove screen argument and a useless
debug message.
|
|
The screen argument is useless as this function operates on all
screens. To find if a window belong to a specific ratpoison screen,
function is_rp_window_for_given_screen may be used.
|
|
|
|
Drop deprecated xinerama support and replace it with xrandr.
Signed-off-by: Mathieu OTHACEHE <m.othacehe@gmail.com>
|
|
|
|
* No need to get then free the window name in the loop,
do it out of the loop.
|
|
|
|
|
|
This should be a PRINT_DEBUG, not a PRINT_ERROR.
|
|
|
|
* (manage.c) in get_wmname(), try to get the (UTF-8 encoded)
_NET_WM_NAME property. Fallback to GetWMName() if unavailable.
Add some debugging bits to see which TEXT encoding clients use
for WM_NAME.
* (globals.c) use Xft*Utf8 functions to compute text width and
draw strings. No regressions with or without Xft, UTF-8 locale
or not.
* assume we can use Xft*Utf8 functions whenever we have Xft,
to reduce the #ifdef dance
Original patch from Bernhard R. Link
|
|
|
|
|
|
This fixes a crash bug that was reproduced by running dolphin (the kde
file manager).
|
|
* remove call to give_window_focus in remove_frame
* set the border color in hide_window
calling give_window_focus in remove_frame was plain incorrect. setting
it in hide_window might be considered overkill but I believe it will
catch this case and any others that might be lurking.
|
|
|
|
being called two times
|
|
also support UTF-8 window titles when encoded as XA_STRING
|
|
|
|
|
|
|
|
* src/events.c (property_notify): only update the window names if
the window name actually changed.
* src/bar.h (redraw_last_message): new prototype
* src/bar.c (update_bar): update the window list if that's what's
displayed. call redraw_last_message.
(update_window_names): call marked_message_internal.
(marked_message): call marked_message_internal.
(marked_message_internal): ripped body from old marked_message
minus alarm reset.
(redraw_last_message): new function
(show_last_message): call redraw_last_message
* src/actions.c: include ctype.h
(cmd_license): use redraw_last_message
(cmd_help): likewise
|
|
(init_xinerama): likewise
* src/window.c (init_window_stuff): take void arguments. prototype updated.
(free_window_stuff): likewise
* src/split.c (remove_all_splits): take void arguments. prototype updated.
(current_frame): likewise
(init_frame_lists): likewise
(find_last_frame): likewise
(current_window): likewise
(remove_all_splits): likewise
(hide_frame_indicator): likewise
(show_frame_indicator): likewise
* src/main.c (check_child_procs): take void arguments. prototype updated.
(clean_up): likewise
* src/number.c (numset_new): take void arguments. prototype updated.
* src/manage.c (clear_unmanaged_list): take void arguments. prototype updated.
(list_unmanaged_windows): likewise
(ungrab_keys_all_wins): likewise
(grab_keys_all_wins): likewise
(current_screen): likewise
(unhide_all_windows): likewise
* src/main.c (sighandler): static function
(hup_handler): likewise
(alrm_handler): likewise
(handler): likewise
(print_version): likewise
(print_help): likewise
(show_welcome_message): take void arguments
(init_defaults): likewise
* src/input.c (ring_bell): take void arguments. prototype updated
(update_modifier_map): likewise
* src/history.c (get_history_filename): take void arguments
(history_load): take void arguments. prototype updated
(history_save): likewise
(history_reset): likewise
(history_previous): likewise
(history_next): likewise
(history_list_items): likewise
* src/group.c (group_in_list): static function
(init_groups): take void arguments. prototype updated
(free_groups): likewise
(group_next_group): likewise
(group_prev_group): likewise
* src/globals.c (x_export_selection): take void arguments
(get_cut_buffer): likewise
(get_primary_selection): likewise
(get_selection): take void arguments. protype updated.
(init_globals): likewise
* src/events.c (selection_clear): take void arguments
(handle_signals): likewise
(listen_for_events): take void argumens. prototype updated
* src/bar.c (reset_alarm): take void arguments
(show_last_message): take void arguments. prototype updated.
(free_bar): likewise
* src/actions.c (init_set_vars): static function. take void arguments
(clear_frame_redos): take void arguments
(pop_frame_undo): likewise
(pop_frame_redo): likewise
(keymap_new): static function
(parse_keydesc): likewise
(trivial_completions): likewise
(keymap_completions): likewise
(window_completions): likewise
(group_completions): likewise
(colon_completions): likewise
(exec_completions): likewise
(hook_completions): likewise
(var_completions): likewise
(update_all_gcs): take void arguments
(grab_rat): likewise
(ungrab_rat): likewise
(init_user_commands): take void arguments. prototype updated.
(free_keymaps): likewise
(free_aliases): likewise
|
|
* src/main.c (init_defaults): init defaults.top_kmap
* src/events.c (handle_key): use defaults.top_kmap for the top kmap
* src/data.h (struct rp_defaults): new field, top_kmap
* src/actions.c (set_topkmap): new prototype
(init_set_vars): topkmap new set variable
(initialize_default_keybindings): use defaults.top_kmap for the top kmap
(cmd_undefinekey): likewise
(cmd_definekey): likewise
(cmd_escape): likewise
(cmd_delkmap): likewise
(set_topkmap): new function
|
|
* src/screen.c (init_screen): don't include the font in the gc
* src/ratpoison.h: include Xlocale.h
* src/manage.c (get_wmname): support i18n characters
* src/main.c (init_defaults): call load_query_font_set and set_extents_of_fontset
(main): call setlocale
(clean_up): call XFreeFontSet
(set_extents_of_fontset): new function
(load_query_font_set): likewise
* src/input.c (update_input_window): use XmbTextEscapement and XmbDrawString
* src/globals.h (FONT_HEIGHT): use rp_font_ascent and rp_font_descent
(MAX_FONT_WIDTH): use rp_font_width
new globals rp_font_ascent, rp_font_descent, rp_font_width
* src/globals.c: new globals rp_font_ascent, rp_font_descent, rp_font_width
* src/data.h (struct rp_defaults): font is a XFontSet
* src/bar.c (max_line_length): call XmbTextEscapement
(draw_string): call XmbDrawString
(get_mark_box): call XmbTextEscapement
* src/actions.c (read_frame): call XmbTextEscapement
(cmd_license): likewise
(read_frame): call XmbDrawString
(cmd_license): likewise
(cmd_help): likewise
(update_gc): don't include the font
(set_font): call load_query_font_set
|
|
(MESSAGE_MAP_WINDOW_GROUP): likewise
* src/manage.c (map_window): call show_rudeness_msg
* src/events.h (show_rudeness_msg): new prototype
* src/events.c (show_rudeness_msg): renamed from
show_rudeness_raise_msg. handle the MAP messages as well. all
callers updated.
|
|
|
|
* src/events.c (mapping_notify): call ungrab_keys_all_wins and grab_keys_all_wins.
|
|
|
|
* src/manage.c (window_is_transient): new function
(maximize_normal): honour aspect ratio hint
* src/window.c (update_window_gravity): use maxsize_gravity for windows with aspect hints.
(set_active_window_body): call window_is_transient
* src/split.c (cleanup_frame): call window_is_transient
|
|
* src/globals.c: new hook rp_delete_window_hook
|
|
* src/manage.c (unhide_all_windows): new function.
* src/events.c (handle_signals): unhide windows before switching to a new wm
|
|
|
|
|
|
|
|
output.
(hide_transient_for_between): likewise.
* src/manage.c (get_wmname): typecast name when passing to
xstrdup.
* src/main.c (main): typecast command[i] when passing to
send_command.
* src/events.c (execute_remote_command): typecast req[1] when
passing to command.
(receive_command): typecast result when passing to
XChangeProperty.
* src/editor.c (editor_history_previous): Add newline to
debugging output.
(editor_history_next): likewise.
(paste_primary_selection): typecast data when passing to editor_insert.
* src/communications.c (receive_command_result): typecast result
when passing to strlen.
(send_command): typecast cmd when passing the XChangeProperty.
* src/actions.c (user_commands): add focusprev
(cmd_prev): clean up
(cmd_next): likewise
(cmd_prev_frame): call find_frame_prev instead of find_frame_next.
(cmd_frestore): grab the frame's number first when processing the
frames.
|
|
found and compile without history support.
* src/ratpoison.h: change ifdef to check for HAVE_HISTORY.
* src/manage.c (get_state): change data to an unsigned char and
cast data to a long* when it's used.
* src/main.c (main): change ifdef to check for HAVE_HISTORY.
(clean_up): likewise
* src/history.c: change ifdef to check for HAVE_HISTORY.
* src/events.c (receive_command): make prop_return an unsigned char.
* src/editor.c (editor_history_previous): change ifdef to check for HAVE_HISTORY.
(editor_history_next): likewise
(editor_enter): likewise
|
|
(numset_release): likewise
(numset_request): add debugging output to print the requested number
* src/manage.c (withdraw_window): Print an error when withdrawing
a window who's number is -1.
* src/main.c (clean_up): free the global frame numset.
(free_screen): don't free the screen's numset, since it's a
pointer to the global numset.
* src/group.c (group_del_window): don't release the window number
here. It's already been done in group_unmap_window.
* src/events.c (configure_request): only change the stack mode for
non withdrawn windows.
|
|
fgcolor_string, bgcolor_string.
* src/actions.c (set_font): return defaults.font_string when data is NULL
(set_fgcolor): likewise for fgcolor_string
(set_bgcolor): likewise for bgcolor_string
* src/manage.c (ungrab_top_level_keys): properly grab capital letters.
* src/main.c (init_defaults): init fgcolor_string, bgcolor_string, and font_string
* src/input.c (grab_key): change keysym type to KeySym. convert
keysym to keycode. All callers updated.
|
|
(grab_keys_all_wins): likewise
* src/manage.c (grab_top_level_keys): renamed from
grab_prefix_key (all callers updated). Grab all keys in the top level keymap.
(ungrab_top_level_keys): renamed from ungrab_prefix_key (all callers updated). ungrab
all keys in the top level keymap.
(ungrab_keys_all_wins): new function
(grab_keys_all_wins): likewise
* src/globals.c: (rp_key_hook): rename from
rp_prefix_hook. Dependant code updated.
(set_rp_window_focus): change 'prefix' hook to 'key' hook.
* src/events.c (handle_key): handle a top level key press.
(handle_key): new arguments ks, and mod.
(key_press): pass the keysym and modifier to handle_key
* src/conf.h (TOP_KEYMAP): new define
* src/actions.c (cmd_v_split, cmd_h_split): swap names.
(user_commands): bind split to cmd_v_split.
(initialize_default_keybindings): initialize the top level keymap
(cmd_definekey): update the keys grabbed when changing a key on
the top level keymap.
(cmd_escape): update the escape key in the top level map.
(cmd_delkmap): don't allow the deletion of the top level keymap.
|
|
|
|
checking if win is NULL.
(give_window_focus): set rp_current_screen to xine_screen_num of
the window's screen.
(set_active_window): when using xinerama get the frame from the
current screen.
* src/split.c (set_frames_window): update the window's scr
attribute to point to the frame's screen.
(find_window_for_frame): when xinerama is being used search all
windows.
(set_active_frame): update rp_current_screen to point to the
frame's screen.
* src/screen.h (init_screens): new prototype
(is_rp_window_for_screen): likewise
* src/screen.c: include string.h and X11/cursorfont.h
(init_screens): new function
(is_rp_window_for_screen): new function.
(init_screen): fill in xine_screen_num when using xinerama.
* src/ratpoison.h: include xinerama.h
* src/manage.c (current_screen): use xine_screen_num to find the
current screen.
(scanwins): use is_rp_window_for_screen to skip over ratpoison windows.
(scanwins): when using xinerama only manage windows inside the viewable area.
* src/main.c (main): call init_xinerama and init_screens. Move
screen initing code to these functions.
(init_rat_cursor): move to screen.c
(init_screen): likewise
(find_screen): likewise
(clean_up): call free_xinerama
* src/group.c (group_last_window): only check windows in the
current screen, unless xinerama is being used in which case all
windows are accessible.
(group_next_window): likewise
(group_prev_window): likewise
* src/globals.h: new globals rp_have_xinerama, xine_screen_num.
* src/events.c (new_window): when using xinerama, the new window's
screen is the current screen.
(key_press): when using xinerama, use the current screen.
* src/data.h (struct rp_screen): remove root_attr and add left,
top, width, height. All dependant code updated. Add xine_screen_num.
* src/actions.c (cmd_remove): show the frame indicator in the new
current frame after removing the frame.
* src/Makefile.am (ratpoison_SOURCES): add xinerama.c and xinerama.h
|