summaryrefslogtreecommitdiff
path: root/src/manage.c
AgeCommit message (Collapse)Author
2001-09-06numlock, caps lock, and scroll lock are ignored for the prefix key.sabetts
2001-08-31maximize bug fixed. frame indicator is less intrusivesabetts
2001-08-29unhide bugsabetts
2001-08-27maximize bugsabetts
2001-08-27code cleanup, unmap_notify bug fixessabetts
2001-08-23new rudeness commandsabetts
2001-08-23new code to handle transient windowssabetts
2001-08-18window flicker problems fixedsabetts
2001-06-11* src/main.c (rp_rat_bits): removesabetts
(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".
2001-06-05* src/manage.c (hide_window): ignore only StructureNotify events.sabetts
* src/data.h (WIN_EVENTS): Add StructureNotifyMask. * src/events.c (unmap_notify): ignore SubstructureNotify unmaps.
2001-06-02* src/manage.c (hide_window): ignore unmap_notify events whensabetts
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
2001-06-01transients appear overtop of other windowssabetts
2001-05-24* src/events.c (colormap_notify): ignore badwindows whensabetts
retrieving and installing the colormap. * src/manage.c (withdraw_window): ignore badwindows during all Xlib calls.
2001-04-19* src/manage.c (unhide_window): map and raise the window.sabetts
2001-04-15* src/messages.h (MESSAGE_WELCOME): new definesabetts
* 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
2001-04-13* src/split.h (blank_frame): new prototypesabetts
* 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
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-01(maximize_normal): fixed maximizing problems forsabetts
windows with resize hints. (maximize_transient): likewise
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-14* src/conf.h: replaced the silly c++ style comment aroundsabetts
HIDE_MOUSE with a REAL comment. * src/manage.c (update_window_information): updates the window's border width. * src/conf.h (WINDOW_BORDER_WIDTH): new constant * src/manage.c (maximize_normal): Set the border width to WINDOW_BORDER_WIDTH. takes the border width into account when calculating the position, width, and height. (maximize_transient): likewise (maximize): calls XSetWindowBorderWidth to set the window's border width. (force_maximize): likewise
2001-03-03fixes to maximize_transientsabetts
2001-03-03fixes to maximize_normalsabetts
2001-03-02* ratpoison.h (xmalloc, xrealloc, fatal): Prototype.rcyeske
* 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.
2001-03-01* manage.c (map_window): calls update_window_information.sabetts
* 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.
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-23* main.c (main): passes return value of find_window_other() tosabetts
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.
2001-02-22comment out broken sort_window_list_by_number callrcyeske
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-18* conf.h: restructured comments. Added #define for AUTO_CLOSE.sabetts
* manage.c (unmanage): kills ratpoison when there are no more windows.
2001-02-17renamed display_msg_in_bar() to message(); it and get_input() no longer take ↵rcyeske
a screen_info param
2001-02-15header cleanups & copyright year update & coalgernon
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().
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* manage.c (manage): added ColormapChangeMask andsabetts
StructureNotifyMask to events listened for on managed windows. * manage.c (update_window_name): fixed memory leak. Not freeing the win->name before updating it. (manage): Gets the colormap now.
2000-12-15added commentingsabetts
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-10-30removed PointerMotionMask from the events ratpoison polls windows forsabetts
2000-10-30added ifdef's to toggle the hide mouse featuresabetts
2000-10-20added initial support for hiding the rat on key eventssabetts
2000-10-20free pointer and test for NULL names in unmanaged_window()rcyeske
2000-10-20added unmanaged windows and window paddingrcyeske
2000-10-20added get_window_namesabetts
2000-10-17fixed bug that lost focus of any window when the current window was unmapped.sabetts
moved key strokes into a structure in actions.c along with all key stroke functi ons. added ability to ignore badwindow errors. fixed up unmap_notify function. w hen waiting for a keystroke after the prefix has been hit, pressing a modifier d oesn't count as a 'keystroke' and doesn't abort the current key combination bein g keyed
2000-09-15minor change to update_window_name to get rid of a compiler warningsabetts
when debugging messages are not enabled.
2000-09-15Added a standard error reporting function PRINT_ERROR and a standardsabetts
debug output function PRINT_DEBUG.
2000-09-07restructured tree, added automake and autoconf to the build process.sabetts