Age | Commit message (Collapse) | Author |
|
* src/split.c (update_last_access): new function
(find_last_frame): likewise
(split_frame): update the new frame's last_access field
(set_active_frame): update the new current frame's last_access field
* src/input.h (x11_mask_to_rp_mask): new prototype
(rp_mask_to_x11_mask): likewise
* src/input.c (x11_mask_to_rp_mask): new function
(rp_mask_to_x11_mask): likewise
* src/events.c (handle_key): convert X11 modifier masks to rp
modifier masks where appropriate.
* src/actions.h (cmd_focuslast): new prototype
* src/actions.c (initialize_default_keybindings): new keybinding
for "focuslast"
(cmd_focuslast): new function
(user_command): new command "focuslast"
|
|
|
|
(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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a result string
|
|
|
|
(ungrab_rat): likewise
(handle_key): only change the mouse icon if USE_WAITFORKEY_CURSOR is
defined.
* src/conf.h (USE_WAITFORKEY_CURSOR): new define
|
|
(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
|
|
|
|
|
|
retrieving and installing the colormap.
* src/manage.c (withdraw_window): ignore badwindows during all
Xlib calls.
|
|
init_modifier_map. all callers updated. prototype updated.
* src/events.c (mapping_notify): new function
(delegate_event): handle MappingNotify events.
|
|
|
|
* 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
|
|
and FocusIn events.
(focus_change): new function
* src/list.c (add_to_window_list): add FocusChangeMask to the
window's event mask.
|
|
|
|
* main.c (xmalloc): Move here from sbuf.c.
(xrealloc): Likewise.
(fatal): Likewise.
* number.c (find_empty_cell): Use xrealloc, remove error check.
(init_numbers): Likewise.
* manage.c (get_window_name): Likewise.
* main.c (main): Likewise.
* list.c (add_to_window_list): Likewise.
(add_to_window_list): Likewise.
* events.c (handle_key): Likewise.
* input.c (keysym_to_string): Likewise.
(get_more_input): Use xrealloc, remove error check.
* main.c (read_rc_file): Take a file pointer rather than a
filename.
(read_startup_files): If ~/.ratpoisonrc is not readable try
/etc/ratpoisonrc.
|
|
* manage.h (map_window): new prototype.
* events.c (new_window): calls update_window_information on new windows.
(map_request): calls map_window on managed unmapped windows.
(configure_request): removed commented out old crusty
code. Updates window's structure based on what bits are set in the
event's value_mask. Doesn't honour resize request. Windows are
always maximized.
(property_notify): doesn't call maximize when WM_NORMAL_HINTS are
updated.
* manage.c (manage): no longer maps the window, this code is in
map_window.
(map_window): new function
(maximize): no longer sends a synthetic configure event.
(scanwins): calls map_window on viewable windows.
(update_window_information): renamed from manage. dependant code
updated.
|
|
(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.
|
|
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.
|
|
set_active_window().
* list.h (remove_from_window_list): removed prototype
(find_window_in_list): new prototype
(append_to_list): likewise
(insert_into_list): likewise
(remove_from_list): likewise
* list.c: propogated use of rp_unmapped_window_sentinel and
rp_mapped_window_sentinel.
(find_window_in_list): new function
(find_window): calls find_window_in_list to search mapped and
unmapped window lists.
(remove_from_window_list): removed function
(init_window_list): initialized sentinels
(find_window_prev): searches only the mapped window list.
(find_window_next): likewise
(find_window_other): likewise
(append_to_list): new function
(insert_into_list): new function
(remove_from_list): new function
* events.c (unmap_notify): Searches only the mapped window
list. moves the window from the unmapped window list to the mapped
window list.
* data.h: removed rp_window_head and rp_window_tail, updated
dependant files. Added rp_mapped_window_sentinel and
rp_unmapped_window_sentinel globals.
* bar.c (update_window_names): loops only through mapped window
list.
|
|
|
|
|
|
|
|
a screen_info param
|
|
|
|
|
|
* 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().
|
|
* 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
|
|
* events.c (property_notify): Added handler for XA_WM_NORMAL_HINTS.
|
|
|