1. 19 Feb, 2008 1 commit
  2. 19 Dec, 2007 1 commit
    • Havoc Pennington's avatar
      sort source files into these directories according to which part of the WM · 72b08c82
      Havoc Pennington authored
      2007-12-19  Havoc Pennington  <hp@redhat.com>
      
      	* src/ui, src/core, src/include: sort source files into these
      	directories according to which part of the WM they are supposed to
      	be in. In an eventual plan, we should also create
      	src/compositor/render, src/compositor/fallback and move some of
      	the compositor stuff into that.
      	
      	* autogen.sh: require a newer automake, so we don't have to use
      	a recursive build
      
      	* src/ui/tabpopup.c: put in a hack to make the build temporarily
      	work, want to commit the large rearrangement before fixing this
      	not to include workspace.h or frame.h
      
      	* src/core/iconcache.c (meta_read_icons): temporarily break this
      	to get the build to work, want to commit the large rearrangement
      	before fixing this file not to include theme.h
      
      
      svn path=/trunk/; revision=3491
      72b08c82
  3. 30 Jul, 2007 1 commit
  4. 11 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      Refactor thrice-duplicated queue code in window.c. Closes #376760. · 8f2b9cb4
      Thomas Thurman authored
      2007-06-10  Thomas Thurman  <thomas@thurman.org.uk>
      
              Refactor thrice-duplicated queue code in window.c. Closes #376760.
      
              * src/window.c (meta_window_queue, meta_window_unqueue):
              New functions.
              * src/window.[ch] (meta_window_unqueue_*, meta_window_queue_*):
              Removed functions.
              * src/window.c (meta_window_new_with_attrs, meta_window_free,
              meta_window_flush_calc_showing, queue_calc_showing_func,
              meta_window_minimize, meta_window_unminimize, meta_window_maximize,
              meta_window_make_fullscreen, meta_window_shade,
              meta_window_unshade, meta_window_move_resize_internal,
              window_stick_impl, window_unstick_impl,
              meta_window_client_message, process_property_notify): Modified to
              use new queueing functions.
              * src/window.c (idle_move_resize, idle_update_icon,
              idle_calc_showing): update to receive queue number from pointer.
              * src/window.h (MetaQueueType): new enum.
              * src/window.h (MetaWindow): *_queued replaced with is_in_queue
              bitfield.
              * src/core.c (meta_core_queue_frame_resize):
              * src/display.c (event_callback,
              meta_display_queue_retheme_all_windows): Using new queueing functions.
              * src/frame.c (meta_window_destroy_frame): Using new queueing functions.
              * src/screen.c (queue_resize, meta_screen_resize_func,
              queue_windows_showing): Using new queueing functions.
              * src/window-props.c (reload_mwm_hints, reload_wm_hints,
              reload_transient_for): Using new queueing functions.
              * src/workspace.c (meta_workspace_add_window,
              meta_workspace_remove_window, meta_workspace_queue_calc_showing,
              meta_workspace_invalidate_work_area): Using new queueing functions.
      
      
      svn path=/trunk/; revision=3236
      8f2b9cb4
  5. 18 Apr, 2007 1 commit
    • Elijah Newren's avatar
      Fix some fallout from #426519; update user_rect for all position changes · e6691951
      Elijah Newren authored
      2007-04-17  Elijah Newren  <newren gmail com>
      
      	Fix some fallout from #426519; update user_rect for all position
      	changes prior to the window being marked as placed.  Prevents
      	emacs in particular from flickering on start and always being
      	shoved to the upper-left corner.
      
      	* src/window.c (meta_window_move_resize_internal):
      	Record position in user_rect if the window is not yet marked as
      	placed too
      
      	* src/window.c (struct MetaWindow, meta_window_new_with_attrs,
      	  meta_window_move_resize_internal):
      	Remove window->user_has_move_resized; it's not needed or used
      	anymore.
      
      	* src/window.[ch] (meta_window_get_user_position):
      	Remove this function as it is no longer needed or used.
      
      svn path=/trunk/; revision=3203
      e6691951
  6. 09 Apr, 2007 2 commits
    • Elijah Newren's avatar
      Add support for _NET_MOVERESIZE_WINDOW. #344521. · b8f89db4
      Elijah Newren authored
      2007-04-09  Elijah Newren  <newren gmail com>
      
      	Add support for _NET_MOVERESIZE_WINDOW.  #344521.
      
      	* src/display.c (handle_net_moveresize_window, event_callback):
      	Remove handle_net_moveresize_window() and the call to it; this
      	code was highly buggy, though to be fair it was never tested and
      	had simply been put into the code in commented out form.
      
      	* src/screen.c (set_supported_hint):
      	add atom_net_moveresize_window
      
      	* src/window.[ch]:
      	(meta_window_configure_request, meta_window_move_resize_request):
      	Split out the moving/resize part of the configure request and put
      	it into meta_window_move_resize_request
      
      	(meta_window_client_message):
      	check for NET_MOVERESIZE_WINDOW messages and call
      	meta_window_move_resize_request() with the appropriate parameters
      	to handle them
      
      	(meta_window_move_resize_internal):
      	fix some of the big comment at this function -- it wasn't quite
      	right, use the passed in gravity instead of
      	window->size_hints.win_gravity when calling adjust_for_gravity()
      	to make sure the correct adjustments are used.
      
      	(meta_window_get_gravity_position,
      	 meta_window_get_geometry, meta_window_move_resize_request):
      	add a gravity parameter to meta_window_get_gravity_position and
      	have it use that gravity instead of window->size_hints.win_gravity
      
      svn path=/trunk/; revision=3186
      b8f89db4
    • Elijah Newren's avatar
      Fix move/resize events in relation to combinations of ConfigureRequest and · addf3690
      Elijah Newren authored
      2007-04-08  Elijah Newren  <newren gmail com>
      
      	Fix move/resize events in relation to combinations of
      	ConfigureRequest and WM_NORMAL_HINTS change notifications (plus a
      	few code cleanups).  Fixes #426519.
      
      	* src/window.c (meta_window_move_resize_now):
      	move to the user_rect position, not some weird combination of rect
      	and user_rect
      
      	* src/window.c (meta_window_configure_request):
              set user_rect in response to ConfigureRequest events (after the
      	ConfigureRequest values have been constrained) and add a big
      	comment explaining this change, remove unused only_resize variable
      	and irrelevant huge FIXME comment about it
      
      	* src/window.[ch] (meta_window_get_client_root_coords):
      	new function
      
      	* src/display.c (meta_display_begin_grab_op):
      	* src/keybindings.c (process_keyboard_move_grab):
      	* src/window.c (meta_window_unmaximize,
      	  meta_window_move_resize_internal, meta_window_begin_wireframe,
      	  update_move, meta_window_refresh_resize_popup,
      	  warp_grab_pointer)
      	combine multi-step client rect root coord setting into a single
      	function call to meta_window_get_client_root_coords()
      
      svn path=/trunk/; revision=3181
      addf3690
  7. 03 Apr, 2007 1 commit
    • Elijah Newren's avatar
      Patch from Carlo Wood to fix handling of unidirectional maximization and · 08f51fdf
      Elijah Newren authored
      2007-04-02  Elijah Newren  <newren gmail com>
      
      	Patch from Carlo Wood to fix handling of unidirectional
      	maximization and partial struts.  #358311.
      
      	* src/constraints.c (constrain_maximization):
      	determine target size for unidirectionally maximized windows by
      	determining how far they can be maximized without hitting
      	orthogonal struts.  Avoids weird "empty spaces".
      
      	* src/boxes.[ch] (meta_rectangle_expand_to_avoiding_struts):
      	new function
      
      2007-04-02  Elijah Newren  <newren gmail com>
      
      	Make the strut lists (stored in workspaces) record both the
      	rectangle and the side that the strut is on.  Lots of code
      	cleanups relating to struts.
      
      	* src/boxes.h (struct MetaStrut):
      	new struct for struts
      
      	* src/window.[ch] (struct MetaStruts, struct MetaWindow,
      	  meta_window_update_struts):
      	overhaul to make window's struts remember their side as well as
      	their rectangular location, and just use a list instead of several
      	copies of near-identical code for left/right/top/bottom (allowing
      	us to nuke MetaStruts struct as well)
      	
      	* src/testboxes.c (new_meta_strut, get_strut_list):
      	* src/workspace.c (ensure_work_areas_validated):
      	* src/boxes.c (meta_rectangle_get_minimal_spanning_set_for_region,
      	  meta_rectangle_expand_to_avoiding_struts,
      	  get_disjoint_strut_rect_list_in_region, fix_up_edges,
      	  meta_rectangle_find_onscreen_edges,
      	  meta_rectangle_find_nonintersected_xinerama_edges):
      	modify to handle struts being rectangle + side instead of just rectangle
      
      	* src/workspace.c (ensure_work_areas_validated):
      	simplify strut list creation considerably given MetaWindow change,
      	modify work_area computations to take advantage of region
      	computations being done (makes the code shorter as well as more
      	robust against pathological cases).
      
      	* src/util.[ch] (meta_free_gslist_and_elements):
      	new convenience function
      
      	* src/common.h (enum MetaDirection):
      	* src/edge-resistance.c (movement_towards_edge):
      	* src/boxes.c (meta_rectangle_edge_aligns,
      	  rectangle_and_edge_intersection, split_edge):
      	Add more MetaDirection fields for convenience
      
      	* src/boxes.h (enum FixedDirections):
      	* src/constraints.c (setup_constraint_info, place_window_if_needed):
      	add a FIXED_DIRECTION_NONE to the FixedDirections enum to make
      	code more clear
      
      svn path=/trunk/; revision=3144
      08f51fdf
  8. 31 Mar, 2007 1 commit
    • Elijah Newren's avatar
      Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on context · 6e007baa
      Elijah Newren authored
      2007-03-30  Elijah Newren  <newren gmail com>
      
      	Add support for _NET_WM_USER_TIME_WINDOW in order to cut down on
      	context switches.
      
      	* src/display.c (meta_display_open):
      	* src/display.h (struct _MetaDisplay):
      	* src/screen.c (set_supported_hint):
      	new atom
      
      	* src/display.c (meta_display_open,
      	  meta_display_get_current_time_roundtrip):
      	* src/display.h (struct _MetaDisplay):
      	create a dedicated timestamp pinging window instead of reusing
      	display->leader_window
      
      	* src/display.c (event_callback):
      	* src/window-props.c (reload_net_wm_user_time_window):
      	* src/window.c (meta_window_new_with_attrs, meta_window_free,
      	  process_property_notify):
      	* src/window.h (struct _MetaWindow):
      	monitor property notify events on _NET_WM_USER_TIME_WINDOW windows too
      	
      	* src/window-props.[ch]:
      	new meta_window_reload_propert(y|ies)_from_xwindow() functions
      
      	* src/window-props.[ch]
      	  (init_net_wm_user_time_window, reload_net_wm_user_time_window,
      	  meta_display_init_window_prop_hooks):
      	* src/window.c (meta_window_new_with_attrs):
      	new hooks to handle new atom
      
      svn path=/trunk/; revision=3134
      6e007baa
  9. 13 Oct, 2006 1 commit
    • Carlo Wood's avatar
      Fix cases when titlebar is allowed offscreen and shouldn't be (and · d79a571d
      Carlo Wood authored
      2006-10-13  Carlo Wood <carlo@alinoe.com>
      
      	Fix cases when titlebar is allowed offscreen and shouldn't be (and
      	vice-versa).  #333995.
      
      	* src/display.[ch] (struct _MetaDisplay): add grab_frame_action
      	member
      
      	* src/display.[ch] (meta_display_begin_grab_op):
      	* src/window.[ch] (meta_window_begin_grab_op):
      	* src/core.[ch] (meta_core_begin_grab_op):
      	Add frame_action parameter (core & window versions pass it on to
      	display)
      
      	* src/display.c (event_callback):
      	* src/window.c (meta_window_begin_grab_op,
      	  meta_window_client_message, menu_callback):
      	* frames.c (meta_frames_button_press_event):
      	* keybindings.c (do_choose_window, handle_begin_move,
      	  handle_begin_resize, handle_workspace_switch):
      	Pass whether the action should be considered a 'frame_action',
      	which will be used to determine whether to force the titlebar to
      	remain onscreen, to meta_*_begin_grab_op
      
      	* constraints.c (constrain_titlebar_visible):
      	Replace previous ugly hack by using grab_frame_action (and whether
      	the action is a user action) to determine whether to enforce the
      	titlebar_visible constraint.
      d79a571d
  10. 07 Oct, 2006 1 commit
    • Thomas James Alexander Thurman's avatar
      Added "above" to the list of flags a frame can have, so that we know when · 90359a53
      Thomas James Alexander Thurman authored
      
              * common.h: Added "above" to the list of flags a frame can have, so
      	that we know when to mark it as always on top.  Added six grab ops,
      	one to do and one to undo each of the three new titlebar buttons
      	(shade, above, stick).  Added six new button functions, similarly.
      	(#96229)
      
              * frame.c (meta_frame_get_flags): If a frame has the WM_STATE_ABOVE X
               attribute, set META_FRAME_ABOVE in its flags.
      
              * frames.c (meta_frames_apply_shapes): Allow variable amounts of
               rounding. (#113162)
      
              * frames.c (show_tip_now, meta_frames_paint_to_drawable, control_rect,
      	 get_control): extend handling of existing buttons to the
               3*2 new kinds of button. (#96229)
      
              * frames.c (meta_frames_button_press_event): translate clicks on the 3*2
               new kinds of button to the new grab ops. (#96229)
      
              * frames.c (meta_frames_button_release_event): implement the various
              actions for the 3*2 new kinds of button. (#96229)
      
              * frames.c (meta_frames_update_prelit_control,
               meta_frames_motion_notify_event): extend existing motion
               notifications for buttons to the 3*2 new kinds of button. (#96229)
      
              * frames.c (meta_frames_set_window_background): handle specified
               background colours and alpha transparency. (#151261)
      
              * frames.h (MetaFrameControl): New control types for the 3*2 new kinds
      	 of button.  (#96229)
      
              * iconcache.[ch] (meta_read_icons): use theme's fallback icons if a
      	 window has no icon; use metacity's fallback icons only if the theme
               does not provide any. (#11363)
      
              * iconcache.[ch] (meta_invalidate_default_icons (new function)): clear
               icon cache on windows using default icons, and update them. (#11363)
      
              * main.c (main): added \n to error message.
      
              * prefs.c (button_function_from_string): extend for 3 new button
      	 types. (#96229)
      
              * prefs.c (button_opposite_function (new function)): return a button
               function's inverse (shade -> unshade, etc) (#96229)
      
              * prefs.c (update_button_layout): allocate space for a button's
      	 inverse, if it has one. (#96229)
      
              * theme-parser.c (ParseState): add state for fallback icons (#11363)
      
              * theme-parser.c (ParseInfo): add format_version; remove
               menu_icon_* (#114305)
      
              * theme-parser.c (parse_positive_integer): add lookup for integer
      	 constants (#331356)
      
              * theme-parser.c (parse_rounding (new function)): parse window
      	 rounding amount (#113162)
      
              * theme-parser.c (parse_alpha): don't set error if the number can't
      	 be parsed since it'll already be set; change tolerance in comparison
      	 from 1e6 to 1e-6
      
              * theme-parser.c (parse_color (new function)): parse colour, including
      	 possible constant lookup.
      
              * theme-parser.c (parse_toplevel_element): allow defining of various
      	new kinds of constant; allow
      	hide_buttons (#121639) and more detailed rounding attributes on
      	<frame_geometry> (#113162); allow background and alpha attributes on
      	<frame_style>; (#151261) remove support for <menu_icon> except as
      	stub; (#114305) add support for loading stock images (#113465); add
              support for <fallback>. (#11363))
      
              * theme-parser.c (parse_draw_op_element): add from and to attribute
               for arcs. (#121603)
      
              * theme-parser.c (parse_style_element): add check for theme version
               supporting a button function. (#96229)
      
              * theme-parser.c (parse_style_set_element): add ability for shaded
      	 windows to be resizable (#114304)
      
              * theme-parser.c (meta_theme_load): add theme versioning routine.
      
              * theme.c ( meta_frame_layout_get_borders): return rectangles for
      	 the new 3*2 kinds of button, except where they're
               inapplicable. (#96229)
      
              * theme.c (meta_frame_layout_calc_geometry): don't format buttons on
      	windows with no buttons (#121639); strip the 3*2 new kinds of button
      	correctly (#96229); allow variable amounts of rounding (#113162).
      
              * theme.c (meta_frame_style_new): set alpha to 255 by
              default. (#151261)
      
              * theme.c (meta_frame_style_unref): free colour spec if
              allocated. (#151261)
      
              * theme.c (meta_frame_style_validate): it's only an error not to
              include a button if that button is valid in the current
              theme. (#96229)
      
              * theme.c (button_rect): return rectangles for the new 3*2 kinds
      	of button. (#96229)
      
              * theme.c (meta_frame_style_set_unref): free differently resizable
      	shaded styles. (#114304)
      
              * theme.c (get_style): look up differently resizable styles
              for shaded windows. (#114304)
      
              * theme.c (free_menu_ops (removed function), get_menu_icon
      	 (removed function), meta_theme_draw_menu_icon (removed function),
               meta_menu_icon_type_from_string (removed function),
               meta_menu_icon_type_to_string (removed function),
               meta_theme_free, meta_theme_validate): removed menu icon code. (#114305)
      
              * theme.c (meta_theme_load_image): add size_of_theme_icons
      	parameter. (#113465)
      
              * theme.c (meta_theme_define_color_constant (new function),
              meta_theme_lookup_color_constant (new function)): allow
              definition of colour constants. (#129747)
      
              * theme.c (meta_button_type_from_string, meta_button_type_to_string):
              add the 3*2 new kinds of button. (#96229)
      
              * theme.c (meta_theme_earliest_version_with_button (new function)):
              return the theme version each button was introduced in. (#96229)
      
              * theme.h ( MetaFrameLayout): add "hide_buttons" flag (#121639) and
      	corner radiuses. (#113162)
      
              * theme.h (MetaFrameGeometry): add rectangles for the 3*2 new
      	buttons. (#96229)
      
              * theme.h (MetaButtonType): the 3*2 new buttons. (#96229)
      
              * theme.h (MetaFrameStyle): add window_background_color and
              window_background_alpha so that we can specify background on a
              <frame_style>. (#151261)
      
              * theme.h (MetaFrameStyleSet): shaded_styles gets resize
      	dimension. (#114304)
      
              * theme.h (MetaTheme): added format_version, color_constants
              hash, (#129747) fallback_icon and fallback_mini_icon, (#11363)
              and removed menu_icons. (#114305)
      
              * theme.h (META_THEME_ALLOWS (new macro)): return whether a theme
              supports a given feature. Also, several macros representing
              new features in v2.
      
              * ui.c (meta_ui_set_current_theme)): also invalidate default
              icons. (#11363)
      
              * window.[ch] (meta_window_update_icon_now)): became
      	non-static. (#11363)
      90359a53
  11. 01 Oct, 2006 2 commits
    • Elijah Newren's avatar
      Stick an emacs comment directive at the beginning of all the code files so · 0201fcfc
      Elijah Newren authored
      2006-10-01  Elijah Newren  <newren gmail com>
      
      	* src/*.[ch]: Stick an emacs comment directive at the beginning of
      	all the code files so that people using emacs will be more likely
      	to get coding style correct in their patches.  We still need a
      	similar vi directive.  #358866
      0201fcfc
    • Elijah Newren's avatar
      Patch from Carlo Wood to ensure that maximized and minimized properties · 07e4cacf
      Elijah Newren authored
      2006-10-01  Elijah Newren  <newren gmail com>
      
      	Patch from Carlo Wood to ensure that maximized and minimized
      	properties are maintained across restarts.  #358042.
      
      	* src/constraints.c (place_window_if_needed): fix up partial
      	maximization handling and add minimize_after_placement handling.
      
      	* src/display.[ch] (struct MetaDisplay, meta_display_open): add a
      	new display->display_opening flag to allow handling startup
      	differently where needed.
      
      	* src/window-props.c (reload_net_wm_state): handle
      	_net_wm_state_hidden as well, setting
      	window->minimize_after_placement appropriately
      
      	* src/window.[ch] (struct MetaWindow, meta_window_new_with_attrs):
      	add a window->minimize_after_placement field
      
      	* src/window.c (meta_window_new_with_attrs): only unminimize the
      	window and its transients if the display isn't being opened,
      	(unmaximize_window_before_freeing): don't reset the state unless
      	the window is becoming withdrawn, if the screen is being closed be
      	sure to save the unmaximized state of the window so the next
      	window manager can restore it
      07e4cacf
  12. 18 Sep, 2006 1 commit
    • Elijah Newren's avatar
      Partial audit to fix timestamp usage. One step towards fixing #355180; see · 5c587726
      Elijah Newren authored
      2006-09-18  Elijah Newren  <newren gmail com>
      
      	Partial audit to fix timestamp usage.  One step towards fixing
      	#355180; see important comments in that bug.
      
      	* src/core.[ch] (meta_core_unshade, meta_core_shade):
      	* src/delete.c (meta_window_present_delete_dialog,
      	  delete_ping_timeout_func):
      	* src/display.[ch] (meta_display_open, meta_display_close,
      	  event_callback, meta_display_begin_grab_op,
      	  process_selection_clear, meta_display_unmanage_screen,
      	  meta_display_unmanage_windows_for_screen):
      	* src/frames.c (meta_frames_button_press_event):
      	* src/keybindings.c (handle_toggle_shade):
      	* src/main.c (main):
      	* src/screen.[ch] (update_num_workspaces, meta_screen_new,
      	  meta_screen_free, prefs_changed_callback):
      	* src/window.[ch] (meta_window_free, finish_minimize,
      	  implement_showing, meta_window_show, meta_window_maximize,
      	  meta_window_make_fullscreen_internal,
      	  meta_window_unmake_fullscreen, meta_window_shade,
      	  meta_window_unshade, window_activate, send_sync_request,
      	  meta_window_client_message, menu_callback,
      	  meta_window_update_keyboard_resize):
      	Remove usage of CurrentTime, meta_display_get_current_time() and
      	meta_display_get_current_time_roundtrip() where possible, or
      	document why it isn't possible, or at very least add a FIXME with
      	some explanation of my laziness and what needs to be done.
      5c587726
  13. 13 Sep, 2006 1 commit
    • Elijah Newren's avatar
      Fix issues on 64-bit machines with timestamps by using guint32 (like gtk+ · 3b047877
      Elijah Newren authored
      2006-09-13  Elijah Newren  <newren gmail com>
      
      	* src/common.h (MetaWindowMenuFunc):
      	* src/core.[ch] (meta_core_user_lower_and_unfocus,
      	  meta_core_user_focus, meta_core_show_window_menu,
      	  meta_core_begin_grab_op, meta_core_end_grab_op):
      	* src/delete.c (delete_ping_reply_func, delete_ping_timeout_func,
      	  meta_window_delete):
      	* src/display.[ch] (struct MetaDisplay, struct MetaPingData,
      	  sanity_check_timestamps, meta_display_open, event_callback,
      	  meta_spew_event, meta_display_set_grab_op_cursor,
      	  meta_display_begin_grab_op, meta_display_end_grab_op,
      	  meta_display_ping_timeout, meta_display_ping_window,
      	  process_pong_message, timestamp_too_old,
      	  meta_display_set_input_focus_window):
      	* src/keybindings.[ch] (grab_keyboard, ungrab_keyboard,
      	  meta_screen_grab_all_keys, meta_window_grab_all_keys,
      	  meta_window_ungrab_all_keys, error_on_generic_command,
      	  error_on_command, error_on_terminal_command):
      	* src/metacity-dialog.c (on_realize, warn_about_no_sm_support,
      	  error_about_command, main):
      	* src/screen.[ch] (struct _MetaScreen, meta_screen_new,
      	  meta_screen_show_desktop, meta_screen_apply_startup_properties):
      	* src/session.c (warn_about_lame_clients_and_finish_interact):
      	* src/window.[ch] (struct _MetaWindow,
      	  intervening_user_event_occurred, window_activate,
      	  meta_window_delete, meta_window_focus,
      	  meta_window_send_icccm_message, meta_window_client_message,
      	  menu_callback, meta_window_show_menu, struct EventScannerData,
      	  check_use_this_motion_notify, meta_window_begin_grab_op,
      	  meta_window_set_user_time):
      	* src/workspace.[ch] (focus_ancestor_or_mru_window,
      	  meta_workspace_activate_with_focus, meta_workspace_activate,
      	  meta_workspace_focus_default_window,
      	  focus_ancestor_or_mru_window):
      	Fix issues on 64-bit machines with timestamps by using guint32
      	(like gtk+ does) instead of Time.  #348305
      3b047877
  14. 21 Aug, 2006 1 commit
    • Elijah Newren's avatar
      Fix several bugs with handling of fullscreen windows, causing them to not · 4c96afba
      Elijah Newren authored
      2006-08-21  Elijah Newren  <newren gmail com>
      
      	Fix several bugs with handling of fullscreen windows, causing them
      	to not actually be fullscreen.  #343115 (and also #346927,
      	#350547, #351643, the recent additional WINE-related issue
      	mentioned on the mailing list, and probably others...)
      
      	* src/constraints.c (setup_constraint_info): if a window tries to
      	resize to fullscreen-size and it has a fullscreen function but
      	isn't actually marked as fullscreen then assist it by marking it
      	as such, (constrain_fully_onscreen, constrain_titlebar_visible):
      	ignore this constraint for fullscreen windows since such windows
      	have a separate specialized constraint
      
      	* src/stack.c (window_is_fullscreen_size, get_standalone_layer):
      	remove the old window_is_fullscreen_size() hack for detecting
      	windows to treat as fullscreen since it doesn't work well with the
      	new constraints framework (i.e. we needed a slightly different
      	hack)
      
      	* src/window.[ch] (meta_window_new_with_addrs): shuffle the order
      	of adding the window to the stack and moveresizing the window
      	since moveresizing can cause stack changes if the window's initial
      	size is fullscreen size, (meta_window_make_fullscreen,
      	meta_window_make_fullscreen_internal): split
      	meta_window_make_fullscreen() similar to meta_window_maximize() so
      	that constraints can make use of it
      4c96afba
  15. 07 Aug, 2006 2 commits
    • Elijah Newren's avatar
      Add a constrain_titlebar_visible constraint; should fix both bug 333328 · 57bedc42
      Elijah Newren authored
      2006-08-07  Elijah Newren  <newren gmail com>
      
      	Add a constrain_titlebar_visible constraint; should fix both bug
      	333328 and bug 345522.  Not perfect (minor annoying snap pulling
      	windows back onscreen, plus an ugly hack almost as bad as the old
      	one), but tarballs are due in less than half an hour.  ;-)
      
      	* src/boxes.[ch] (meta_rectangle_overlaps_with_region):
      	new function
      
      	* src/constraints.c (constrain_titlebar_visible): new function,
      	  (enum ConstraintPriority, array all_constraints,
      	  update_onscreen_requirements): various small changes to
      	  accomodate the new function
      
      	* src/edge-resistance.c: remove the infinite edge resistance,
      	which was a big hack of a way to workaround the lack of a
      	titlebar_visible constraint
      
      	* src/window.[ch] (MetaWindow): new require_titlebar_visible
      	bitfield, (meta_window_new_with_attrs): initialized here
      57bedc42
    • Elijah Newren's avatar
      Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes, as · adc46fc9
      Elijah Newren authored
      2006-08-07  Elijah Newren  <newren gmail com>
      
      	Patch from Vytautas Liuolia to react to _NET_STARTUP_ID changes,
      	as proposed for the new startup-notification/EWMH spec.  #347515
      
      	* src/window-props.c (reload_net_startup_id): be sure to act on
      	the new id instead of just recording it
      
      	* src/window.[ch] (window_activate, meta_window_activate,
      	  meta_window_activate_with_workspace, meta_window_client_message):
      	change window_activate() to take a workspace parameter instead of
      	hardcoding to the current workspace, add
      	meta_window_activate_with_workspace() function needed by
      	reload_net_startup_id().
      adc46fc9
  16. 26 May, 2006 1 commit
    • Søren Sandmann's avatar
      Run an unminimize effect · 4a061637
      Søren Sandmann authored
      
      Fri May 26 16:48:29 2006  Søren Sandmann  <sandmann@redhat.com>
      
              * src/effects.c (meta_effect_run_unminimize): Run an unminimize effect
      
              * src/window.c (meta_window_unminimize): Store a "was_minimized"
              boolean in the window.
      
              * src/window.c (meta_window_show): If the window was minimized,
              run an unminimize animation.
      
              * src/c-window.c (meta_comp_window_run_unminimize): Add an
              unminimize animation, running the minimize one in reverse.
      4a061637
  17. 05 May, 2006 1 commit
    • Elijah Newren's avatar
      Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no longer being · b62dd8d1
      Elijah Newren authored
      2006-04-25  Elijah Newren  <newren gmail com>
      
      	Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no
      	longer being used.  Fixes #330671.
      
      	* src/window.[ch] (struct MetaWindow): new
      	using_net_wm_visible_name and using_net_wm_visible_icon_name bits,
      	(meta_window_new_with_attrs): initialize these new bits to false
      
      	* src/window-props.c (set_title_text, set_window_title, set_icon_title):
      	if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
      	doesn't need to be this time, make sure to clear it
      b62dd8d1
  18. 15 Apr, 2006 1 commit
    • Thomas Thurman's avatar
      Add a tabbing function, bound to alt-f6 by default, to cycle through the · 2214fd75
      Thomas Thurman authored
      2006-04-14  Thomas Thurman   <thomas@thurman.org.uk>
      
              Add a tabbing function, bound to alt-f6 by default, to cycle
              through the windows of the current application. Fixes #164831.
      
              * src/common.h: two new MetaGrabOpts values for group switching
              * src/display.c (ping_data_free, meta_display_in_grab_op,
              IN_TAB_CHAIN): adapt to new MetaGrabOpts
              * src/display.h: new enum value for MetaTabList for group switching
              * src/keybindings.c (meta_display_process_key_event):
              adapt to new MetaGrabOpts
              (process_tab_grab): adapt to new MetaGrabOpts, and use switch
              statement for cancelling instead of if statement
              * src/metacity.schemas.in: new keybindings
              * src/prefs.c, src/prefs.h: handle new keybindings
              * src/window.h: define META_WINDOW_IN_GROUP_TAB_CHAIN macro
      2214fd75
  19. 30 Mar, 2006 1 commit
    • Elijah Newren's avatar
      Fix grouping in the presence of ancestors; caught by Björn. #336184 · 127a8988
      Elijah Newren authored
      2006-03-29  Elijah Newren  <newren gmail com>
      
      	Fix grouping in the presence of ancestors; caught by Björn.
      	#336184
      
      	* src/group.c (meta_window_compute_group): Use new
      	meta_window_find_root_ancestor() function to get ancestor; for the
      	computed group, use the ancestor's group instead of the ancestor
      	itself
      
      	* src/window.[ch] (meta_window_find_root_ancestor,
      	meta_window_raise): split meta_window_find_root_ancestor()
      	functionality of meta_window_raise() and make it available
      	elsewhere
      127a8988
  20. 29 Mar, 2006 1 commit
    • Thomas Thurman's avatar
      mark a window as needing or not needing the user's attention use the new · cf3deef6
      Thomas Thurman authored
      2006-03-29  Thomas Thurman   <thomas@thurman.org.uk>
              * src/window.c, src/window.h (meta_window_set_demands_attention,
              meta_window_unset_demands_attention): mark a window as needing
              or not needing the user's attention
              * src/window.c (meta_window_show, window_activate,
              meta_window_focus, meta_window_configure_request,
              meta_window_client_message): use the new set/unset
              demands attention functions. Fixes #305822.
      cf3deef6
  21. 25 Mar, 2006 1 commit
    • Thomas Thurman's avatar
      deleted and moved into window-props.c (meta_window_new_with_attrs): added · 25923105
      Thomas Thurman authored
      2006-03-25  Thomas Thurman  <thomas@thurman.org.uk>
      
      	* src/window.c, src/window.h (update_net_wm_state,
      	update_mwm_hints, update_wm_class, update_transient_for):
      	deleted and moved into window-props.c
      	(meta_window_new_with_attrs): added constructing field
      	and four new initial properties (as above)
      	(meta_window_recalc_features,
      	meta_window_recalc_window_type): new functions
      
      	* src/window-props.c (init_net_wm_state, reload_net_wm_state
      	init_mwm_hints, reload_mwm_hints, init_wm_class,
      	reload_mwm_class, init_transient_for, reload_transient_for):
      	new functions, moved in from window.c
      
      	(meta_display_init_window_prop_hooks): initialise new properties
      25923105
  22. 10 Jan, 2006 4 commits
    • Elijah Newren's avatar
      Whoops, I forgot to keep my copyright info updated with my previous · 5913b8c5
      Elijah Newren authored
      2006-01-10  Elijah Newren  <newren@gmail.com>
      
      	* src/bell.c:
      	* src/boxes.c:
      	* src/boxes.h:
      	* src/constraints.c:
      	* src/core.c:
      	* src/display.c:
      	* src/display.h:
      	* src/edge-resistance.c:
      	* src/frames.c:
      	* src/keybindings.c:
      	* src/main.c:
      	* src/prefs.c:
      	* src/prefs.h:
      	* src/screen.c:
      	* src/screen.h:
      	* src/window.c:
      	* src/window.h:
      	Whoops, I forgot to keep my copyright info updated with my previous
      	commits as Havoc had asked me to do.  Doing that now...
      5913b8c5
    • Elijah Newren's avatar
      Don't "steal" focus from terminal windows for new window mappings as the · f6270596
      Elijah Newren authored
      2006-01-10  Elijah Newren  <newren@gmail.com>
      
      	Don't "steal" focus from terminal windows for new window mappings
      	as the difference in usage between terminals and other apps seems
      	to suggest this difference in treatment.  See #326159 for details,
      	feedback welcome.
      
      	* src/window.[ch] (__window_is_terminal): New function, currently
      	an ugly hack and should be replaced by a new property set by
      	applications if the behavior works to our liking,
      	(window_state_on_map): don't transfer focus to new windows from
      	terminals unless the new window is a transient of the focused
      	terminal
      
      	* src/keybindigns.c (handle_panel_keybinding): panel run dialog
      	keybinding should be counted as an explicit transfer of focus to
      	the new window, so override the
      	don't-transfer-focus-from-terminals in this case
      f6270596
    • Elijah Newren's avatar
      More thorough handling of source indication. Part of #326041. · a4d1c6fd
      Elijah Newren authored
      2006-01-09  Elijah Newren  <newren@gmail.com>
      
      	More thorough handling of source indication.  Part of #326041.
      
      	* src/window.c (window_activate): new function based off the old
      	meta_window_activate but which also takes source indication into
      	account, (meta_window_active): just call window_activate() with
      	the necessary source indication to get the behavior wanted,
      	(meta_window_client_message): check source indication too for
      	_net_active_window messages
      
      	* src/window.h (enum MetaClientType): convenience enum for source
      	indication handling
      a4d1c6fd
    • Elijah Newren's avatar
      Make the taskbar less flash happy and fix up some related stacking issues. · 0f8add8b
      Elijah Newren authored
      2006-01-09  Elijah Newren  <newren@gmail.com>
      
      	Make the taskbar less flash happy and fix up some related stacking
      	issues.  #326035.
      
      	* src/window.c (windows_overlap): new function,
      	(meta_window_show): if a window is denied focus but doesn't
      	overlap with the focus window there is no need to set the demands
      	attention hint nor stack that window below the focus window,
      	(meta_window_get_outer_rect): we're not modifying the window so
      	declare it to be const
      0f8add8b
  23. 19 Nov, 2005 1 commit
    • Elijah Newren's avatar
      Merge of all the changes on the constraints_experiments branch. This is · a7201d27
      Elijah Newren authored
      2005-11-18  Elijah Newren  <newren@gmail.com>
      
      	Merge of all the changes on the constraints_experiments branch.
      	This is just a summary, to get the full ChangeLog of those
      	changes (approx. 2000 lines):
      	  cvs -q -z3 update -Pd -r constraints_experiments
      	  cvs -q -z3 diff -pu -r CONSTRAINTS_EXPERIMENTS_BRANCHPOINT ChangeLog
      
      	Bugs fixed:
      	  unfiled - constraints.c is overly complicated[1]
      	  unfiled - constraints.c is not robust when all constraints
      	            cannot simultaneously be met (constraints need to be
      	            prioritized)
      	  unfiled - keep-titlebar-onscreen constraint is decoration
      	            unaware (since get_outermost_onscreen_positions()
      	            forgets to include decorations)
      	  unfiled - keyboard snap-moving and snap-resizing snap to hidden
      	            edges
      	   109553 - gravity w/ simultaneous move & resize doesn't work
      	   113601 - maximize vertical and horizontal should toggle and be
      	            constrained
      	   122196 - windows show up under vertical panels
      	   122670 - jerky/random resizing of window via keyboard[2]
      	   124582 - keyboard and mouse snap-resizing and snap-moving
      	            erroneously moves the window multidimensionally
      	   136307 - don't allow apps to resize themselves off the screen
      	            (*cough* filechooser *cough*)
      	   142016, 143784 - windows should not span multiple xineramas
      	            unless placed there by the user
      	   143145 - clamp new windows to screensize and force them
      	            onscreen, if they'll fit
      	   144126 - Handle pathological strut lists sanely[3]
      	   149867 - fixed aspect ratio windows are difficult to resize[4]
      	   152898 - make screen edges consistent; allow easy slamming of
      	            windows into the left, right, and bottom edges of the
      	            screen too.
      	   154706 - bouncing weirdness at screen edge with keyboard moving
      	            or resizing
      	   156699 - avoid struts when placing windows, if possible (nasty
      	            a11y blocker)
      	   302456 - dragging offscreen too restrictive
      	   304857 - wireframe moving off the top of the screen is misleading
      	   308521 - make uni-directional resizing easier with
      	            alt-middle-drag and prevent the occasional super
      	            annoying resize-the-wrong-side(s) behavior
      	   312007 - snap-resize moves windows with a minimum size
      	            constraint
      	   312104 - resizing the top of a window can cause the bottom to
      	            grow
      	   319351 - don't instantly snap on mouse-move-snapping, remove
      	            braindeadedness of having order of releasing shift and
      	            releasing button press matter so much
      
      	   [1] fixed in my opinion, anyway.
      	   [2] Actually, it's not totally fixed--it's just annoying
      	       instead of almost completely unusable.  Matthias had a
      	       suggestion that may fix the remainder of the problems (see
      	       http://tinyurl.com/bwzuu).
      	   [3] This bug was originally about not-quite-so-pathological
      	       cases but was left open for the worse cases. The code from
      	       the branch handles the remainder of the cases mentioned in
      	       this bug.
      	   [4] Actually, although it's far better there's still some minor
      	       issues left: a slight drift that's only noticeable after
      	       lots of resizing, and potential problems with partially
      	       onscreen constraints due to not clearing any
      	       fixed_directions flags (aspect ratio windows get resized in
      	       both directions and thus aren't fixed in one of them)
      
      	New feature:
      	    81704 - edge resistance for user move and resize operations;
      	            in particular 3 different kinds of resistance are
      	            implemented:
                   	 Pixel-Distance: window movement is resisted when it
      	     	   aligns with an edge unless the movement is greater than
      	     	   a threshold number of pixels
                   	 Timeout: window movement past an edge is prevented until
      	     	   a certain amount of time has elapsed during the
      	     	   operation since the first request to move it past that
      	     	   edge
                   	 Keyboard-Buildup: when moving or resizing with the
      	     	   keyboard, once a window is aligned with a certain edge
      	     	   it cannot move past until the correct direction has
      	     	   been pressed enough times (e.g. 2 or 3 times)
      
      	Major changes:
      	  - constraints.c has been rewritten; very few lines of code from
      	    the old version remain.  There is a comment near the top of
      	    the function explaining the basics of how the new framework
      	    works.  A more detailed explanation can be found in
      	    doc/how-constraints-works.txt
      	  - edge-resistance.[ch] are new files implementing edge-resistance.
      	  - boxes.[ch] are new files containing low-level error-prone
      	    functions used heavily in constraints.c and edge-resistance.c,
      	    among various places throughout the code.  testboxes.c
      	    contains a thorough testsuite for the boxes.[ch] functions
      	    compiled into a program, testboxes.
      	  - meta_window_move_resize_internal() *must* be told the gravity
      	    of the associated operation (if it's just a move operation,
      	    the gravity will be ignored, but for resize and move+resize
      	    the correct value is needed)
      	  - the craziness of different values that
      	    meta_window_move_resize_internal() accepts has been documented
      	    in a large comment at the beginning of the function.  It may
      	    be possible to clean this up some, but until then things will
      	    remain as they were before--caller beware.
      	  - screen and xinerama usable areas (i.e. places not covered by
      	    e.g. panels) are cached in the workspace now, as are the
      	    screen and xinerama edges.  These get updated with the
      	    workarea in src/workspace.c:ensure_work_areas_validated()
      a7201d27
  24. 08 Oct, 2005 1 commit
  25. 03 Oct, 2005 1 commit
    • Elijah Newren's avatar
      Patch from Ross Cohen to make alt-esc (show windows instantly) actually · 12daca5c
      Elijah Newren authored
      2005-10-03  Elijah Newren  <newren@gmail.com>
      
      	Patch from Ross Cohen to make alt-esc (show windows instantly)
      	actually show minimized windows too.  Fixes #107072.
      
      	* src/keybindings.c (process_tab_grab): initialize tab_unminimized
      	to FALSE for the target window when starting the grab, when
      	advancing through the list check to find the previous window and
      	re-minimize it if it was tab-unminimized, unminimize the new
      	window we're alt-esc'ing to if it's minimized, (do_choose_window):
      	raise and unminimize the initial window as well in alt-esc'ing
      
      	* src/window.h (struct _MetaWindow): add a tab_unminimized field
      
      	* src/window.c (meta_window_new_with_attrs): initialize
      	tab_unminimized to false
      12daca5c
  26. 26 May, 2005 1 commit
  27. 20 Feb, 2005 1 commit
    • Elijah Newren's avatar
      Big patch to cover about 6 different issues in order to correct rare · 50312dd0
      Elijah Newren authored
      2005-02-20  Elijah Newren  <newren@gmail.com>
      
      	Big patch to cover about 6 different issues in order to correct
      	rare problems with timestamps (make sure window selected in
      	tasklist actually gets focus, sanity check timestamps to avoid
      	rogue apps hosing the system, correct the updating of
      	net_wm_user_time, correctly handle timestamps of 0 when comparing
      	xserver timestamps for those who have had their systems up for
      	over 25 days or so, add some debugging information to verbose
      	logs, some code cleanups).  Fixes all issues listed in #167358.
      
      	* src/display.h: (struct _MetaDisplay): clarify comment on
      	last_focus_time, introduce a new variable--last_user_time,
      	(XSERVER_TIME_IS_BEFORE macro): put this functionality into a
      	separate macro and then introduce a new macro with this name that
      	uses the old one but adds additional special-case checks for
      	timestamps that are 0, (comment to
      	meta_display_set_input_focus_window): add information about how
      	last_user_time should be used in this function
      
      	* src/display.c (santiy_check_timestamps): new function,
      	(meta_display_open): intialize display->last_user_time,
      	(meta_display_get_current_time_roundtrip): use the timestamp,
      	which is known to be good, in order to sanity_check_timestamps,
      	(event_callback): use the new meta_window_ste_user_time() function
      	in order to correct problems, use the timestamp of KeyPress and
      	ButtonPress events, which are known to be good, in order to
      	sanity_check_timestamps, (timestamp_too_old): new function for
      	common behavior of meta_display_focus_the_no_focus_window and
      	meta_display_set_input_focus_window, with added checking for
      	display->last_user_time in addition to display->last_focus_time,
      	(meta_display_set_input_focus_window): replace some of the code
      	with a call to timestamp_too_old(),
      	(meta_display_focus_the_no_focus_window): replace some of th ecode
      	with a call to timestamp_too_old()
      
      	* src/window.h: (meta_window_set_user_time): new function to
      	abstract the many things that need to be done when updating the
      	net_wm_user_time of any window
      
      	* src/window.c: (meta_window_activate): add debugging spew, make
      	sure the comparison is made with last_user_time NOT
      	last_focus_time, use meta_window_set_user_time() function in order
      	to correct problems, (meta_window_client_message): add a newline
      	to a debugging message to make them easier to read,
      	(meta_window_set_user_time): new function
      
      	* src/window-props.c (reload_net_wm_user_time): use the new
      	meta_window_ste_user_time() function in order to correct problems
      50312dd0
  28. 11 Feb, 2005 1 commit
    • Elijah Newren's avatar
      Avoid new windows being obscured by the focus window (and thus possibly · d31a0829
      Elijah Newren authored
      2005-02-11  Elijah Newren  <newren@gmail.com>
      
      	Avoid new windows being obscured by the focus window (and thus
      	possibly lost).  Fixes #166524.
      
      	* src/place.c: new MetaWindowDirection enum,
      	(find_most_freespace): new function to find where there is the
      	most space available around the focused window,
      	(meta_window_place): if a window is denied focus and the window
      	overlaps the focused window, retry the first-fit algorithm only
      	paying attention to the focus window position and if that fails
      	just find the location on the screen with the most space
      	available.
      
      	* src/window.h: (struct MetaWindow): new
      	denied_focus_and_not_transient bitfield
      
      	* src/window.c: (meta_window_new_with_attrs): initialize
      	denied_focus_and_not_transient, (meta_window_show): set and unset
      	the denied_focus_and_not_transient field appropriately
      d31a0829
  29. 28 Jan, 2005 1 commit
    • Elijah Newren's avatar
      Take into account the appropriate list of windows when placing a new one. · 5389f135
      Elijah Newren authored
      2005-01-28  Elijah Newren  <newren@gmail.com>
      
      	Take into account the appropriate list of windows when placing a
      	new one.  Fixes #165381.
      
      	* src/place.c: (meta_window_place): use
      	meta_window_showing_on_its_workspace(w) instead of !w->minimzed,
      	also take into account sticky windows
      
      	* src/window.[ch]: rename window_showing_on_its_workspace to
      	meta_window_showing_on_its_workspace and export it
      5389f135
  30. 28 Dec, 2004 1 commit
    • Elijah Newren's avatar
      Focus windows that manually position themselves too (fixes #107347). · c74ab35c
      Elijah Newren authored
      2004-12-27  Elijah Newren  <newren@gmail.com>
      
      	Focus windows that manually position themselves too (fixes
      	#107347).
      
      	* src/window.h (struct _MetaWindow): add a new
      	showing_for_first_time flag
      
      	* src/window.c (meta_window_new_with_attrs): initialize
      	showing_for_first_time flag to !mapped, (meta_window_show):
      	replace did_placement with showing_for_first_time in the section
      	to decided whether to focus since did_placement isn't quite what
      	we want
      c74ab35c
  31. 24 Dec, 2004 1 commit
    • Elijah Newren's avatar
      Thanks to mild7@users.sourceforge.net for this fix. · d5a48447
      Elijah Newren authored
      2004-12-24  Elijah Newren  <newren@gmail.com>
      
      	Thanks to mild7@users.sourceforge.net for this fix.
      
      	* src/window.h: (META_WINDOW_IN_NORMAL_TAB_CHAIN): Excludes
      	windows with skip_taskbar hint set from the alt-tab list; they'll
      	appear in the ctrl-alt-tab list instead. (fixes #106249)
      d5a48447
  32. 23 Dec, 2004 1 commit
    • Elijah Newren's avatar
      Rename meta_window_visible_on_workspace to · e46fc467
      Elijah Newren authored
      2004-12-22  Elijah Newren  <newren@gmail.com>
      
      	* src/core.c (meta_core_user_lower_and_unfocus):
      	* src/display.c (meta_display_get_current_tab):
      	* src/stack.c (get_default_focus_window, meta_stack_list_windows):
      	* src/window.c (set_net_wm_state, meta_window_should_be_showing,
      	implement_showing, meta_window_activate,
      	meta_window_notify_focus):
      	* src/window.h:
      	* src/workspace.c (meta_workspace_list_windows):
      
      	Rename meta_window_visible_on_workspace to
      	meta_window_located_on_workspace (whether or not the window was
      	showing wasn't taken into account, which made "visible"
      	confusing).  Fixes #136314.
      e46fc467
  33. 22 Dec, 2004 1 commit
    • Elijah Newren's avatar
      Partially resolve the conflicting requirements of windows on multiple · f4f8699d
      Elijah Newren authored
      2004-12-22  Elijah Newren  <newren@gmail.com>
      
      	Partially resolve the conflicting requirements of windows on
      	multiple workspaces and hidden being a global quantity for windows
      	(fixes bug 156182; the remainder of the work is bug 87531 and is a
      	libwnck issue)
      
      	* src/display.c (event_callback):
      	* src/window.c (meta_window_visible_on_workspace, meta_window_unstick):
      	* src/workspace.c (meta_workspace_add_window,
      	meta_workspace_contains_window,
      	meta_workspace_queue_calc_showing):
      	* src/workspace.h:
      
      	Remove meta_workspace_contains_window, replace with simple
      	comparison utilizing window->workspace
      
      	* src/place.c (meta_window_place):
      	* src/window.c (meta_window_shares_some_workspace):
      	* src/window.h:
      
      	Remove meta_window_shares_some_workspace, replace with a simple
      	comparison utilizing window->workspace
      
      	* src/session.c (save_state),
      	* src/window.c (meta_window_new_with_attrs,
      	meta_window_apply_session_info, meta_window_free,
      	window_showing_on_its_workspace,
      	meta_window_change_workspace_without_transients,
      	meta_window_unstick, meta_window_set_current_workspace_hint,
      	meta_window_get_workspaces):
      	* src/window.h:
      	* src/workspace.c (meta_workspace_free, meta_workspace_add_window,
      	meta_workspace_remove_window):
      
      	Only one workspace now
      f4f8699d
  34. 20 Dec, 2004 1 commit
    • Elijah Newren's avatar
      When snap-moving, don't snap to transients of minimized windows since they · d178f5e3
      Elijah Newren authored
      2004-12-19  Elijah Newren  <newren@gmail.com>
      
      	When snap-moving, don't snap to transients of minimized windows
      	since they are hidden.  Fixes #157180
      
      	* src/place.c (get_windows_on_same_workspace): make the logic to
      	determine hidden windows more thorough by calling
      	meta_window_should_be_showing()
      
      	* src/window.c (meta_window_should_be_showing): rename this
      	function from window_should_be_showing and also export it,
      	(implement_showing):
      	s/window_should_be_showing/meta_window_should_be_showing/,
      	(idle_calc_showing):
      	s/window_should_be_showing/meta_window_should_be_showing/
      
      	* src/window.h (meta_window_should_be_showing): Add this function
      	to the list so that it can be used in src/place.c
      d178f5e3