Age | Commit message (Collapse) | Author |
|
to sbuf_nconcat.
(sbuf_nconcat): new function
* src/globals.c (init_globals): new function
* src/main.c (main): call init_globals.
* src/globals.c: include unistd.h.
(x_export_selection): new function
(set_nselection): likewise
(set_selection): call x_export_selection
(get_cut_buffer): new function
(get_primary_selection): likewise
(get_selection): likewise
* src/editor.c (editor_kill_word): add the deleted text to the X11
selection
(editor_backward_kill_word): likewise
(editor_kill_line): likewise
(backward_kill_line): new fuction
(editor_backward_kill_line): add the deleted text to the X11
selection. call backward_kill_line.
(paste_cut_buffer): remove function
(paste_primary_selection): likewise
(editor_paste_selection): call get_selection to get the X11
selection.
(editor_complete): call backward_kill_line instead of
editor_backward_kill_line.
* src/ratpoison.h: Include string.h. Include X11/XAtom.h.
* src/globals.c (selection): new global
(set_selection): new function
* src/events.c: include X11/Xmd.h
(selection_request): new function
(selection_clear): new function
(delegate_event): call selection_request and selection_clear for
SelectionRequest and SelectionClear events.
* src/actions.c (user_commands): remove duplicate focusprev entry. Add putsel. Add getsel.
(cmd_putsel): new function
(cmd_getsel): new function
* contrib/genrpbindings: add a missing paren to the elisp bindings.
|
|
|
|
|
|
(push_frame_undo): new function
(pop_frame_undo): likewise
(initialize_default_keybindings): add binding for "undo"
(initialize_default_keybindings): add def alias for maxundos
(cmd_other): call set_active_window_force instead of
set_active_window
(cmd_v_split): push the frame set
(cmd_h_split): likewise
(cmd_only): likewise
(cmd_remove): likewise
(cmd_shrink): likewise
(cmd_tmpwm): likewise
(cmd_license): update copyright. Add build date and time.
(cmd_fselect): simplify code that returns the frame selected.
(fdump): new function
(cmd_fdump): call fdump to dump the screen's frame set.
(frestore): new function
(cmd_frestore): call frestore to restore the screen's frame set.
(cmd_sfdump): new function
(cmd_sdump): likewise
(set_maxundos): likewise
(cmd_cnext): likewise
(cmd_cprev): likewise
(cmd_inext): likewise
(cmd_iprev): likewise
(cmd_cother): likewise
(cmd_iother): likewise
(cmd_undo): likewise
(cmd_prompt): likewise
(cmd_describekey): likewise
(cmd_dedicate): likewise
* src/main.c (init_defaults): init maxundos to 20
(clean_up): free the undo history lists
* src/window.h (set_active_window_body): new function
(set_active_window_force): likewise
* src/window.c (set_active_window): new function
(set_active_window_force): likewise
(set_active_window_body): renamed from set_active_window
(set_active_window_body): Add code to handle dedicated frames.
* src/screen.h (screen_dump): new prototype
* src/screen.c (screen_dump): new function
* src/linkedlist.h (list_last): new macro
* src/group.h (group_last_window_by_class_complement): new prototype
(group_last_window_by_class): likewise
* src/group.c (group_last_window_by_class): new function
(group_last_window_by_class_complement): likewise
* src/globals.h (rp_frame_undos): new extern.
(rp_num_frame_undos): likewise
* src/globals.c (rp_frame_undos): new list.
(rp_num_frame_undos): new global
* src/frame.c (frame_new): init f->dedicated to 0.
* src/data.h (struct rp_frame): add dedicated member.
(struct rp_defaults): add maxundos member.
(struct rp_frame_undo): new struct.
* src/actions.c: new commands, cnext, cother, cprev,
|
|
(x11_mask_to_rp_mask): likewise
(keysym_to_keycode_mod): Make sure lower != keysym before adding
the shift mask.
(keysym_to_string): handle the shift modifier. use 's' for super
instead of 'S'
(cook_keycode): keep the shift modifier if XLookupString didn't
gobble it.
* src/data.h (RP_SHIFT_MASK): new define
* src/actions.c (parse_keydesc): parse the shift modifier change
super to 's' from 'S'.
|
|
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.
|
|
* src/data.h (struct rp_defaults): new field, frame_selectors.
* src/actions.h (cmd_defframesels): new prototype
* src/actions.c (user_commands): new command defframesels
(frame_selector): new function
(frame_selector_match): likewise
(cmd_defframesels): likewise
(cmd_fselect): use default.frame_selectors to select a frame.
|
|
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
|
|
the help binding.
(clean_up): call free_keymaps and not free_keybindings.
* src/events.c (handle_key): call cmd_readkey to hand actually
reading a key from the keyboard.
* src/data.h (typedef rp_keymap): new typedef
(struct rp_keymap): new struct
* src/conf.h (ROOT_KEYMAP): new define
* src/actions.h (cmd_readkey): new prototype
(cmd_newkmap): likewise
(cmd_delkmap): likewise
(cmd_definekey): likewise
(find_keymap): likewise
(keymap_free): likewise
(free_keymaps): likewise
* src/actions.c (rp_keymaps): new global. remove globals
key_actions, key_actions_last, and key_actions_table_size.
(user_commands): remove bind and unbind. New commands readkey,
newkmap, delkmap, and definekey.
(find_keybinding_by_action): take a rp_keymap argument and operate
on it. All callers updated.
(find_keybinding): likewise
(find_command_by_keydesc): likewise
(resolve_command_from_keydesc): likewise
(add_keybinding): likewise
(remove_keybinding): likewise
(cmd_definekey): new function
(cmd_newkmap): likewise
(cmd_delkmap): likewise
(keymap_new): likewise
(keymap_free): likewise
(find_keymap): likewise
(free_keymaps): likewise
(cmd_bind): remove function. Prototype removed.
(cmd_unbind): likewise
(initialize_default_keybindings): add aliases for unbind and bind.
(ungrab_rat): moved from events.c
(grab_rat): likewise
|
|
* src/split.c (set_active_frame): run the switch frame hook.
* src/ratpoison.h: include hook.h
* src/group.h (set_current_group): new prototype
* src/group.c (set_current_group): new function
* src/globals.h (rp_prefix_hook): new extern
(rp_switch_win_hook): likewise
(rp_switch_frame_hook): likewise
(rp_switch_group_hook): likewise
(rp_hook_db): likewise
* src/globals.c (rp_prefix_hook): new hook
(rp_switch_win_hook): likewise
(rp_switch_frame_hook): likewise
(rp_switch_group_hook): likewise
(rp_hook_db): new global
* src/events.c (handle_key): call the prefix hook.
* src/data.h (struct rp_hook_db_entry): new struct
* src/actions.h (cmd_addhook): new prototype
(cmd_remhook): likewise
* src/actions.c (user_commands): add commands addhook and remhook.
(cmd_windows): show the window bar no matter what if the bar
timeout is > 0.
(cmd_gnext): call set_current_group
(cmd_gprev): likewise
(cmd_gnew): likewise
(cmd_gselect): likewise
(cmd_addhook): new function
(cmd_remhook): likewise
* src/Makefile.am (ratpoison_SOURCES): add hook.c and hook.h
|
|
(edit_binding): new typedef
(edit_binding): new struct
(edit_bindings): new local global
(input_line_new): new function
(input_line_free): likewise
(execute_edit_action): likewise
(editor_forward_char): likewise
(editor_backward_char): likewise
(editor_forward_word): likewise
(editor_backward_word): likewise
(editor_beginning_of_line): likewise
(editor_end_of_line): likewise
(editor_delete_char): likewise
(editor_backward_delete_char): likewise
(editor_kill_word): likewise
(editor_backward_kill_word): likewise
(editor_kill_line): likewise
(editor_backward_kill_line): likewise
(editor_history_previous): likewise
(editor_history_next): likewise
(editor_abort): likewise
(editor_no_action): likewise
(editor_insert): likewise
(editor_enter): likewise
(paste_cut_buffer): likewise
(paste_primary_selection): likewise
(editor_paste_selection): likewise
(editor_complete): likewise
(editor_forward_char): new prototype
(editor_backward_char): likewise
(editor_forward_word): likewise
(editor_backward_word): likewise
(editor_beginning_of_line): likewise
(editor_end_of_line): likewise
(editor_delete_char): likewise
(editor_backward_delete_char): likewise
(editor_kill_word): likewise
(editor_backward_kill_word): likewise
(editor_kill_line): likewise
(editor_paste_selection): likewise
(editor_abort): likewise
(editor_no_action): likewise
(editor_enter): likewise
(editor_history_previous): likewise
(editor_history_next): likewise
(editor_complete): likewise
(editor_backward_kill_line): likewise
* src/sbuf.h (sbuf): add node field.
* src/main.c (xrealloc): don't print debugger output
(init_defaults): init history_size
(main): initialize rp_selection
(main): load history
(clean_up): save history
* src/linkedlist.h (list_first): new macro
* src/input.h (free_history): remove prototype
(ring_bell): new function
* src/input.c: include unistd.h
(input_history): remove
(input_num_history_entries): likewise
(update_input_window): remove prompt, input, and input_len
arguments. add line argument.
(update_input_window): use line argument.
(ring_bell): new function
(get_input): take completion_fn argument. prototype and callers
updated.
(free_history): remove function
(get_more_input): take completion_fn argument. prototype and
callers updated. use line structure and its functionality.
* src/globals.h (MAX_FONT_WIDTH): new define
(rp_selection): new extern
* src/globals.c (rp_selection): new global
* src/completions.h (completions_new): new prototype
(completions_free): likewise
(completions_assign): likewise
(completions_update): likewise
(completions_next_completion): likewise
* src/completions.c (completions_new): new function
(completions_free): likewise
(completions_assign): likewise
(completions_update): likewise
(completions_next_completion): likewise
* src/Makefile.am (ratpoison_SOURCES): add editor.c editor.h
history.h and history.c
* src/data.h (rp_completions): new typedef
(rp_input_line): likewise
(completion_fn): likewise
(rp_defaults): new field, history_size
(rp_completions): new struct
(rp_input_line): new struct
* src/conf.h (MAX_HISTORY_SIZE): new define
(HISTORY_FILE): likewise
(VISUAL_BELL): likewise
(MODIFIER_PREFIX): set to RP_CONTROL_MASK
(INPUT_ABORT_MODIFIER): likewise
(INPUT_PREV_HISTORY_MODIFIER): likewise
(INPUT_NEXT_HISTORY_MODIFIER): likewise
(RESIZE_VGROW_MODIFIER): likewise
(RESIZE_VSHRINK_MODIFIER): likewise
(RESIZE_HGROW_MODIFIER): likewise
(RESIZE_HSHRINK_MODIFIER): likewise
* src/actions.c (trivial_completions): new function
(window_completions): likewise
(colon_completions): likewise
(exec_completions): likewise
(cmd_select): pass window_completions to get_input
(cmd_rename): pass trivial_completions to get_input
(cmd_colon): pass colon_completions to get_input and
get_more_input
(cmd_exec): pass exec_completions to get_input
(cmd_newwm): pass trivial_completions to get_input
(cmd_resize): convert the keysym modifier to something ratpoison
understands.
|
|
* src/ratpoison.h (str_comp): new prototype
* src/messages.h (MESSAGE_PROMPT_SWITCH_TO_GROUP): new define
* src/main.c: include ctype.h
(str_comp): moved from window.c
* src/group.h (groups_find_group_by_name): new prototype.
(groups_find_group_by_number): likewise.
(groups_merge): likewise
(group_move_window): likewise
* src/group.c: include string.h
(group_new): new argument, name. All callers updated. prototype
updated.
(init_groups): create the first group with DEFAULT_GROUP_NAME as
its name.
(group_new): new argument, name. All callers updated. Prototype
updated.
(group_free): free the group's name.
(group_add_new_group): new argument, name. All callers
updated. Prototype updated.
(groups_find_group_by_name): new function
(groups_find_group_by_number): likewise
(group_move_window): likewise
(groups_merge): likewise
* src/conf.h (DEFAULT_GROUP_NAME): new define
* src/actions.h (cmd_gselect): new prototype
(cmd_groups): likewise
(cmd_gmove): likewise
(cmd_gmerge): likewise
(cmd_gnewbg): likewise
* src/actions.c (user_commands): new commands gselect, groups,
gmove, gmerge, gnewbg.
(cmd_gnewbg): new function
(find_group): likewise
(cmd_gselect): likewise
(cmd_groups): likewise
(cmd_gmove): likewise
(cmd_gmerge): likewise
|
|
group.
(find_window_name): search the current group for a matching
window.
(find_window_other): likewise.
(format_window_name): take a rp_window_elem as an argument, not an
rp_window. Print the group window's number, not the window's
internal number.
(get_window_list): loop through the current group.
* src/split.c (find_window_for_frame): search the current group
for a window to fit in the frame.
* src/ratpoison.h: include globals.h and group.h
* src/manage.c (unmanage): remove the window from any groups it
was in.
(map_window): map the window in any groups it is in.
(withdraw_window): unmap the window in any groups it is in.
* src/main.c: Move all globals to globals.h
(main): initialize the group functions.
* src/data.h: Move all defines and extern globals to globals.h
(struct rp_window_elem): new struct
(struct rp_group): likewise
* src/actions.h (cmd_gnext): new prototype
(cmd_gprev): likewise
(cmd_gnew): likewise
* src/actions.c (user_commands): new commands gnext, gprev, and gnew
(cmd_prev): fix to work with new group code.
(cmd_next): likewise
(cmd_gnext): new function
(cmd_gprev): likewise
(cmd_gnew): likewise
* src/Makefile.am (ratpoison_SOURCES): add files globals.h,
globals.c, group.h and group.c
|
|
dependant code updated.
* src/main.c: remove child_info global. Add rp_children global.
(chld_handler): update the terminated and status fields of any
terminated children.
* src/events.c (handle_signals): loop through each child process
and remove them from the list. Print a message for any child that
doesn't return a 0 status.
* src/data.h (rp_child_info): new fields, terminated and node.
remove child_info global. Add rp_children global.
* src/actions.c (spawn): Add the command to the list of children.
|
|
screen_info. Dependant code updated.
|
|
defaults.win_name values.
(window_name): remove case WIN_NAME_TITLE and glob it with the
default switch.
* src/main.c (init_defaults): use WIN_NAME_* defines for
possible defaults.win_name values.
* src/actions.c (cmd_defwinname): use WIN_NAME_* defines for
possible defaults.win_name values.
(cmd_defwinname): likewise
* src/data.h (WIN_NAME_TITLE): new define
(WIN_NAME_RES_CLASS): new define
(WIN_NAME_RES_NAME): new define
* src/window.c (add_to_window_list): use xstrdup to create the
default value for user_name.
|
|
the end of the mark is the length of the buffer minus the start of
the mark.
* src/main.c (init_defaults): init window_list_style to STYLE_ROW.
* src/data.h (struct rp_defaults): new member, window_list_style.
* src/bar.c (bar_y): new argument, height. All callers updated.
(bar_y): use height in calculations.
(update_window_names): print a column of windows if
defaults.window_list_style is in column mode.
(count_lines): new function
(max_line_length): likewise
(pos_in_line): likewise
(line_beginning): likewise
(marked_wrapped_message): likewise
* src/actions.c (user_commands): new commands 'verbexec' and
'defwinliststyle'. Move @end take to after the def* commands.
(cmd_verbexec): new function. Added prototype.
(cmd_defwinliststyle): likewise
|
|
the end of the mark is the length of the buffer minus the start of
the mark.
* src/main.c (init_defaults): init wrap_window_list to 0.
* src/input.c (update_input_window): store the height in a
variable.
* src/data.h (struct rp_defaults): new member, wrap_window_list.
* src/bar.h [message]: wrap msg arg in parens.
(marked_wrapped_message): new prototype
* src/bar.c (bar_y): new argument, height. All callers updated.
(bar_y): use height in calculations.
(update_window_names): print a column of windows if
defaults.wrap_window_list is on.
(count_lines): new function
(max_line_length): likewise
(pos_in_line): likewise
(line_beginning): likewise
(marked_wrapped_message): likewise
* src/actions.c (user_commands): new commands 'verbexec' and
'defwrapwinlist'. Move @end take to after the def* commands.
(cmd_verbexec): new function. Added prototype.
(cmd_defwrapwinlist): likewise
|
|
(split_frame): call screen_get_frame to get appropriate structure.
(split_frame): call find_window_number to get appropriate
structure.
(remove_all_splits): call screen_get_frame to get appropriate
structure.
(resize_frame): make sure all frames that will be resized are big
enough for the resize.
(resize_frame): return int
(resize_shrink_to_window): call find_window_number to get the
appropriate structure.
(resize_frame_right): return int
(resize_frame_left): likewise
(resize_frame_top): likewise
(resize_frame_bottom): likewise
(resize_frame_horizontally): backup the frameset and restore it if
the resize fails. Do not allow a frame to be resized too small or
too big.
(resize_frame_vertically): likewise
(remove_frame): call find_window_number to get the appropriate
structure.
(set_active_frame): likewise
(blank_frame): likewise
(show_frame_message): call screen_get_frame to get the appropriate
structure.
* src/screen.c (screen_width): new function (and prototype)
(screen_height): likewise
(screen_left): likewise
(screen_right): likewise
(screen_top): likewise
(screen_bottom): likewise
(screen_copy_frameset): likewise
(screen_restore_frameset): likewise
(frameset_free): likewise
(screen_get_frame): likewise
* src/split.c (maximize_frame): call screen_width and
screen_height to get the size for the frame.
* src/ratpoison.h: include screen.h
* src/manage.c (move_window):
* src/frame.h (frame_copy): new prototype
(frame_dump): likewise
* src/frame.c (frame_copy): new function
(frame_dump): likewise
* src/events.c (unmap_notify): compare frame numbers, not
pointers.
(client_msg): call screen_get_frame when blanking the frame.
* src/data.h (EMPTY): new define
(struct rp_window_frame): replace the win field with
win_number. Dependant code updated.
(struct rp_window): replace frame with frame_number. Dependant
code updated.
(struct screen_info): replace rp_current_frame with current_frame
and change type to int. Dependant code updated.
* src/Makefile.am (ratpoison_SOURCES): added screen.h and screen.c
|
|
|
|
for fselect and resize. Move keybinding for curframe.
* src/split.c (create_initial_frame): call frame_new to allocate a frame.
(split_frame): likewise
* src/main.c (free_screen): call frame_free to free the screen
frames.
* src/frame.h (frame_new): new prototype
(frame_free): likewise
* src/frame.c (frame_new): new function.
(frame_free): likewise
|
|
* src/split.c (create_initial_frame): give a number to the
initial frame
(split_frame): give the new frame a unique number
(split_frame): add the new frame after the current frame
(remove_all_splits): return the frame's number when deleting it.
(remove_frame): likewise
(find_frame_number): new function
* src/main.c (init_screen): initialize the frames_numset member
(free_screen): free the frames_numset member
* src/data.h (struct screen_info): new member, frames_numset
* src/actions.h (cmd_fselect): new prototype
* src/actions.c (user_commands): new command "fselect"
(cmd_fselect): new function
|
|
(clean_up): call free_window_stuff(). Remove call to free_numbers().
* src/list.h (free_window_stuff): new prototype
(init_window_stuff): likewise
* src/list.c (rp_window_numset): new global
(init_window_stuff): new function
(free_window_stuff): new function
* src/data.h (rp_window_numset): new extern
* src/number.c (numset_init): new function
(number_is_taken): rename to numset_num_is_taken, callers updated.
(find_empty_cell): rename to numset_find_empty_cell, callers updated.
(add_window_number): rename to numset_add_num, callers updated.
(return_window_number): rename to numset_release, callers updated.
(init_numbers): remove function
(free_numbers): rename to numset_free, callers updated.
(numset_num_is_taken): take struct numset* as an argument.
(numset_find_empty_cell): likewise
(numset_add_num): likewise
(numset_request): likewise
(numset_release): likewise
(numset_free): likewise
(numset_new): new function
|
|
(clean_up): call free_screen on each screen. free the screen
array. free defaults.window_fmt.
* src/number.h (free_numbers): new prototype
* src/number.c (free_numbers): new function
* src/manage.c (get_wmname): use XGetWindowProperty to get the
window name.
(unmanaged_window): free wname after using it.
* src/main.c (wm_name): new global
(main): internalize WM_NAME atom.
(clean_up): free data structures for keybindings, aliases, the
bar, window numbers, and input history.
* src/input.h (free_history): new prototype
* src/input.c (free_history): new function
* src/events.c (execute_remote_command): free properties returned
by XGetWindowProperty().
* src/data.h (wm_name): new extern
* src/communications.c (recieve_command_result): free properties
returned by XGetWindowProperty().
* src/bar.h (free_bar): new prototype
* src/bar.c (update_window_names): bar_buffer is not static.
(update_window_names): free bar_buffer after using it.
(marked_message): free the GC after using it.
(free_bar): new function.
* src/actions.h (free_keybindings): new prototype
(free_aliases): likewise
* src/actions.c (free_keybindings): new function
(free_aliases): likewise
(cmd_tmpwm): unmap the key window before calling the new wm, and
remap it afterwards.
|
|
(cmd_number): likewise
(cmd_escape): use list looping macro
(cmd_escape): likewise
(cmd_defpadding): likewise
(cmd_defborder): likewise
* src/data.h: include linkedlist.h
(struct rp_window_frame): use struct list_head instead of next,
prev pointers.
(struct rp_window): likewise
(struct screen_info): rename rp_window_frame_sentinel to
rp_window_frames and change it's type to list_head.
* src/events.c (mapping_notify): use list looping macro
(mapping_notify): likewise
* src/list.c: rename rp_unmapped_window_sentinel to
rp_unmapped_window and rp_mapped_window_sentinel to
rp_mapped_window. Use LIST_HEAD to create them. externs updated.
(add_to_window_list): use list add entry macro.
(find_window_in_list): list head is of type list_head. Prototype
and callers updated.
(find_window_in_list): use list looping macro
(init_window_list): remove function
(find_window_number): use list looping macro
(find_window_name): likewise
(find_window_prev): use list previous entry macro
(find_window_next): use list next entry macro
(find_window_other): use list looping macro
(append_to_list): remove function
(insert_into_list): use list looping macro
(insert_into_list): use list add entry macro
(remove_from_list): remove function
(get_window_list): use list looping macro
* src/main.c (main): do not call init_window_list()
* src/manage.c (unmanage): use list delete macro
(map_window): likewise
(withdraw_window): use list moving macro to move entry to
another list.
(hide_others): use list looping macro
* src/split.c (num_frames): use list looping macro
(frames_screen): likewise
(maximize_all_windows_in_frame): likewise
(delete_frame_from_list): remove function
(create_initial_frame): remove list init code. Add current frame
to screen's frame list.
(init_frame_list): use list init macro
(find_last_frame): use list looping macro
(find_windows_frame): likewise
(find_frame_next): use list next entry macro
(find_frame_prev): use list previous entry macro
(find_window_for_frame): use list looping macro
(split_frame): use list add entry macro
(remove_all_splits): use list looping macro
(resize_frame_vertically): likewise
(resize_frame_horizontally): likewise
(total_frame_area): likewise
(frame_overlaps): likewise
(remove_frame): likewise
(find_frame_up): likewise
(find_frame_down): likewise
(find_frame_left): likewise
(find_frame_right): likewise
|
|
(resize_shrink_to_window): likewise
(resize_frame_vertically): likewise
(resize_frame_horizontally): likewise
* src/split.c (num_frames): no longer a static function
(resize_shrink_to_window): new function
(resize_frame_vertically): likewise
(resize_frame_horizontally): likewise
* src/main.c (init_defaults): init frame_resize_unit.
* src/data.h (struct rp_defaults): new member frame_resize_unit.
* src/conf.h (RESIZE_VGROW_KEY): new define
(RESIZE_VGROW_MODIFIER): likewise
(RESIZE_VSHRINK_KEY): likewise
(RESIZE_VSHRINK_MODIFIER): likewise
(RESIZE_HGROW_KEY): likewise
(RESIZE_HGROW_MODIFIER): likewise
(RESIZE_HSHRINK_KEY): likewise
(RESIZE_HSHRINK_MODIFIER): likewise
(RESIZE_SHRINK_TO_WINDOW_KEY): likewise
(RESIZE_SHRINK_TO_WINDOW_MODIFIER): likewise
(RESIZE_END_KEY): likewise
(RESIZE_END_MODIFIER): likewise
* src/actions.h (cmd_shrink): new prototype
(cmd_resize): likewise
(cmd_defresizeunit): likewise
* src/actions.c (user_commands): add commands cmd_resize and
cmd_shrink, and cmd_defresizeunit.
(cmd_shrink): new function
(cmd_resize): likewise
(cmd_defresizeunit): likewise
|
|
(chld_handler): new function
* src/events.c: include sys/wait.h
(handle_signals): Print an error message in the case of a child
signal.
* src/data.h (struct rp_child_info): New struct.
(child_info): New global.
(chld_signalled): likewise
* src/actions.c (spawn): Let the SIGCHLD handler handle process
completion instead of doing an ugly dance.
|
|
default.
* src/list.c (give_window_focus): only warp the pointer if the
warp setting is turned on.
* src/data.h (struct rp_defaults): new member, warp.
* src/actions.h (cmd_ward): new prototype
* src/actions.c (user_command): new command "warp"
(cmd_warp): new function
|
|
multiple screens.
* src/data.h (struct rp_window_frame): new data member 'number'.
* src/actions.h (cmd_prevscreen): new prototype
(cmd_nextscreen): likewise
* src/actions.c (user_commands): new commands "nextscreen" and
"prevscreen"
(cmd_nextscreen): new function
(cmd_prevscreen): likewise
|
|
spaces on both sides.
* src/main.c (init_screen): Create the frame, input, and bar
windows with a border width of defaults.bar_border_width.
(init_defaults): initialize defaults.bar_border_width
* src/bar.c (bar_x): Incorporate defaults.bar_border_width into
calculations.
(bar_y): likewise
* src/actions.h (cmd_defbarborder): new prototype
* src/actions.c (user_commands): new command "defbarborder"
(cmd_defbarborder): new function
* src/main.c (init_screen): create the help window with a 0 border
width.
|
|
* src/main.c (rp_error_msg): new global variable
* src/events.c (get_event): If there is an X11 error message to
print, print it.
* src/main.c (handler): record the error in rp_error_msg
|
|
reading the key.
* src/list.c (give_window_focus): update rp_current_frame when
setting the window focus.
* src/main.c (main): scan for windows in a seperate pass after
initializing the screen structures.
(init_screen): build a display string for each screen.
(init_screen): remove the call to scanwins.
* src/manage.c (current_screen): return the current screen using
rp_current_screen.
* src/split.h (init_frame_lists): new function
* src/split.c (rp_window_frame_sentinel): remove.
(rp_current_frame): remove.
(frames_screen): new function
(maximize_frame): use the frame's screen to find out the width and
height of the display.
(create_initial_frame): take a pointer to a screen_info as an
argument.
(init_frame_lists): new function
(init_frame_list): take a pointer to a screen_info as an argument.
(find_last_frame): take a pointer to a screen_info as an argument.
* src/actions.c (spawn): Set the DISPLAY environment variable to
point to the current screen.
* src/data.h (struct screen_info): add display_string,
rp_window_frame_sentinel, rp_current_frame.
(rp_current_screen): new global
(rp_current_frame): Remove. Dependant code uses
screen_info.rp_current_frame.
|
|
(RP_CONTROL_MASK): new define. All code depending on the X11
modifier mask equivalent has been changed to use this where
appropriate.
(RP_META_MASK): likewise
(RP_ALT_MASK): likewise
(RP_SUPER_MASK): likewise
(RP_HYPER_MASK): likewise
|
|
(find_frame_down): likewise
(find_frame_left): likewise
(find_frame_right): likewise
* src/split.c (find_frame_up): new function
(find_frame_down): likewise
(find_frame_left): likewise
(find_frame_right): likewise
* src/manage.c (move_window): use x11 gravity constants to denote
gravity.
* src/main.c (ratpoison_longopts): remove --kill and
--restart. Dependant code updated.
(init_defaults): use x11 gravity constants to denote gravity.
(main): only display the startup message if
defaults.startup_message is on.
* src/list.c (update_window_gravity): rename from
update_window_position. dependant code updated
* src/events.c (client_msg): don't test for restart or kill client
messages.
(client_msg): properly handle iconify requests.
(get_event): kill and restart the process here.
* src/data.h (TOP_LEFT): remove define
(TOP_CENTER): likewise
(TOP_RIGHT): likewise
(CENTER_LEFT): likewise
(CENTER_CENTER): likewise
(CENTER_RIGHT): likewise
(BOTTOM_LEFT): likewise
(BOTTOM_CENTER): likewise
(BOTTOM_RIGHT): likewise
(struct rp_window): rename field to position to gravity.
(struct rp_defaults): rename win_pos to win_gravity, trans_pos to
trans_gravity and maxsize_pos to maxsize_gravity.
(rp_restart): remove global variable
(rp_kill): likewise
* src/communications.h (send_kill): remove prototype
(send_restart): likewise
* src/communications.c (send_restart): remove function. obsolete.
(send_kill): likewise
* src/bar.c (bar_x): Use X11 gravity constants to denote location.
(bar_y): likewise
* src/actions.h (cmd_focusup): new prototype
(cmd_focusdown): likewise
(cmd_focusleft): likewise
(cmd_focusright): likewise
(cmd_startup_message): likewise
(cmd_restart): likewise
* src/actions.c (cmd_quit): just set the kill_signalled variable.
(parse_wingravity): use compass directions to describe the gravity
(parse_wingravity): renamed from parse_winpos. dependant code
updated.
(cmd_gravity): renamed from cmd_pos. dependant code updated.
(cmd_defwingravity): renamed from cmd_defwinpos. dependant code
updated.
(cmd_deftransgravity): renamed from cmd_deftranspos. dependant
code updated.
(cmd_defmaxsizegravity): renamed from cmd_defmaxsizepos. dependant
code updated.
(cmd_focusup): new function
(cmd_focusdown): likewise
(cmd_focusleft): likewise
(cmd_focusright): likewise
(cmd_restart): likewise
(cmd_startup_message): likewise
(user_commands): new commands "focusup" "focusdown" "focusright"
"focusleft" "startup_message" "restart".
|
|
(window_name): new prototype
(get_window_list): update prototype
* src/events.c (grab_rat): Don't wrap in an #ifdef
(ungrab_rat): likewise
(handle_key): record if the rat is grabbed and only ungrab it at
the end if it was first grabbed.
* src/actions.h (cmd_pos): new prototype
(cmd_defwinpos): new prototype
(cmd_deftranspos): new prototype
(cmd_defmaxsizepos): new prototype
(cmd_defbartimeout): new prototype
(cmd_defbarloc): new prototype
(cmd_deffont): new prototype
(cmd_defpadding): new prototype
(cmd_defborder): new prototype
(cmd_definputwidth): new prototype
(cmd_defwaitcursor): new prototype
(cmd_defwinfmt): new prototype
(cmd_defwinname): new prototype
* src/messages.h (MESSAGE_FRAME_STRING): new message
* src/manage.c (get_wmname): renamed from get_window_name
(get_class_hints): new function
(get_res_name): likewise
(get_res_class): likewise
(update_window_name): update the window's wm_name, res_name, and
res_class fields.
(update_window_name): calls functions get_wmname, get_res_name,
get_res_class.
(update_window_name): Don't crop the window name.
(update_window_information): call update_window_position.
(move_window): new function
(maximize_transient): only set the window's width and height
fields.
(maximize_normal): likewise
(maximize): call move_window
(force_maximize): likewise
(force_maximize): if the window has resize hints, resize it 1
resize unit.
* src/main.c: new global variable, defaults. remove static
variable, font, and move to defaults. Dependant code updated.
(init_defaults): new function
(main): call init_defaults.
(init_screen): initialize the screen's fg_color to black and
bg_color to white.
* src/list.c (free_window): free the fields user_name, res_name,
res_class, and wm_name.
(update_window_position): new function
(window_name): new function. Code accessing a window's name uses
this function. All code updated.
(add_to_window_list): call update_window_position
(add_to_window_list): initialize wm_name, res_name, and res_class
for the new window.
(format_window_name): new function
(get_window_list): Add parameter fmt. All callers updated.
(get_window_list): call format_window_name.
* src/conf.h: move Configuration variables to the global variable,
defaults. Dependant code updated.
* src/data.h (TOP_LEFT): new define
(TOP_CENTER): likewise
(TOP_RIGHT): likewise
(CENTER_LEFT): likewise
(CENTER_CENTER): likewise
(CENTER_RIGHT): likewise
(BOTTOM_LEFT): likewise
(BOTTOM_CENTER): likewise
(BOTTOM_RIGHT): likewise
(struct rp_window): new fields user_name, wm_name, res_name,
res_class, position.
(struct rp_window): remove field name. Replaced with
user_name. Dependant code updated.
(struct screen_info): remove field font. dependant code updated.
(struct screen_info): new fields fg_color, bg_color.
(struct rp_defaults): new struct
(defaults): new global
* src/actions.c (parse_winpos): new function
(cmd_pos): likewise
(cmd_defwinpos): likewise
(cmd_deftranspos): likewise
(cmd_defmaxsizepos): likewise
(cmd_defbartimeout): likewise
(cmd_defbarloc): likewise
(cmd_deffont): likewise
(cmd_defpadding): likewise
(cmd_defborder): likewise
(cmd_definputwidth): likewise
(cmd_defwaitcursor): likewise
(cmd_defwinfmt): likewise
(cmd_defwinname): likewise
(user_commands): New commands defbarloc, defbartimeout, defborder,
deffont, defintputwidth, defmaxsizepos, defpadding, deftranspos,
defwaitcursor, defwinfmt, defwinname, defwinpos.
|
|
|
|
|
|
|
|
(rp_rat_mask_bits): remove include <X11/cursorfont.h>
(sighandler): only increment kill_signalled
(hup_handler): only increment hup_signalled
(alrm_handler): only increment alarm_signalled
(read_startup_files): use PRINT_ERROR for error messages.
(init_rat_cursor): Use a standard X cursor for the screen's rat.
* src/events.h (unmap_notify): remove prototype
(delegate_event): likewise
(key_press): likewise
(keymapstate): likewise
(map_request): likewise
* src/events.c: includes <signal.h> <sys/time.h> and <error.h>
(new_window): static function
(unmap_notify): likewise
(map_request): likewise
(destroy_window): likewise
(configure_notify): likewise
(configure_request): likewise
(key_press): likewise
(property_notify): likewise
(colormap_notify): likewise
(delegate_event): likewise
(get_event): new function
(more_destroy_events): remove function
(handle_events): call get_event.
* src/data.h: rp_current_event is an XEvent dependant code
updated. new globals alarm_signalled, kill_signalled,
hup_signalled.
* src/actions.c (initialize_default_keybindings): new bindings for
"split" and "vsplit".
|
|
* src/data.h (WIN_EVENTS): Add StructureNotifyMask.
* src/events.c (unmap_notify): ignore SubstructureNotify unmaps.
|
|
unmapping the window.
* src/list.c (add_to_window_list): use WIN_EVENTS in XSelectInput.
* src/data.h (struct rp_window): remove iconizing field. remove
code using iconizing.
(WIN_EVENTS): new define
|
|
|
|
|
|
* src/manage.c (scanwins): ignore the help window
(hide_window): increment window's iconizing variable
* src/main.c (main): display welcoming message
(init_screen): create the help window
(init_screen): don't map the frame indicator window
(clean_up): destroy the help window
* src/list.c (add_to_window_list): initialize iconizing to 0
* src/events.c (new_window): skip help_window
(unmap_notify): skip normal processing if the event is from
iconizing the window.
(unmap_notify): clean up the window's frame if it is being
withdrawn.
* src/data.h (struct screen_info): new variable help_window
* src/bar.c (update_window_names): only print the window list if
the bar is already displaying the window list.
* src/actions.h (cmd_help): new prototype
(cmd_quit): likewise
* src/actions.c (initialize_default_keybindings): new keybinding for "help"
(cmd_quit): new function
(cmd_help): likewise
|
|
* src/split.c (split_frame): calls unhide_window after maximizing
the new frame's window.
(remove_all_splits): hide all windows but the current one
(remove_all_splits): maximize the current window in its newly
resized frame.
(remove_frame): hide the frame's window after removing it from the
list.
(blank_frame): new function
* src/manage.h (withdraw_window): new prototype
(hide_window): likewise
(unhide_window): likewise
* src/manage.c (scanwins): glob ignored windows into 1 if
statement.
(scanwins): set the window's state to NormalState before calling
map_window.
(set_state): sets win->state
(map_window): calls set_state
(hide_window): new function
(unhide_window): likewise
(withdraw_window): new function
* src/main.c (main): setup error handlers after --command,
--restart, and --kill commands have been processed.
(main): doesn't call set_active_window
(init_screen): XSync's after selecting ewents on the root window.
(clean_up): map iconized windows
* src/list.h (give_window_focus): prototype updated
* src/list.c (give_window_focus): takes a second argument,
last_win.
(give_window_focus): calls unhide_window
(give_window_focus): uses last_win instead of current_window()
(set_active_window): hides the last window and unhides the new
window.
(set_active_window): calls give_window_focus
* src/events.c (cleanup_frame): maximizes the frame's new window
(unmap_notify): do nothing if the window is in the iconic
state. Withdraw the window if it is in the normal state.
(map_request): calls unhide_window if the window is iconized. Do
nothing if it is already mapped.
(destroy_window): tightened up
(client_msg): detects iconize requests from clients.
* src/data.h (STATE_UNMAPPED): remove. Dependant code uses
WithdawnState in its stead.
(STATE_MAPPED): likewise. Dependant code uses NormalState in its
stead
* src/actions.c (initialize_default_keybindings): new keybinding -
bound to "select -"
(cmd_select): the string "-" selects a blank window
|
|
(show_frame_indicator): likewise
* src/split.c: include <unistd.h>
(split_frame): set the new_frame's window to NULL
(split_frame): calls show_frame_indicator once the split is done.
(set_active_frame): only call show_frame_indicator if the frame
has no window or if we switched to a different frame.
(update_frame_indicator): prints FRAME_STRING in the frame
indicator window.
(hide_frame_indicator): new function
(show_frame_indicator): likewise
* src/main.c (rp_rat_bits): new variable
(rp_rat_mask_bits): likewise
(alrm_handler): calls hide_frame_indicator
(init_rat_cursor): new function
(init_screen): calls init_rat_cursor
* src/events.c (unmap_notify): calls set_active_frame if the
window being unmapped was in the current frame
(destroy_window): calls set_active_frame if the
window being destroyed was in the current frame
(grab_rat): new function
(grab_rat): likewise
(handle_key): calls grab_rat and ungrab_rat
* src/data.h (struct screen_info): new variable rat
* src/conf.h (FRAME_INDICATOR_TIMEOUT): new #define
(FRAME_STRING): likewise
(RAT_HEIGHT): likewise
(RAT_WIDTH): likewise
(RAT_HOT_X): likewise
(RAT_HOT_Y): likewise
* src/actions.h (cmd_curframe): new prototype
* src/actions.c (initialize_default_keybindings): new key binds
for "curframe"
(user_commands): new command "curframe"
(cmd_curframe): new function
* src/split.c (remove_all_splits): only maximize the current
window if there is one.
(maximize_frame): remove unused code to retrieve the current
screen_info.
* src/actions.c (cmd_h_split): calls h_split_frame on the current
frame.
(cmd_v_split): likewise
(cmd_only): even if the current frame is empty, call
remove_all_splits.
* src/split.c (maximize_frame): new function
(create_initial_frame): calls maximize_frame to fill in the
initial frame's fields.
(num_frames): comment out
(remove_frame): remove special case when there is only 1 frame
left.
* src/split.h (h_split_frame): renamed frome h_split_window
(v_split_frame): renamed frome v_split_window
(split_frame): renamed frome split_window
(remove_all_splits): renamed frome remove_all_frames
(find_windows_frame): new prototype
(find_frame_next): likewise
(find_frame_prev): likewise
(current_window): likewise
(init_frame_list): likewise
(set_active_frame): likewise
* src/split.c (create_initial_frame): new function
(init_frame_list): likewise
(find_windows_frame): likewise
(find_frame_next): likewise
(find_frame_prev): likewise
(current_window): likewise
(update_frame_indicator): likewise
(set_active_frame): likewise
(split_frame): rename from split_window
(v_split_frame): rename from v_split_window
(h_split_frame): rename from h_split_window
(remove_all_splits): renamed frome remove_all_frames
(total_frame_area): traverses rp_window_frame list
(num_frames): likewise
(frame_overlaps): likewise
(remove_frame): likewise
(remove_frame): calls delete_frame_from_list
* src/main.c (main): calls init_frame_list
(init_screen): create and map the frame_window
* src/events.c (new_window): the screen's frame_window is not
managed
(cleanup_frame): new function
(unmap_notify): calls cleanup_frame if window exists in a frame
(destroy_window): likewise
* src/data.h (struct screen_info): remove frame field
(struct rp_window_frame): new fields win, prev, next
(rp_window_frame_sentinel): new global
* src/actions.c (cmd_prev): jumps to last accessed window if
current frame is empty.
(cmd_next): likewise
(cmd_remove): nothing is done if only 1 frame exists
* src/data.h (struct screen_info): new field frame_window
(rp_current_frame): new global
(rp_current_window): removed. All dependant code updated.
|
|
(v_split_frame): renamed frome v_split_window
(split_frame): renamed frome split_window
(remove_all_splits): renamed frome remove_all_frames
(find_windows_frame): new prototype
(find_frame_next): likewise
(find_frame_prev): likewise
(current_window): likewise
(init_frame_list): likewise
(set_active_frame): likewise
* src/split.c (create_initial_frame): new function
(init_frame_list): likewise
(find_windows_frame): likewise
(find_frame_next): likewise
(find_frame_prev): likewise
(current_window): likewise
(update_frame_indicator): likewise
(set_active_frame): likewise
(split_frame): rename from split_window
(v_split_frame): rename from v_split_window
(h_split_frame): rename from h_split_window
(remove_all_splits): renamed frome remove_all_frames
(total_frame_area): traverses rp_window_frame list
(num_frames): likewise
(frame_overlaps): likewise
(remove_frame): likewise
(remove_frame): calls delete_frame_from_list
* src/manage.c (scanwins): skips the frame_window
(maximize_transient): finds the window's frame
(maximize_normal): likewise
* src/main.c (main): calls init_frame_list
(init_screen): create and map the frame_window
* src/list.c (give_window_focus): new function
(goto_window): likewise
(set_active_window): calls give_window_focus
* src/list.h (give_window_focus): new prototype
(goto_window): likewise
* src/events.c (new_window): the screen's frame_window is not
managed
(cleanup_frame): new function
(unmap_notify): calls cleanup_frame if window exists in a frame
(destroy_window): likewise
* src/data.h (struct screen_info): remove frame field
(struct rp_window_frame): new fields win, prev, next
(rp_window_frame_sentinel): new global
* src/actions.c (cmd_prev): jumps to last accessed window if
current frame is empty.
(cmd_next): likewise
(cmd_remove): nothing is done if only 1 frame exists
* src/data.h (struct screen_info): new field frame_window
(rp_current_frame): new global
(rp_current_window): removed. All dependant code updated.
|
|
(find_window_for_frame): likewise
(find_window_for_frame): likewise
(find_window_for_frame): likewise
(find_window_for_frame): likewise
* src/split.c (window_fits_in_frame): new function
(find_window_for_frame): likewise
(split_window): likewise
(v_split_window): likewise
(h_split_window): likewise
(remove_all_frames): likewise
(frame_is_below): likewise
(frame_is_above): likewise
(frame_is_left): likewise
(frame_is_right): likewise
(total_frame_area): likewise
(num_frames): likewise
(frames_overlap): likewise
(frame_overlaps): likewise
(remove_frame): likewise
* src/ratpoison.h: includes "split.h"
* src/manage.c (unmanage): calls free_window
(maximize_transient): takes the window's frame into account
(maximize_normal): likewise
* src/list.h (find_window_prev_with_frame): new function prototype
(find_window_next_with_frame): likewise
(free_window): likewise
* src/list.c (free_window): new function
(add_to_window_list): initialize new window's frame to NULL.
(find_window_prev): skips windows with frames
(find_window_next): likewise
(find_window_other): likewise
(find_window_prev_with_frame): new function
(find_window_next_with_frame): new function
(set_active_window): returns if the specified window is already
the current window.
(set_active_window): If the new window has no frame it inherits
the current window's frame.
(set_active_window): maximize and raise the newly active window.
* src/events.c (unmap_notify): handles window frames.
(destroy_window): simplified
* src/data.h (struct rp_window_frame): new struct
(struct rp_window): add frame variable
* src/conf.h (WINDOW_BORDER_WIDTH): set to 1
* src/actions.h (cmd_next_frame): new function prototype
(cmd_prev_frame): likewise
(cmd_h_split): likewise
(cmd_v_split): likewise
(cmd_only): likewise
(cmd_remove): likewise
* src/actions.c (initialize_default_keybindings): new default
bindings for "split", "vsplit", "focus", "only", "remove"
(user_commands): new user commands "split", "vsplit", "focus",
"only", "remove"
(cmd_prev_frame): new function
(cmd_next_frame): likewise
(cmd_h_split): likewise
(cmd_v_split): likewise
(cmd_only): likewise
(cmd_remove): likewise
* src/Makefile.am (ratpoison_SOURCES): new files split.c split.h
|
|
|
|
command-line options.
* src/communications.h (send_command): new function prototype
* src/data.h (rp_command): new global variable
* src/events.c (receive_command): new function
(property_notify): handles rp_command Atoms
* src/communications.c (send_command): new function
* src/main.c (print_help): prints help for --command
(main): handles --command command-line option
|