summaryrefslogtreecommitdiff
path: root/src/actions.c
AgeCommit message (Collapse)Author
2001-04-07* src/split.h (hide_frame_indicator): new prototypesabetts
(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.
2001-04-07* src/split.c (remove_all_splits): only maximize the currentsabetts
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.
2001-04-06* src/split.h (h_split_frame): renamed frome h_split_windowsabetts
(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.
2001-04-05(initialize_default_keybindings): Add keybinding for :banish.rcyeske
2001-04-05add banish to user_commands.rcyeske
(cmd_banish): New function.
2001-04-01* src/split.h (find_window_for_frame): new function prototypesabetts
(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
2001-03-29better command functionalitysabetts
2001-03-12merged rel-0-1-0 branchsabetts
2001-03-08(string_to_keysym): New function.rcyeske
(parse_keydesc): Call string_to_keysym.
2001-03-06formattingrcyeske
2001-03-06formattingrcyeske
2001-03-05remove silly C,M,A,S,H #defines and propagatercyeske
changes.
2001-03-04(cmd_bind): Do not pollute the message bar withrcyeske
chatter about the keybinding.
2001-03-02* actions.c (initialize_default_keybindings): removed emacssabetts
binding. * Makefile.am (SUBDIRS): removed man/ * configure.in (AC_OUTPUT): removed man/Makefile removed references to emacs. * doc/Makefile.am (man_MANS): ratpoison.1 moved to doc/ * doc/ratpoison.texi: minor updates.
2001-03-02* actions.c (cmd_source): Open the file. Error report asrcyeske
appropriate. (cmd_windows): Call current_screen() to find the current screen. (cmd_clock): Show the clock even if no windows are open. (cmd_clock): Use xmalloc, remove error check. (initialize_default_keybindings): Use xmalloc. (cmd_bind): Use xmalloc. (cmd_rename): Use xmalloc, remove error check. (add_keybinding): Use xrealloc. (replace_keybinding): Use xrealloc. * actions.c: Use PRINT_DEBUG instead of fprintf. Put useful error text in calls to message(). (cmd_select): Show the window list if there is no such window number.
2001-03-02* actions.c (cmd_source): Open the file. Error report asrcyeske
appropriate. * main.c (read_rc_file): Take a file pointer rather than a filename. (read_startup_files): If ~/.ratpoisonrc is not readable try /etc/ratpoisonrc. * actions.c: Use PRINT_DEBUG instead of fprintf. Put useful error text in calls to message(). (cmd_select): Show the window list if there is no such window number.
2001-03-02Use PRINT_DEBUG instead of fprintf. Put useful errorrcyeske
text in calls to message(). (cmd_select): Show the window list if there is no such window number.
2001-02-28* actions.c (cmd_escape): updates the "other" command keybindingsabetts
2001-02-28* manage.h (ungrab_prefix_key): new prototypesabetts
(grab_prefix_key): likewise * manage.c (ungrab_prefix_key): new function * main.c (main): calls initialize_default_keybindings after init_window_list. * data.h (struct rp_action): key is of type KeySym. state is unsigned int. * conf.h (KEY_PREFIX): set to XK_t * actions.h (cmd_escape): new prototype * actions.c (cmd_escape): new function * data.h (struct key): move from actions.h (struct rp_key): rename from struct key. dependant code updated. (prefix_key): new global variable. code dependant on KEY_PREFIX and MODIFIER_PREFIX updated to use this. * actions.c: "maximize" user command calls cmd_maximize (initialize_default_keybindings): initializes prefix_key. Added "escape" command. * manage.c (force_maximize): moved from actions.c (maximize): likewise (maximize_normal): likewise (maximize_transient): likewise * actions.c (cmd_maximize): New function * main.c (handler): Prepends error message with "ERROR: ". Displays error in message bar. Returns 0. * events.c (destroy_window): sets rp_current_window to NULL when there are no more mapped windows. (destroy_window): calls set_current_window and find_window_other directly instead of cmd_other.
2001-02-28* actions.c: "maximize" user command calls cmd_maximizesabetts
* manage.c (force_maximize): moved from actions.c (maximize): likewise (maximize_normal): likewise (maximize_transient): likewise * actions.c (cmd_maximize): New function
2001-02-27* actions.h: prototype for force_maximize addedsabetts
* actions.c: the user command "maximize" calls force_maximize (force_maximize): New function
2001-02-26added cmd_sourcercyeske
2001-02-24fix key rebindingrcyeske
2001-02-22added preliminar keybinding supportrcyeske
2001-02-21fixed generate prefix stupidityrcyeske
2001-02-20removed key_actions table, replaced with set of functionsrcyeske
2001-02-19renamed all user commandsrcyeske
2001-02-19* manage.c (manage): calls sort_window_list_by_numbersabetts
* list.h (sort_window_list_by_number): Added prototype * list.c (swap_list_elements): Added (sort_window_list_by_number): Added * input.c (update_input_window): Added (get_input): calls update_input_window in place of xlib calls. (get_input): exits if realloc fails * conf.h: Added INPUT_WINDOW_SIZE * bar.c (update_window_names): loops through window list from head to tail.
2001-02-17renamed display_msg_in_bar() to message(); it and get_input() no longer take ↵rcyeske
a screen_info param
2001-02-17changed a bunch of fprintfs to PRINT_DEBUGalgernon
2001-02-17(goto_window_by_name, rename_current_window, command)algernon
(shell_command, switch_to, xterm_command): changed static char[100]s to dynamic char *s, as get_input() now supports this
2001-02-15added xterm_command and keybindingsrcyeske
2001-02-15added generate_key_eventrcyeske
2001-02-14added interactive commandsrcyeske
2001-02-11* manage.h (set_state): Added prototypesabetts
* manage.c (send_configure): Now sends the window's x,y,width,height coordinates. (set_state): Added * events.c (map_request): Calls set_state when mapping an unmapped window. * actions.c (maximize_transient): takes an rp_window as the argument. Removed code to handle void *data. Incremental resizing only happens if the maximum size isn't set. Removed actual X maximization code. (maximize): Moved meat to maximize_normal().
2001-02-11*** empty log message ***rcyeske
2001-02-11* actions.c (prev_window): display correct message when there isrcyeske
no other window or there are no windows at all. (next_window): display correct message when there is no other window or there are no windows at all. (key_actions): all number keys call goto_window_number with an argument instead of a dedicated function. * actions.c: replaced all user message strings with #define'd messages. * actions.h (goto_window): removed (goto_window_0): removed (goto_window_1): removed (goto_window_2): removed (goto_window_3): removed (goto_window_4): removed (goto_window_5): removed (goto_window_6): removed (goto_window_7): removed (goto_window_8): removed
2001-02-10* communications.c (send_restart, send_kill): Addedsabetts
* ratpoison.h: includes communications.h * main.c (send_restart, send_kill): Moved to communications.c * list.c (get_mouse_root_position): Added (add_to_window_list): Initialize new rp_window fields (save_mouse_position): Added (set_active_window): Added code to save and restore the position of the mouse * events.c (property_notify): Added code to listen for a WM_TRANSIENT_FOR property change. * data.h (struct rp_window): Added transient, transient_for, mouse_x, mouse_y. * actions.c (maximize_transient): Added (maximize): Added code to handle transient windows differently * Makefile.am (ratpoison_SOURCES): Added communications.h and communications.c
2001-02-04(prev_window): do not set active window when recursing.rcyeske
(next_window): do not set active window when recursing.
2001-01-28* actions.c: changed rename_current_window key to `A', bound `a' to show_clockrcyeske
2001-01-02* actions.h (show_clock): added prototypesabetts
* actions.c (show_clock): added
2000-12-15* actions.c (maximize): increment size in hints->width_inc and ↵sabetts
hints->height_inc intervals * manage.c (manage): set the dimension members of the rp_window struct
2000-12-15* actions.c (prev_window): No longer uses rp_current_window tosabetts
keep track of state (next_window): No longer uses rp_current_window to keep track of state * actions.c (maximize): Adhere to the window's Size Hints
2000-12-15(maximize): Adhere to the window's Size Hintssabetts
2000-12-13removed gross tabs from key_actions definition. Addsabetts
C-t space to go to next window.
2000-12-09* data.h (struct rp_window): added x, y, width, height, border;sabetts
* events.c (configure_request): Now honours request, but then maximizes it afterwards. (configure_request): updates the rp_window's geometry fields * manage.c (manage): commented out XMoveResizeWindow call (send_configure): added * actions.h (maximize): added prototype * actions.c (maximize): added
2000-12-09* input.c (cook_keycode): properly handle LockMasksabetts
* input.h: added prototype for keysym_to_string * input.c (keysym_to_string): added * bar.c (show_bar): update_window_names(s) is called whether the bar is raised or not. * conf.h: Added BAR_Y_PADDING BAR_X_PADDING * list.c (goto_window_name): return success or failure * list.h: updated prototype for goto_window_name * events.c (handle_key): Added a message indicating an unbound key. * bar.c (display_msg_in_bar): added (update_window_names): uses BAR_X_PADDING instead of `5' (update_window_names): Updated BAR_PADDING to BAR_Y_PADDING * input.c (cook_keycode): mod is now an usigned int (read_key): Ignores modifier keys. Now returns keysym and modifiers. (get_input): Updated BAR_PADDING to BAR_Y_PADDING and BAR_X_PADDING. * events.c (handle_key): uses read_key instead of XMaskEvent to read a key. * actions.c (goto_window_number): window list is displayed on failure. (bye): added (switch_to): added (execute_command): no longer seg faults when no windows exist.
2000-12-04* input.h (cook_keycode): added prototypesabetts
* actions.c: key_actions now uses the #define'd keysyms from X11/keysym.h * events.c (handle_key): calls cook_keycode() before processing the keysym. * input.c (read_key): calls cook_keycode() before returning the keysym (cook_keycode): added.
2000-11-27fixed some problems with modifiers for key eventssabetts
2000-10-31* actions.c (rename_current_window): added test to skip renaming if user ↵rcyeske
entered an empty string (execute_command): added command (key_actions): execute_command is called by pressing ':'