1. 18 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      return a boolean instead a void, to show whether startup properties were · e6083f64
      Thomas Thurman authored
      2007-06-17  Thomas Thurman  <thomas@thurman.org.uk>
      
              * src/screen.[ch] (meta_screen_apply_startup_properties): return a
              boolean instead a void, to show whether startup properties were
              applied. Also some commenting.
              * src/window-props.c: (reload_net_startup_id): Only activate the
              window if the startup_id was actually changed. Closes #400167.
      
      
      svn path=/trunk/; revision=3245
      e6083f64
  2. 17 Jun, 2007 2 commits
  3. 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
  4. 09 Jun, 2007 1 commit
  5. 08 Jun, 2007 1 commit
  6. 07 Jun, 2007 1 commit
    • Thomas Thurman's avatar
      changed all tabs to spaces. Removed and replaced with meta_core_get(). New · ff33209e
      Thomas Thurman authored
      2007-06-06  Thomas Thurman  <thomas@thurman.org.uk>
      
              * frames.c, core.[ch]: changed all tabs to spaces.
              * core.[ch] (meta_core_get_client_size, meta_core_window_has_frame,
              meta_core_titlebar_is_onscreen, meta_core_get_client_xwindow,
              meta_core_get_frame_flags, meta_core_get_frame_type,
              meta_core_get_mini_icon, meta_core_get_icon, meta_core_get_position,
              meta_core_get_size, meta_core_get_frame_workspace,
              meta_core_get_frame_extents, meta_core_get_screen_size): Removed
              and replaced with meta_core_get().
              * core.[ch] (meta_core_get): New function.
              * core.h (MetaCoreGetType): New enum.
              * frames.c (meta_frames_ensure_layout, meta_frames_calc_geometry,
              meta_frames_get_geometry, meta_frames_apply_shapes,
              meta_frame_titlebar_event, meta_frames_button_press_event,
              populate_cache, clip_to_screen, meta_frames_paint_to_drawable,
              meta_frames_set_window_background, get_control): Replace use of
              removed functions in ui.c with meta_core_get().
      
              All this should make things a little faster. Closes #377495.
      
      
      svn path=/trunk/; revision=3233
      ff33209e
  7. 04 Jun, 2007 1 commit
  8. 03 Jun, 2007 1 commit
  9. 25 May, 2007 1 commit
    • Yair Hershkovitz's avatar
      Add support for RTL languages so that alt-tab, etc., go the other way. In · 5194df84
      Yair Hershkovitz authored
      2007-05-25  Yair Hershkovitz  <yairhr@yahoo.com>
      
              * src/workspace.c (meta_workspace_get_neighbor): Add support
              for RTL languages so that alt-tab, etc., go the other way.
              * src/keybindings.c (handle_activate_menu): In RTL locales,
              pop up the menu on the right-hand side when the menu keystroke
              is pressed.
              * src/fixedtip.c (meta_fixed_tip_show): right-justify tooltips
              in RTL locales.
              * src/menu.c (popup_position_func): popup menus in RTL locales
              are flush with the right-hand side of the window where possible.
              * src/frames.c (show_tip_now, meta_frames_button_press_event):
              tooltips are aligned with the right-hand side of buttons in
              RTL locales.
              * src/ui.[ch] (meta_ui_get_direction, enum MetaUIDirection):
              New content.
              * src/window.c (meta_window_show_menu): "move left" appears above
              "move right" in the window menu for LTR locales, and vice versa
              for RTL locales.
      
              This is all to close bug #387893.
      
      
      svn path=/trunk/; revision=3222
      5194df84
  10. 25 Apr, 2007 1 commit
    • Linus Torvalds's avatar
      Add code to configure what happens when the titlebar is right or middle · 1724fa36
      Linus Torvalds authored
      2007-04-24  Linus Torvalds  <torvalds@woody.linux-foundation.org>
      
              * src/prefs.[ch] (init_action_meta_prefs, meta_prefs_init,
              action_change_titlebar, change_notify, update_action_titlebar,
              meta_preference_to_string): Add code to configure what happens
              when the titlebar is right or middle clicked as well as
              double clicked.
      
                                                                                                                                                   
      
      svn path=/trunk/; revision=3214
      1724fa36
  11. 23 Apr, 2007 1 commit
    • Elijah Newren's avatar
      Fix some uninitialized memory usage errors. #427385 · 18c9101a
      Elijah Newren authored
      2007-04-23  Elijah Newren  <newren gmail com>
      
              Fix some uninitialized memory usage errors.  #427385
      
              * src/frame.c (meta_window_ensure_frame):
              * src/frames.c (meta_frames_manage_window):
              Do not try to set the window background in
              meta_frames_manage_window() since the frame window is not yet
              created and not yet registered with the corresponding MetaWindow.
              Do it inside meta_window_ensure_frame() instead.
      
      svn path=/trunk/; revision=3208
      18c9101a
  12. 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
  13. 16 Apr, 2007 3 commits
    • Elijah Newren's avatar
      Prevent metacity from "forgetting" which machine a window is on. #418552 · 966e36b9
      Elijah Newren authored
      2007-04-16  Elijah Newren  <newren gmail com>
      
      	Prevent metacity from "forgetting" which machine a window is on.
      	#418552
      
      	* src/window.c (meta_window_new_with_attrs): reorder the property
      	loading so that we know the wm_client_machine when we load the
      	name of the window and can modify the window name accordingly.
      
      svn path=/trunk/; revision=3201
      966e36b9
    • Elijah Newren's avatar
      Preserve stacking order across restarts. · 3f7d7299
      Elijah Newren authored
      2007-04-15  Elijah Newren  <newren gmail com>
      
      	Preserve stacking order across restarts.
      
      	* src/display.c (meta_display_unmanage_windows_for_screen):
      	unmap windows in stacking order so that stacking is preserved upon
      	shutdown
      
      	* src/display.[ch] (meta_display_stack_cmp):
      	* src/session.c (stack_cmp, save_state):
      	rename stack_cmp() -> meta_display_stack_cmp() and move it to a
      	different function so that it can be used in both
      	session.c:save_state() and
      	meta_display_unmanage_windows_for_screen()
      
      svn path=/trunk/; revision=3197
      3f7d7299
    • Elijah Newren's avatar
      Remove incorrect usage of window.h from menu.c. See #426791 & #382962. · 6de7271a
      Elijah Newren authored
      2007-04-15  Elijah Newren  <newren gmail com>
      
      	Remove incorrect usage of window.h from menu.c.  See #426791 &
      	#382962.
      
      	* src/menu.c (enum MetaMenuItemType, variable menuitems,
      	  meta_menu_item_new):
      	cleanup: add a MENU_ITEM_RADIOBUTTON for the sticky stuff
      
      	* src/menu.c (variable menuitems):
      	* src/core.c (meta_core_get_menu_accelerator):
      	* src/window.c (menu_callback, meta_window_show_menu):
      	* src/common.h (enum MetaMenuOp):
      	reinstate META_MENU_OP_UNABOVE
      
      	* src/menu.c (meta_window_menu_new):
      	remove hacks (using inappropriate data) for STICK/UNSTICK/ABOVE
      	and clean it up while just setting STICK/UNSTICK activeness as
      	necessary
      
      	* src/menu.[ch] (meta_window_menu_new):
      	* src/ui.[ch] (meta_ui_window_menu_new):
      	make the active_workspace parameter an unsigned long
      
      2007-04-15  Bruno Boaventura <brunobol@gnome.org>
      
      	* src/menu.c (meta_window_menu_new): don't show the current
      	workspace as a possible workspace to switch to.  Fixes #426791.
      
      svn path=/trunk/; revision=3196
      6de7271a
  14. 12 Apr, 2007 3 commits
    • Elijah Newren's avatar
      do not auto-maximize windows larger than the workarea in only a single · bc6996b1
      Elijah Newren authored
      2007-04-12  Elijah Newren  <newren gmail com>
      
      	* src/place.c (meta_window_place): do not auto-maximize windows
      	larger than the workarea in only a single direction.  Fixes
      	#419810.
      
      svn path=/trunk/; revision=3194
      bc6996b1
    • Elijah Newren's avatar
      Make sure apps have correct info about their coordinates, even on unmap. · 9ec6dbd5
      Elijah Newren authored
      2007-04-11  Elijah Newren  <newren gmail com>
      
      	Make sure apps have correct info about their coordinates, even on
      	unmap.  Fixes temporary hang with libXt (XtVaSetValues setting x &
      	y coordinates).  #399552.
      
      	* src/frame.c (meta_window_destroy_frame): Add a comment noting
      	that the current choice causes the need for a ConfigureNotify
      	event
      
      	* src/window.c (meta_window_free): Send a configure notify event
      	due to our XReparentWindow coordinate choices on withdrawal,
      	(unmaximize_window_before_freeing): no need to send a configure
      	notify from here since it is always done in meta_window_free new,
      	(send_configure_notify): have to special case the coordinates used
      	when withdrawing the window
      
      svn path=/trunk/; revision=3192
      9ec6dbd5
    • Thomas Thurman's avatar
      Workaround for a gdk bug which dies with BadAlloc if you try to allocate · 2034a309
      Thomas Thurman authored
      2007-04-11  Thomas Thurman  <thomas@thurman.org.uk>
      
              Workaround for a gdk bug which dies with BadAlloc if you try
              to allocate an insanely huge rectangle for an insanely huge
              window. Fixes #399529.
      
      
      
      svn path=/trunk/; revision=3191
      2034a309
  15. 11 Apr, 2007 2 commits
    • Elijah Newren's avatar
      Advertise support of Above and Below operations (assuming the proposed · 7626f74b
      Elijah Newren authored
      2007-04-11  Elijah Newren  <newren gmail com>
      
      	Advertise support of Above and Below operations (assuming the
      	proposed EWMH additions of _NET_WM_ACTION_(ABOVE|BELOW) will be
      	accepted, otherwise these changes will have to be modified).  Part
      	of #115247.
      
      	* src/display.[ch] (meta_display_open, struct MetaDisplay):
      	* src/screen.c (set_wm_check_hint):
      	Add support for _NET_WM_ACTION_ABOVE and _NET_WM_ACTION_BELOW
      
      	* src/window.c (set_allowed_actions_hints):
      	add active_above and action_below
      
      svn path=/trunk/; revision=3190
      7626f74b
    • Elijah Newren's avatar
      make sure to set _NET_WM_ALLOWED_ACTIONS so that libwnck menus don't have · eb639a46
      Elijah Newren authored
      2007-04-10  Elijah Newren  <newren gmail com>
      
      	* src/window.c (recalc_window_features): make sure to set
      	_NET_WM_ALLOWED_ACTIONS so that libwnck menus don't have sensitive
      	but ineffective menu items.  The "On Top" item is now buggy, but
      	due to the fact that _NET_WM_ACTION_ABOVE is not yet defined in
      	the EWMH.  Fixes #115247.
      
      svn path=/trunk/; revision=3189
      eb639a46
  16. 09 Apr, 2007 3 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
      Remove grab_start_serial, which we expect to be an ancient attempt to · ebfbef86
      Elijah Newren authored
      2007-04-08  Elijah Newren  <newren gmail com>
      
      	Remove grab_start_serial, which we expect to be an ancient attempt
      	to workaround sloppy/mouse focus bugs that have since been
      	correctly fixed.  May fix some race conditions.  May cause nasty
      	bugs in sloppy/mouse focus modes.  We'll find out soon enough...
      	See #304430.
      
      	* src/display.c (event_callback):
      	remove event->xany.serial >= display->grab_start_serial in several
      	event callback handlers
      
      	* src/display.[ch] (struct _MetaDisplay, meta_display_begin_grab_op):
      	* src/keybindings.c (do_choose_window, handle_workspace_switch):
      	* src/frames.c (meta_frames_button_press_event):
      	* src/core.[ch] (meta_core_begin_grab_op):
      	* src/window.c (meta_window_client_message, meta_window_begin_grab_op):
      	don't require an event_serial to be passed to
      	meta_display_begin_grab_op () and don't record it anymore.
      
      	* src/ui.c (struct _EventFunc, filter_func,
      	  meta_ui_get_last_event_serial)
      	* src/core.h (meta_ui_get_last_event_serial):
      	remove meta_ui_get_last_event_serial() function (don't ask me why
      	it was declared in core.h) and the last_even_serial field of
      	_EventFunc
      
      svn path=/trunk/; revision=3182
      ebfbef86
    • 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
  17. 07 Apr, 2007 2 commits
    • Elijah Newren's avatar
      Add an (unbound by default) keybinding for setting spew marks in verbose · 0a8bdcdc
      Elijah Newren authored
      2007-04-07  Elijah Newren  <newren gmail com>
      
      	* src/prefs.[ch] (screen_bindings array,
      	  META_KEYBINDING_SET_SPEW_MARK definition):
      	* src/keybindings.c (handle_spew_mark, screen_handlers array):
      	Add an (unbound by default) keybinding for setting spew marks in
      	verbose debugging logs.  I'm not sure why this was ever removed;
      	I've wanted it so many times.
      
      	* HACKING:
      	valgrind wants --log-file not --logfile.
      
      svn path=/trunk/; revision=3174
      0a8bdcdc
    • Elijah Newren's avatar
      Fix memory bug (invalid free) introduced in 2007-04-02 strut cleanup · 745906b7
      Elijah Newren authored
      2007-04-07  Elijah Newren  <newren gmail com>
      
      	* src/window.c (meta_window_free): Fix memory bug (invalid free)
      	introduced in 2007-04-02 strut cleanup commit.  Part of #427385.
      
      svn path=/trunk/; revision=3173
      745906b7
  18. 05 Apr, 2007 2 commits
  19. 04 Apr, 2007 3 commits
    • Elijah Newren's avatar
      send synthetic configurenotify events also in response to MapRequest · dda3c2be
      Elijah Newren authored
      2007-04-04  Elijah Newren  <newren gmail com>
      
      	* src/window.c (meta_window_move_resize_internal): send synthetic
      	configurenotify events also in response to MapRequest events when
      	the window has a frame and the application specifies PPosition or
      	UPosition hints.  I believe they are already sent for all other
      	cases.  Should fix #322840.  Fixes the testcase at least.  :)
      
      svn path=/trunk/; revision=3156
      dda3c2be
    • Elijah Newren's avatar
      Fix lots of little issues with min/max constraints and size increment · 921661e9
      Elijah Newren authored
      2004-04-04  Elijah Newren  <newren gmail com>
      
      	Fix lots of little issues with min/max constraints and size
      	increment constraints.  Fixes #329152, #418395, and possibly
      	others.
      
      	* src/window-props.c (meta_set_normal_hints):
      	Do more checking to make sure application specified constraints
      	are self-consistent, modifying the size_hints as necessary to
      	achieve self-consistency.
      
      	* src/constraints.c (setup_constraint_info): remove ugly
      	copy-pasto, (constrain_size_increments): be careful that fixing
      	violation of the constraints doesn't cause a violation of the
      	minimum size constraints.
      
      	* src/window.c (ensure_size_hints_satisfied): new function,
      	(meta_window_unmaximize, meta_window_unmake_fullscreen): the
      	saved_rect may no longer be valid (as in the case of #329152) so
      	call ensure_size_hints_satisfied to fix it up.
      
      	* doc/how-to-get-focus-right.txt: Some minor spacing and wording
      	fixes completely unrelated to the rest of this commit
      
      svn path=/trunk/; revision=3155
      921661e9
    • Elijah Newren's avatar
      Only use saved_rect for determining the position to unmaximize to for the · 7a799b3a
      Elijah Newren authored
      2007-04-03  Elijah Newren  <newren gmail com>
      
      	* src/window.c (meta_window_unmaximize):
      	Only use saved_rect for determining the position to unmaximize to
      	for the previously-maximized direction(s).  Fixes #355497.
      
      svn path=/trunk/; revision=3154
      7a799b3a
  20. 03 Apr, 2007 5 commits
    • Elijah Newren's avatar
      _NET_ACTIVE_WINDOW is a single xwindow id, not two. · 9cae11fd
      Elijah Newren authored
      2007-04-03  Elijah Newren  <newren gmail com>
      
      	* src/display.c (meta_display_update_active_window_hint):
      	_NET_ACTIVE_WINDOW is a single xwindow id, not two.
      
      svn path=/trunk/; revision=3152
      9cae11fd
    • Elijah Newren's avatar
      turn mouse_mode off to prevent focus issues with the run application · da7d1987
      Elijah Newren authored
      2007-04-03  Elijah Newren  <newren gmail com>
      
      	* src/keybindings.c (handle_panel_keybinding): turn mouse_mode off
      	to prevent focus issues with the run application dialog.  Fixes
      	#374752.
      
      svn path=/trunk/; revision=3149
      da7d1987
    • Elijah Newren's avatar
      Avoid some crashes when dragging windows partially offscreen. Possible (or · 350225ea
      Elijah Newren authored
      2007-04-03  Elijah Newren  <newren gmail com>
      
      	Avoid some crashes when dragging windows partially offscreen.
      	Possible (or at least partial) fix for #353513.
      
      	* src/edge-resistance.c (apply_edge_resistance): be more careful
      	about calls to find_index_of_edge_near_position() returning
      	possibly invalid indices.  Also, add a warning comment to
      	find_index_of_edge_near_position().
      
      svn path=/trunk/; revision=3147
      350225ea
    • Elijah Newren's avatar
      Patch from Carlo Wood to do some miscellaneous code cleanups found while · ec51e41c
      Elijah Newren authored
      2007-04-02  Elijah Newren  <newren gmail com>
      
      	Patch from Carlo Wood to do some miscellaneous code cleanups found
      	while working on #358311.
      
      	* src/constraints.c (do_screen_and_xinerama_relative_constraints):
      	nicer way of avoiding compilation warning
      
      	* src/boxes.c (meta_rectangle_clamp_to_fit_into_region,
      	  meta_rectangle_clip_to_region, meta_rectangle_shove_into_region):
      	Much cleaner way of ignoring invalid boxes in comparisons
      
      svn path=/trunk/; revision=3145
      ec51e41c
    • 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
  21. 01 Apr, 2007 1 commit
  22. 31 Mar, 2007 2 commits
    • Elijah Newren's avatar
      Clean up event mask handling and meta_create_offscreen_window, to prevent · 81e32cfa
      Elijah Newren authored
      2007-03-31  Elijah Newren  <newren gmail com>
      
      	Clean up event mask handling and meta_create_offscreen_window, to
      	prevent nasty metacity/gdk interactions causing hangs. See #354213.
      
      	* src/screen.[ch] (meta_create_offscreen_window):
      	* src/display.c (meta_display_open):
      	* src/screen.c (meta_screen_new):
      	Add a valuemask parameter to meta_create_offscreen_window
      	
      	* src/display.c (meta_display_open):
      	make it explicit that we can't rely on PropertyNotify events for
      	the leader_window due to nasty metacity/gdk interaction
      
      	* src/session.c (warn_about_lame_clients_and_finish_interact):
      	remove cut-and-paste code for timestamp pinging and just call
      	meta_display_get_current_time_roundtrip
      
      svn path=/trunk/; revision=3137
      81e32cfa
    • 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
  23. 26 Mar, 2007 1 commit
    • Josselin Mouette's avatar
      if previous client ID was supplied, use it in filename. use --sm-client-id · 44b86d46
      Josselin Mouette authored
      2007-03-26  Josselin Mouette  <joss@malsain.org>
      
              * src/session.c (meta_session_init): if previous client ID
              was supplied, use it in filename.
              * src/session.c (set_clone_restart_commands): use --sm-client-id
              in command line to restore session, not original file name.
              * src/session.c (regenerate_save_file): generate filename using
              client ID and not original file name.
              * src/session.c (base_save_file): removed function.
              Closes GNOME 407981, Debian 391287, Debian 315169.
      
      
      svn path=/trunk/; revision=3125
      44b86d46