1. 13 Apr, 2006 1 commit
  2. 10 Apr, 2006 1 commit
    • Søren Sandmann's avatar
      Check if the window is a menu and make it 90% opaque in that case. · 4b683fdb
      Søren Sandmann authored
      Mon Apr 10 16:44:51 2006  Søren Sandmann  <sandmann@redhat.com>
      
      	* src/c-screen.c (is_menu): Check if the window is a menu and make
      	it 90% opaque in that case.
      
      	* src/c-screen.c (claim_selection): Handle CM_Sn selection
      	properly.
      
      	* src/c-screen.c: Remove debug spew
      
      	* src/screen.c (meta_screen_composite_all_windows): Remove debug spew
      4b683fdb
  3. 03 Mar, 2006 1 commit
    • Søren Sandmann's avatar
      Split the ScreenInfo data structure into separate, new files · 832968dd
      Søren Sandmann authored
      Wed Mar  3 13:25:03 2006  Søren Sandmann  <sandmann@redhat.com>
      
              * src/compositor.c, src/c-screen.[ch]: Split the ScreenInfo data
              structure into separate, new files c-screen.[ch].
      
              * src/errors.c (x_error_handler): Forward foreign errors to
              foreign displays.
      
              * src/errors.c (meta_errors_register_foreign_display): Implement
              this function
      
              * src/errors.h: Add new meta_errors_register_foreign_display()
      832968dd
  4. 17 Feb, 2006 1 commit
    • Søren Sandmann's avatar
      Only uncomposite the screen if there is a compositor. · f3ade45b
      Søren Sandmann authored
      Fri Feb 17 11:56:35 2006  Søren Sandmann  <sandmann@redhat.com>
      
      	* src/screen.c (meta_screen_free): Only uncomposite the screen if
      	there is a compositor.
      
      	* src/compositor.c (meta_compositor_new): Warn and fail if the
      	server doesn't have composite
      f3ade45b
  5. 16 Feb, 2006 1 commit
    • Søren Sandmann's avatar
      New function. · f6738a93
      Søren Sandmann authored
      Thu Feb 16 15:24:42 2006  Søren Sandmann  <sandmann@redhat.com>
      
      	* src/screen.c (meta_screen_composite_all_windows): New function.
      
      	* src/prefs.[ch], src/metacity.schemas.in: Add new
      	compositing_manager key.
      
      	* src/display.c (prefs_changed_callback): Handle
      	META_PREF_COMPOSITOR_MANAGER
      
      	* src/display.c (event_callback): Only call
      	meta_compositor_process_event() if there is in fact a compositor.
      
      	* src/display.c (enable/disable_compositor): Add code to
      	enable/disable compositor at runtime
      f6738a93
  6. 20 Jan, 2006 2 commits
    • Elijah Newren's avatar
      Patch from Kjartan Maraas to fix a lot of tiny issues (unused variable · 32d4bd6b
      Elijah Newren authored
      2006-01-20  Elijah Newren  <newren gmail com>
      
      	* src/async-getprop.c:
      	* src/common.h:
      	* src/display.c:
      	* src/eggaccelerators.c:
      	* src/frames.c:
      	* src/gradient.c:
      	* src/iconcache.c:
      	* src/keybindings.c:
      	* src/metaaccellabel.c:
      	* src/place.c:
      	* src/prefs.c:
      	* src/preview-widget.c:
      	* src/screen.c:
      	* src/session.c:
      	* src/stack.c:
      	* src/tabpopup.c:
      	* src/theme-viewer.c:
      	* src/theme.c:
      	* src/window-props.c:
      	* src/window.c:
      	* src/workspace.c:
      	* src/tools/metacity-window-demo.c:
      	* src/wm-tester/test-gravity.c:
      	* src/wm-tester/test-resizing.c:
      	* src/wm-tester/test-size-hints.c:
      	Patch from Kjartan Maraas to fix a lot of tiny issues (unused
      	variable removal, making unused variables used again, correction
      	of types passed/declared for printf arguments, removal of unneeded
      	breaks and returns, dead code removal, dead code revival, renaming
      	to prevent shadowed variables, declaring unexported functions as
      	static) spotted by the intel compiler.  #321439
      32d4bd6b
    • Elijah Newren's avatar
      Patch from Björn Lindqvist to fix #98340. · 4c107222
      Elijah Newren authored
      2006-01-20  Elijah Newren  <newren gmail com>
      
      	Patch from Björn Lindqvist to fix #98340.
      
      	* src/screen.c (meta_screen_ensure_tab_popup): Make sure an
      	outline border is shown even if a window frame's width is 0.
      	Also, correctly handle window outlines in showing desktop mode.
      4c107222
  7. 13 Jan, 2006 1 commit
    • Søren Sandmann's avatar
      Add a dependency on libcm when building with compositor. · fea61914
      Søren Sandmann authored
      Fri Jan 13 14:40:19 2006  Søren Sandmann  <sandmann@redhat.com>
      
      	* configure.in: Add a dependency on libcm when building with
      	compositor.
      
      	* src/window.c (meta_window_hide): Make this function static.
      
      	* src/window.c (implement_showing): Use meta_compositor_minimize()
      	to do a weird minimize effect.
      
      	* src/compositor.[ch]: Beginning of new GL based compositor.
      
      	* src/screen.h (struct _MetaScreen): Add void pointer to
      	compositor data.
      
      	* src/screen.c (meta_screen_new): Remove obsolete compositor
      	stuff; initialize compositor_data. Don't composite manage screen
      	out of this function.
      
      	* src/errors.c (x_error_handler): Check that display is non-NULL
      	before using it. Add comment about how that can happen.
      
      	* src/display.c (meta_display_{begin,end}_grab_op): Remove
      	explicity damage of windows.
      
      	* src/display.c (meta_display_open): Composite manage all the
      	screens.
      fea61914
  8. 10 Jan, 2006 2 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
      Fix window outline for minimized windows when using alt-esc. #325092. · 8c5b6c87
      Elijah Newren authored
      2006-01-09  Elijah Newren  <newren@gmail.com>
      
      	Fix window outline for minimized windows when using alt-esc.
      	#325092.
      
      	* src/display.c (meta_display_begin_grab_op): Specify the showing
      	type of tabbing operation (Alt tab vs. alt-esc) in addition to the
      	listing type of tabbing operation (docks vs normal windows) to
      	meta_screen_ensure_tab_popup().
      
      	* src/display.h (enum MetaTabShowType): new convenience enum
      
      	* src/screen.[ch] (meta_screen_ensure_tab_popup): require the
      	showing type be specified in addition to the tabbing type; put the
      	outline around the window instead of the icon when in alt-esc
      	mode.
      8c5b6c87
  9. 28 Dec, 2005 1 commit
    • Elijah Newren's avatar
      Make the workspace switcher work with dual-head (non-xinerama) setups. · 703f58cd
      Elijah Newren authored
      2005-12-27  Elijah Newren  <newren@gmail.com>
      
      	Make the workspace switcher work with dual-head (non-xinerama)
      	setups.  Fixes #319423.
      
      	* src/display.c (meta_display_open, event_callback,
      	  meta_display_focus_the_no_focus_window):
      	* src/display.h (struct MetaDisplay,
      	  meta_display_focus_the_no_focus_window):
      	* src/keybindings.c (primary_modifier_still_pressed):
      	* src/screen.c (meta_screen_new):
      	* src/screen.h (struct MetaScreen):
      	* src/window.c (meta_window_new_with_attrs, meta_window_show):
      	* src/workspace.c (meta_workspace_focus_default_window):
      	Replace display->no_focus_window with a no_focus_window for each
      	screen.
      
      	* src/display.[ch] (meta_display_xwindow_is_a_no_focus_window,
      	  event_callback):
      	* src/window.c (meta_window_new_with_attrs):
      	New utility function, meta_display_xwindow_is_a_no_focus_window(),
      	for checking if the given xwindow is a no_focus_window for one of
      	the screens.
      703f58cd
  10. 22 Dec, 2005 2 commits
  11. 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
  12. 12 Nov, 2005 1 commit
    • Aidan Delaney's avatar
      Changed the 'minimized' field of the MetaTabEntry struct to 'hidden'. · 6677b55c
      Aidan Delaney authored
      2005-11-11 Aidan Delaney <a.j.delaney@brighton.ac.uk>
      
             * src/tabpopup.h: (struct _MetaTabEntry):
             * src/tabpopup.c: (meta_ui_tab_popup_new):
             * src/screen.c: (meta_screen_ensure_tab_popup):
             Changed the 'minimized' field of the MetaTabEntry struct to
             'hidden'.  Fixes reopened bug #168455.
      6677b55c
  13. 08 Oct, 2005 1 commit
  14. 12 Jul, 2005 1 commit
  15. 11 Jul, 2005 1 commit
    • Matthias Clasen's avatar
      React to cursor theme changes: (#308106) · 8ce054b2
      Matthias Clasen authored
      2005-07-11  Matthias Clasen  <mclasen@redhat.com>
      
      	React to cursor theme changes: (#308106)
      
      	* src/prefs.h:
      	* src/prefs.c: Expose the GConf keys for cursor theme
      	and size as preferences META_PREF_CURSOR_THEME and
      	META_PREF_CURSOR_SIZE with getters meta_prefs_get_cursor_theme()
      	and meta_prefs_get_cursor_size().
      
      	* src/display.c (meta_display_open): Initialize the cursor
      	theme and size.
      
      	* src/display.h:
      	* src/display.c (meta_display_set_cursor_theme): New function
      	to change the cursor theme and update all cursors.
      
      	* src/screen.h
      	* src/screen.c (meta_screen_update_cursor): New function to
      	refesh the root cursor of a screen.
      
      	* src/main.c (prefs_changed_callback): Update the cursor
      	theme when the cursor preferences change.
      8ce054b2
  16. 07 Jun, 2005 1 commit
    • Ray Strode's avatar
      Cleanup font data when done with it (bug 306720). · 064a86e6
      Ray Strode authored
      2005-06-07  Ray Strode  <rstrode@redhat.com>
      
      	Cleanup font data when done with it (bug 306720).
      
      	* src/effects.c (draw_xor_rect): free font info structure.
      	* src/screen.c (meta_screen_new): pass a 1 not a 0 to
      	XFreeFontInfo to free font info structure.
      	(meta_screen_free): call XUnloadFont on GC font before freeing
      	the GC.
      064a86e6
  17. 30 May, 2005 1 commit
    • Ray Strode's avatar
      Bug 305564 again. · 14b8de37
      Ray Strode authored
      2005-05-30  Ray Strode  <rstrode@redhat.com>
      
      	Bug 305564 again.
      
      	When drawing XOR resize popup use "fixed" font instead of
      	-misc-fixed-*-16-* xlfd.  Should work on more xservers.
      
      	Also take steps to fail better if the xserver isn't
      	cooperating.
      
      	* src/effects.c (draw_xor_rect): if we can't draw font box
      	for whatever reason, at least draw grid frames.
      
      	* src/screen.c (meta_screen_new): use fixed alias instead
      	of a xfld.  Don't pass GCFont to XCreateGC if font couldn't
      	be loaded.  Print a warning if font couldn't be loaded.
      14b8de37
  18. 26 May, 2005 1 commit
  19. 28 Feb, 2005 1 commit
    • Elijah Newren's avatar
      Patch from Aidan Delaney to make sure that icons in the alt-tab popup are · c7ebe972
      Elijah Newren authored
      2005-02-28  Elijah Newren  <newren@gmail.com>
      
      	Patch from Aidan Delaney to make sure that icons in the alt-tab
      	popup are dimmed for all hidden windows, not just minimized ones.
      	Fixes #168455.
      
      	* src/screen.c: (meta_screen_ensure_tab_popup): make use
      	meta_window_showing_on_its_workspace() instead of just checking if
      	the window is minimized.
      c7ebe972
  20. 20 Jan, 2005 1 commit
  21. 18 Jan, 2005 1 commit
    • Vincent Noel's avatar
      In the tab task switcher popup, dim the window icon and put its name · 47221dcc
      Vincent Noel authored
      2005-01-18  Vincent Noel  <vnoel@cox.net>
      
      	* src/screen.c: (meta_screen_ensure_tab_popup),
      	(meta_screen_ensure_workspace_popup):
      	* src/tabpopup.c: (dimm_icon), (meta_ui_tab_popup_new),
      	(free_entry):
      	* src/tabpopup.h: In the tab task switcher popup, dim the window
      	icon and put its name between brackets when the window is
      	minimized. Fixes #136666.
      47221dcc
  22. 20 Dec, 2004 1 commit
    • Elijah Newren's avatar
      Focus the desktop when showing it. Fixes #159257. · d8d77bd6
      Elijah Newren authored
      2004-12-19  Elijah Newren  <newren@gmail.com>
      
      	Focus the desktop when showing it.  Fixes #159257.
      
      	* src/display.c (event_callback): obtain a timestamp to pass to
      	meta_screen_show_desktop
      
      	* src/keybindings.c (handle_toggle_desktop): obtain a timestamp to
      	pass to meta_screen_show_desktop
      
      	* src/screen.c (meta_screen_show_desktop): add a timestamp
      	parameter, get the most recently used window of type DESKTOP (if
      	there is one) and focus it
      
      	* src/screen.h (meta_screen_show_desktop): add a timestamp
      	parameter
      d8d77bd6
  23. 22 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Update _NET_WM_STATE_HIDDEN so the pager on the panel will know whether to · 6d77251c
      Elijah Newren authored
      2004-10-22  Elijah Newren  <newren@math.utah.edu>
      
      	Update _NET_WM_STATE_HIDDEN so the pager on the panel will know
      	whether to display windows as visible or hidden (#105665)
      
      	* src/screen.c (queue_windows_showing): Revert the
      	queue_windows_showing portion of the patch committed on 2004-10-16
      	for #142198--it was an ill-advised optimization.
      
      	* src/window.c (window_showing_on_its_workspace,
      	window_should_be_showing): split the old window_should_be_showing
      	into these two functions, (set_net_wm_state): hidden state is more
      	complex; use window_showing_on_its_workspace to determine the
      	correct value
      6d77251c
  24. 17 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Make the "showing desktop" mode be per-workspace instead of per-screen. · e84778d1
      Elijah Newren authored
      2004-10-16  Elijah Newren  <newren@math.utah.edu>
      
      	Make the "showing desktop" mode be per-workspace instead of
      	per-screen. (fixes #142198)
      
      	* src/keybindings.c (handle_toggle_desktop): access
      	showing_desktop through the active workspace
      
      	* src/screen.c (meta_screen_new): remove initialization of
      	screen->showing_desktop,
      	(meta_screen_update_showing_desktop_hint): rename and make not
      	static and access showing_desktop through the active workspace,
      	(queue_windows_showing): replace meta_display_list_windows() with
      	screen->active_workspace->windows,
      	(meta_screen_minimize_all_on_active_workspace_except): renamed
      	from meta_screen_minimize_all_except since it now only works on
      	the active workspace, (meta_screen_show_desktop,
      	meta_screen_unshow_desktop): access showing_desktop through the
      	active workspace
      
      	* src/screen.h (struct _MetaScreen): remove showing_desktop field,
      	(meta_screen_minimize_all_on_active_workspace_except): rename from
      	meta_screen_minimize_all_except,
      	(meta_screen_update)_showing_desktop_hint): export this function too
      
      	* src/window.c (maybe_leave_show_desktop_mode): access
      	showing_desktop through the active workspace and use new name for
      	meta_screen_minimize_all_on_active_workspace_except,
      	(window_should_be_showing): access showing_desktop through the
      	active workspace
      
      	* src/workspace.c (meta_workspace_new): initialize
      	workspace->showing_desktop, (meta_workspace_activate_with_focus):
      	add note that old can be NULL, update showing_desktop_hint if
      	different on this workspace than the previous one
      
      	* src/workspace.h (struct _MetaWorkspace): add showing_desktop
      	field
      e84778d1
  25. 04 Oct, 2004 1 commit
    • Elijah Newren's avatar
      Fix a variety of focus race conditions in all focus modes, or at least · 16b9aff4
      Elijah Newren authored
      2004-10-04  Elijah Newren  <newren@math.utah.edu>
      
      	Fix a variety of focus race conditions in all focus modes, or at
      	least make them harder to trigger (fixes #152000)
      
      	* src/core.[ch] (meta_core_user_lower_and_unfocus): add a
      	timestamp parameter; pass it along to
      	meta_workspace_focus_default_window
      
      	* src/display.[ch] (meta_display_get_current_time_roundtrip): new
      	function
      
      	* src/display.c (event_callback): pass a timestamp to the
      	meta_workspace_activate and meta_workspace_focus_default_window
      	function calls
      
      	* src/frames.c (meta_frames_button_press_event): pass a timestamp
      	to meta_core_user_lower_and_unfocus
      
      	* src/keybindings.c (handle_activate_workspace): pass a timestamp
      	to meta_workspace_activate, (process_workspace_switch_grab): pass
      	a timestamp to meta_workspace_focus_default_window and
      	meta_workspace_activate, (handle_toggle_desktop): pass a timestamp
      	to meta_workspace_focus_default_window,
      	(do_handle_move_to_workspace): pass a timestamp to
      	meta_workspace_activate_with_focus, (handle_workspace_switch):
      	meta_workspace_activate
      
      	* src/screen.c (meta_screen_new): pass a timestamp to
      	meta_workspace_activate
      
      	* src/window.c (meta_window_free): pass a timestamp to
      	meta_workspace_focus_default_window, (idle_calc_showing): don't
      	increment the focus sentinel here, (meta_window_minimize): pass a
      	timestamp to meta_workspace_focus_default_window,
      	(meta_window_client_message), pass a timestamp to
      	meta_workspace_focus_default_window
      
      	* src/workspace.h (meta_workspace_activate): add timestamp
      	parameter, (meta_workspace_activate_with_focus): add timestamp
      	parameter, (meta_workspace_focus_default_window): add timestamp
      	parameter
      
      	* src/workspace.c (meta_workspace_focus_mru_window): make this
      	function take a timestamp and use it for meta_window_focus or
      	XSetInputFocus, (meta_workspace_activate_with_focus): make this
      	function take a timestamp and pass it along to meta_window_focus
      	and meta_workspace_focus_default_window,
      	(meta_workspace_activate): make this function take a timestamp and
      	pass it to meta_workspace_activate_with_focus),
      	(meta_workspace_focus_default_window): make this function take a
      	timestamp, warn if its 0 but try to handle that case sanely, and
      	pass the timestamp on to meta_window_focus or
      	meta_workspace_focus_mru_window or XSetInputFocus
      16b9aff4
  26. 16 Sep, 2004 1 commit
    • Kjartan Maraas's avatar
      A load of fixes of issues reported by sparse. Closes bug #152849 · 43cc3b86
      Kjartan Maraas authored
      2004-09-17  Kjartan Maraas  <kmaraas@gnome.org>
      
      	* src/bell.c: (meta_bell_flash_screen):
      	* src/compositor.c:
      	* src/effects.c: (meta_effects_draw_box_animation):
      	* src/fixedtip.c: (meta_fixed_tip_show):
      	* src/frame.c: (find_argb_visual):
      	* src/frames.c: (unsigned_long_hash), (meta_frames_manage_window),
      	(meta_frames_apply_shapes):
      	* src/iconcache.c: (find_largest_sizes), (find_best_size):
      	* src/keybindings.c: (meta_spawn_command_line_async_on_screen):
      	* src/main.c: (main):
      	* src/menu.c: (meta_window_menu_new):
      	* src/prefs.c: (meta_prefs_get_visual_bell),
      	(meta_prefs_bell_is_audible), (meta_prefs_get_visual_bell_type),
      	(meta_prefs_get_action_double_click_titlebar),
      	(meta_prefs_get_auto_raise), (meta_prefs_get_auto_raise_delay),
      	(meta_prefs_get_reduced_resources):
      	* src/screen.c: (meta_create_offscreen_window):
      	* src/tabpopup.c: (meta_ui_tab_popup_get_selected):
      	* src/theme-parser.c: (meta_theme_load):
      	* src/theme.c: (meta_gtk_widget_get_font_desc):
      	* src/tools/metacity-mag.c: (mouse_press), (begin_area_grab):
      	* src/util.c: (meta_unsigned_long_hash): A load of fixes of issues
      	reported by sparse. Closes bug #152849
      43cc3b86
  27. 15 Sep, 2004 1 commit
    • Elijah Newren's avatar
      Prevent focus inconsistencies by only providing one focus method (fixes · 101a097f
      Elijah Newren authored
      2004-09-15  Elijah Newren  <newren@math.utah.edu>
      
      	Prevent focus inconsistencies by only providing one focus method
      	(fixes #151990)
      
      	* src/screen.c (meta_screen_show_desktop): remove call to
      	meta_workspace_focus_top_window (it was merely focusing a window
      	that was going to be hidden anyway, and likely the one that
      	already had focus)
      
      	* src/workspace.[hc]: remove meta_workspace_focus_mru_window and
      	meta_workspace_focus_top_window from workspace.h, make them static
      	functions in workspace.c
      101a097f
  28. 07 Aug, 2004 1 commit
  29. 31 Jul, 2004 1 commit
    • Rob Adams's avatar
      Fix some support for EWMH hints, and fix USER_TIME support to include the · e60da6c0
      Rob Adams authored
      2004-07-31  Rob Adams  <readams@readams.net>
      
      	Fix some support for EWMH hints, and fix USER_TIME support to
      	include the DEMANDS_ATTENTION hint.  Also includes some code for
      	implementing _NET_RESTACK_WINDOW and _NET_MOVERESIZE_WINDOW, but
      	this is disabled pending feature thaw.
      
      	* COMPLIANCE: update with new information
      
      	* src/display.c (meta_display_open): add new hints to list
      
      	* src/display.h (_MetaDisplay): Add new atoms to struct
      
      	* src/screen.c (set_supported_hint): update the list of support
      	hints.
      	(set_desktop_viewport_hint): new function sets the viewport hint
      	to (0,0) as required by the spec for WMs with no viewport support.
      	(set_desktop_geometry_hint): new function to set the desktop size
      	hint to the size of the display, since we don't implement large
      	desktop support, as required by the spec.
      	(meta_screen_resize): update the geometry hint on screen resize
      
      	* src/window.c (meta_window_new_with_attrs): Initial...
      e60da6c0
  30. 24 Jun, 2004 2 commits
    • Elijah Newren's avatar
      Make choice of focus window be consistent for each focus mode. Fixes · 9d1d8fa0
      Elijah Newren authored
      2004-06-24  Elijah Newren  <newren@math.utah.edu>
      
      	Make choice of focus window be consistent for each focus mode.
      	Fixes #135810.
      
      	* src/delete.c: (meta_window_delete): In some #if 0'ed code,
      	replace meta_workspace_focus_mru_window with
      	meta_workspace_focus_default_window (just in case the code becomes
      	un-#if 0'ed out).
      
      	* src/screen.c, src/screen.h: Change
      	meta_screen_focus_mouse_window to meta_screen_get_mouse_window,
      	and don't focus the window when found but rather return it.
      
      	* src/window.c: (meta_window_free, meta_window_minimize): replace
      	meta_workspace_focus_mru_window with
      	meta_workspace_focus_default_window.
      
      	* src/workspace.c: (meta_workspace_focus_default_window): Focus
      	appropriately for the given focus method:
      	   click-to-focus: focus MRU window (== toplevel window)
      	   sloppy focus:   focus the window under the pointer if there is
      	                   such a window, otherwise focus the mru window
      	   mouse focus:    focus the window under the pointer if there is
      	                   such a window, otherwise don't focus anything
      9d1d8fa0
    • Elijah Newren's avatar
      Add support for _NET_WM_USER_TIME · 28a54c6b
      Elijah Newren authored
      2004-06-17  Elijah Newren  <newren@math.utah.edu>
      
      	Add support for _NET_WM_USER_TIME
      
      	* src/display.c:
      	(meta_display_open): Add _NET_WM_USER_TIME to atom_names[],
      	(event_callback): Manually set _NET_WM_USER_TIME upon KeyPress
      	(doesn't work since keyboard isn't grabbed) and ButtonPress (does
      	work), this is just a fallback for applications that don't update
      	this themselves.
      
      	* src/display.h: (struct _MetaDisplay): Add atom_net_wm_user_time field
      
      	* src/screen.c: (meta_screen_apply_startup_properties): Check for
      	TIMESTAMP provided from startup sequence as well.
      
      	* src/stack.c:
      	s/meta_window_set_stack_position/meta_window_set_stack_position_no_sync/,
      	(meta_window_set_stack_position): New function which calls the
      	meta_window_set_stack_position_no_sync function followed immediately
      	by calling meta_stack_sync_to_server.
      
      	* src/window-props.c:
      	(init_net_wm_user_time), (reload_net_wm_user_time): new functions,
      	(reload_wm_hints): also load atom_net_wm_user_time
      
      	* src/window.c:
      	new XSERVER_TIME_IS_LATER macro (accounts for timestamp wraparound),
      	(meta_window_new_with_attrs): add timestamp attributes,
      	(window_takes_focus_on_map): use TIMESTAMP from startup
      	notification and _NET_WM_USER_TIME to decide whether to focus new
      	windows,
      	(meta_window_show): if app doesn't take focus on map, place it
      	just below the focused window in the stack
      	(process_property_notify): check for changes to _NET_WM_USRE_TIME,
      	(meta_window_stack_just_below): new function
      
      	* src/window.h:
      	(_MetaWindow struct): new fields for initial_timestamp,
      	initial_timestamp_set, net_wm_user_time_set, and net_wm_user_time,
      	(meta_window_stack_just_below): new function
      28a54c6b
  31. 21 Jan, 2004 1 commit
  32. 10 Jan, 2004 1 commit
    • Thomas Fitzsimmons's avatar
      Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS. · a605da04
      Thomas Fitzsimmons authored
      2004-01-09  Thomas Fitzsimmons  <fitzsim@redhat.com>
      
      	Add _NET_FRAME_EXTENTS and _NET_REQUEST_FRAME_EXTENTS.
      
      	* src/display.c: include xprops.h
      	(process_request_frame_extents): new function
      	(meta_display_open): add _NET_FRAME_EXTENTS and
      	_NET_REQUEST_FRAME_EXTENTS atoms
      	(event_callback): handle frame extents message
      
      	* src/display.h (struct _MetaDisplay): add atom_net_frame_extents
      	and atom_net_request_frame_extents
      
      	* src/theme.c (meta_pango_font_desc_get_text_height): make font_desc
      	parameter const
      
      	* src/ui.c: include prefs.h
      	(meta_ui_theme_get_frame_borders): new function
      
      	* src/window.c (update_net_frame_extents): new function
      	(meta_window_move_resize_internal): update frame extents
      	property when frame geometry changes
      
      	* src/screen.c (set_supported_hint): add atom_net_frame_extents
      	and atom_net_request_frame_extents
      a605da04
  33. 26 Dec, 2003 2 commits
  34. 13 Dec, 2003 2 commits
    • Rob Adams's avatar
      Revert prior change · 9bde925d
      Rob Adams authored
      9bde925d
    • Rob Adams's avatar
      Add increased robustness for dealing with all workspaces windows and MRU · 7630d22b
      Rob Adams authored
      2003-12-13  Rob Adams  <readams@readams.net>
      
      	Add increased robustness for dealing with all workspaces windows
      	and MRU lists.
      	Also add very preliminary _NET_WM_USER_TIME
      	support, limited to simply listening for the property and keeping
      	an internal variable updated, and also treating some input events
      	as though they were user time updates.
      
      	* src/window.c (meta_window_new_with_attrs): set on_all_workspaces
      	in all cases _before_ adding to the workspaces, so that windows
      	initially on all workspaces are added correctly to the MRU lists.
      	Fix for #120907.
      	(process_property_notify): add net_wm_user_time support.
      
      	* src/workspace.c (meta_workspace_add_window): handle sticky
      	windows so that we add to add mru lists if needed
      	(meta_workspace_remove_window): handle sticky windows so that they
      	are removed from all mru lists if needed.
      
      	* src/display.[ch] (meta_display_open): add net_wm_user_time support.
      	(event_callback): simulate user time update on key and button presses.
      
      	* src/screen.c (set_supported_hint): add net_wm_user_time support.
      
      	* src/window-props.c (init_net_wm_user_time): new function for
      	user_time support
      	(reload_net_wm_user_time): new function for user_time support
      	(meta_display_init_window_prop_hooks): add hook for user_time
      7630d22b