2004-06-24 Elijah Newren <newren@math.utah.edu>
* src/session.c: Change meta_warning to meta_topic on failure to
connect to a session manager. Fixes#136218.
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
2004-06-21 Anders Carlsson <andersca@gnome.org>
* src/common.h:
* src/menu.c: (menu_closed), (activate_cb):
* src/window.c: (menu_callback):
Add a timestamp argument to menu functions and
use it in meta_window_delete.
Sat Jun 19 02:21:08 2004 Soeren Sandmann <sandmann@daimi.au.dk>
Fix bug 143333, support for update counter spec, and 109362,
schedule compensation events when events are ignored.
* src/display.c (meta_display_open): Add _NET_WM_SYNC_REQUEST and
_NET_WM_SYNC_REQUEST_COUNTER atoms. Remove the old
METACITY_SYNC_COUNTER stuff.
(meta_display_begin_op): Setup the sync counter
* src/xprops.c, src/xprops.h, src/window-props.c, src/display.h:
Add new atoms.
* src/window.c (send_sync_request): new function.
(meta_window_move_resize_internal): send a sync request before
resizing.
(check_move_resize_frequence): Rework logic to also check the SYNC
case. If an event is ignored return the remaining time.
(update_resize_timeout): Timeout that gets called when a
compensation event is scheduled.
(uddate_resize): schedule compensation events when an event is
ignored.
(meta_window_handle_mouse_grap_op_event): When an alarm is
received and sync was turned off, turn it back on.
* src/window.h (struct MetaWindow) Add some variables
2004-06-04 Jeff Waugh <jdub@perkypants.org>
* src/metacity.schemas.in: Set titlebar_uses_system_font = false. The
previous default was almost violent in its lack of appreciation for
human beings. In fact, this entire setting should probably be removed, but
for now, let's just fix the default. Permission granted by Havoc.
2004-05-02 Rob Adams <readams@readams.net>
* src/metacity-dialog.c (warn_about_no_sm_support): make the no sm
support warning dialog resizable, since the default GTK warning
dialog not has default not resizable. Fix for #141672 from
Olivier Crete.
2004-04-29 Rob Adams <readams@readams.net>
* src/prefs.c (change_notify): Add a value type check for the
visual bell/audible bell gconf settings. Patch from Jarrod
Johnson for #141409.
2004-04-19 Mark McLoughlin <mark@skynet.ie>
Syncing across this change from libwnck.
Patch from Neil Muller <neil@dip.sun.ac.za> in bug #133979.
* src/iconcache.c: (find_largest_sizes), (find_best_size):
Don't down-size nitems from a gulong to an int. Fixes a
crash with enlightenment, apparently.
2004-03-01 Rob Adams <readams@readams.net>
* src/stack.c (compute_layer): don't promote due to transiency; we
handle that elsewhere now.
(ensure_above): perform layer promotion here as well as stack
position promotion. Note that this means that we need to do stack
constraints now on layer change now.
(get_maximum_layer_of_ancestor): remove function
(max_layer_func): remove function
(MaxLayerData): remove struct
2004-02-27 Rob Adams <readams@readams.net>
* src/window.c (meta_window_notify_focus): only move on MRU list
if the window belongs on the workspace, since the FocusIn event
could be for a window whose workspace we've since switched away
from. Possible fix for #122016.
* src/workspace.c (meta_workspace_contains_window): search for the
workspace in window->workspaces rather than the window in
workspace->windows. Since the number of workspaces is at most 36,
this is a O(1) lookup rather than a O(n) lookup. Sorry; couldn't
resist.
2004-02-27 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: Change
move_to_workspace_left/right/up/down keybindings to
<Control><Alt><Shift> arrow to avoid conflicting with new
keybindings in spacial nautilus.
2004-02-27 Rob Adams <readams@readams.net>
Handle layer promotion of transient descendants of layer-promoted
windows to also be layer promoted, using a simple iterative
algorithm.
* src/stack.c (compute_layer): change name to promote_layer, and
convert to simply perform any necessary layer promotion without
computing the standalone layer.
(max_layer_func): use window->layer instead of
get_standalone_layer
(get_maximum_layer_of_ancestor): use window->layer instead of
get_standalone_layer
(meta_stack_ensure_sorted): implement iterative algorithm,
explained in a long comment.
* src/window.h: add a tmp_layer field used by stack.c for
determining if the stack is dirty or not, since maintaining this
information in meta_stack_ensure_sorted is no longer practical.
2004-02-23 Rob Adams <readams@readams.net>
Add my copyright notice to a number of files on which it should
already exist.
* src/window.c (meta_window_notify_focus): modify code to move to
front of MRU list so that we can have an assert that it was there
in the first place. This code may be causing some crashes. See
#131196.
2004-02-22 Christian Rose <menthos@menthos.com>
* configure.in: Added "en_CA" to ALL_LINGUAS.
* po/en_CA.po: Added Canadian English translation by
Adam Weinberger <adamw@FreeBSD.org>.
2004-02-19 Rob Adams <readams@readams.net>
* src/prefs.h: remove trailing comma in MetaKeyBindingAction enum.
Fix for #134868 thanks to bugzilla-gnome@thewrittenword.com.
2004-02-14 Rob Adams <readams@readams.net>
If we're moving a window and receive a _NET_CURRENT_DESKTOP
message indicating a workspace switch, bring along the drag window
to the new workspace, solving a potentially weird bug where the
window would be lost on the old workspace. This also makes it
possible to implement edge flipping in an external program with
just a few lines of code. Patch for #131630 from ed@catmur.co.uk.
* src/keybindings.c (switch_to_workspace): remove function -- no
longer needed.
(handle_activate_workspace): call meta_workspace_activate instead
of switch_to_workspace
* src/workspace.c (meta_workspace_activate_with_focus): if we're
in a move grab op, bring along the drag window.
2004-02-14 Rob Adams <readams@readams.net>
* configure.in: Add configure option to not even try using
xinerama, to make metacity buildable on systems with no shared
library version of the xinerama libraries. Patch for #134203 from
Julio M. Merino Vidal.
2004-01-17 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: Default binding removed for
toggle_shaded, since we don't have anything in the graphical UI
for it any more.
2004-01-17 Rob Adams <readams@readams.net>
* src/window.c (meta_window_show_menu): Don't show
left/right/up/down if a window is sticky. Make "On Top"
insensitive for docks, splash screens, and desktops since it has
no effect anyway.
2004-01-10 Rob Adams <readams@readams.net>
* src/metacity.schemas.in: update default
action_double_click_titlebar to be toggle_maximize instead of
toggle_shade. See #131126.
2004-01-12 Rob Adams <readams@readams.net>
* src/constraints.c (meta_window_constrain): if we maximize after
placement, and the window is too big to fix in the work area,
define a sane saved_rect approximately with dimensions
three-quarters approximately three quarters the size of the work
area. This avoids the problem where large windows would
unmaximize and actually get bigger. See #93590.
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
2003-01-04 Rob Adams <readams@readams.net>
Maintain the button grab for sloppy and mouse focus all the time.
This fixes a number of problem introduced by trying to drop the
grab; we now do this only for click to focus mode. This has the
unfortunate effect that #102209 reappears for sloppy and mouse
focus, but this seems unavoidable, because of limitations in the X
protocol. See #115072.
* src/display.c (meta_display_grab_focus_window_button): #if 0 the
section on not grabbing unless in click-to-focus mode.
* src/window.c (meta_window_notify_focus): drop focus button grab
on FocusIn and acquire it on FocusOut only when in click-to-focus
mode.
2003-12-25 Havoc Pennington <hp@redhat.com>
* src/compositor.c (meta_compositor_process_event): change to
track all children of the root window, not only mapped children;
this keeps us from losing track of the stacking order
* src/display.c (event_callback): don't do any of the compositor
event handling inline, do it all in compositor.c
2003-12-20 Rob Adams <readams@readams.net>
Reorganize the window menu according to discussion on #110904.
The workspace name mnemonic chunk of the patch is thanks to
Jonathan Blandford.
* src/common.h: add MENU_OP_ABOVE, MENU_OP_UNABOVE, MENU_UP_MOVE_TO_*
menu ops.
* src/core.c (meta_core_get_menu_accelerator): add accelerator for
the new menu ops.
* src/menu.c: add checked attribute in _MenuItem struct to display
a checkmark next to a menu item. Add the new menu items to
menuitems.
(get_workspace_name_with_accel): Add mnemonics even to renamed
workspaces.
(menu_item_new): provide support for the checked attribute
(meta_window_menu_new): construct new submenu for workspace
switching.
* src/window.c (menu_callback): implement support for the new menu
ops.
(meta_window_show_menu): don't use the OP_*SHAPE operations, and
compute which of the OP_MOVE_TO_* ops should be used for the
current workspace and workspace layout. Add the OP_*ABOVE
operations.
2003-12-17 Rob Adams <readams@readams.net>
* src/display.c (meta_display_open): initialize
grab_wireframe_active to FALSE. Fix for #128090.
2003-12-17 Rob Adams <readams@readams.net>
* src/tabpopup.c (meta_ui_tab_popup_new): Don't try to call
utf8_strndup on a null title for an entry. Fix for #128566.
* src/workspace.c (meta_workspace_free): Call g_list_free on the
mru_list, since with sticky windows that MRU list could well not
be emtpy. See #122016.
2003-12-13 Rob Adams <readams@readams.net>
* 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.
* 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.
2003-12-12 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_free): unstick window to get it out of
mru_list it should not be in; assert that window has been removed
from all mru_list. Perhaps fixes#122016 crash.
2003-11-24 Havoc Pennington <hp@redhat.com>
* src/display.c (meta_display_begin_grab_op): add an event_serial
argument and use it when the pointer is already grabbed
automatically on the button press. May fix bug #126871
2003-11-23 Havoc Pennington <hp@redhat.com>
* src/compositor.c: move xcompmgr code in here (minus drop
shadows), untested since Keith's server just crashes at the
moment. "It compiles"
2003-11-20 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_new_with_attrs): new function
* src/display.c, src/screen.c: create the compositor and feed
windows and events to it
2003-11-16 Rob Adams <readams@readams.net>
Create COMPLIANCE document describing metacity specification
compliance. Right now gives detailed EWMH compliance; still need
to add ICCCM compliance information. Also some minor fixes to
bring metacity into compliance on some points.
* COMPLIANCE: new file
* src/display.h, src/display.c (meta_display_open),
src/screen.c (set_supported_hint): add
atom_net_wm_action_fullscreen and atom_net_wm_action_minimize
* src/window.c (set_allowed_actions_hint): some fixes to which
hints to set and add fullscreen and minimize.
2003-11-16 Rob Adams <readams@readams.net>
* src/window.c (meta_window_notify_focus): add paranoia check to
make sure a window is really on a workspace before inserting it at
the beginning of the MRU list. Maybe there's a race condition
with focusing and workspace switching. Hopefully a fix for #122016.
2003-11-15 Havoc Pennington <hp@redhat.com>
* src/main.c (main): fix warning
* src/compositor.c: add a new file to contain compositing manager
functionality; not yet implemented at all.
2003-11-15 Rob Adams <readams@readams.net>
Inherit visual from frame window so that metacity will work with
the new compositing manager extension work by Keith on
freedesktop.org, so that ARGB windows can be full
alpha-transparent without a metacity frame getting drawn in the
background. In the long term, we need to actually set alpha
values when drawing the frame so that it will really work; this is
a stopgap solution. Patch from Keith Packard; see Bug 126875.
* src/frame.c (meta_window_ensure_frame): pass client visual to
frame.
* src/ui.[ch] (meta_ui_create_frame_window): add new xvisual
parameter and use it to create new window.
2003-11-15 Rob Adams <readams@readams.net>
* src/window.c (update_net_wm_type): don't set window->type_atom
here so that the type-inference code will actually be called. Fix
for #126873 from Keith Packard.
2003-11-08 Rob Adams <readams@readams.net>
* src/window.c (meta_window_move_resize_internal): configure frame
first if we grow more than we shrink combined in both dimensions.
Patch from Soren Sandmann for #108925.
2003-11-07 Rob Adams <readams@readams.net>
* src/place.c (meta_window_place): use maximize_after_placement to
automaximize in meta_window_place; avoids a problem with not
recalculating the frame geometry after auto-maximizing.
2003-11-07 Rob Adams <readams@readams.net>
* src/window.c (window_should_be_showing): show the window if it's
a transient of a dock or desktop, since otherwise such windows are
invisible in show desktop mode. Fix for #124648.
2003-11-07 Rob Adams <readams@readams.net>
* src/main.c (main): Try harder to find a theme in the event that
the theme in the preference cannot be found. Patch from Marcin
Krzyzanowski. See #125815.
* src/place.c (meta_window_place): use "visual" centering for
dialog placement and clip new dialogs to an xinerama workspace.
Fix for #118336.
2003-10-30 Havoc Pennington <hp@redhat.com>
* src/menu.c (meta_window_menu_new): patch to avoid creating
stick/unstick menu items when only one workspace, bug #116563
from Michael Terry
2003-10-25 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_notify_focus): if a window is focused
which is not either a dock or a transient in the same group as a
dock, shuffle all dock/desktop windows to the end of the MRU list
so they won't annoyingly get focus all the time. #123816
2003-10-13 Havoc Pennington <hp@redhat.com>
In the "prefs cause code complexity" department, here's a "sloppy
focus die die die" kind of moment.
* src/display.c (meta_display_grab_focus_window_button): don't
grab in sloppy focus mode, since we were dropping the grab on
window enter anyway this just removes races from the current
behavior.
* src/display.c (prefs_changed_callback): ungrab/grab on focus
mode changes, since we treat sloppy and click differently.
2003-10-12 Havoc Pennington <hp@redhat.com>
Merge reduced_resources mode patch from the branch. Offers
wireframe and no-animations.
* src/window.c (implement_showing): no animation if we are
in reduced resources mode
* src/prefs.c: add REDUCED_RESOURCES pref
* src/window.c (meta_window_update_keyboard_resize): fix to
modify grab_anchor_window_pos to grab_wireframe_rect if
appropriate instead of window->rect
* src/display.h (struct _MetaDisplay): add grab_start_serial used
to avoid responding to events that occurred prior to the grab
initialization.
Still broken in various ways, specifically EnterNotify that
occurred prior to XGrabPointer is processed as if it occurred
after.
* src/window.c (meta_window_update_keyboard_move): add this
instead of meta_window_warp_pointer() crack
* src/effects.c (meta_effects_update_wireframe): draw a kind of
grid for the wireframe, instead of just a rectangle, like twm
* src/screen.c (meta_screen_new): line width of 3 for the XOR gc
"Reduced resources" mode based on wireframe patch from
Erwann Chenede. Still pretty buggy.
* src/keybindings.c (process_keyboard_move_grab)
(process_keyboard_resize_grab): add gruesome wireframe hacks
* src/display.c (meta_display_end_grab_op): end wireframe
(meta_display_begin_grab_op): begin wireframe
* src/effects.c (meta_effects_end_wireframe)
(meta_effects_update_wireframe, meta_effects_begin_wireframe):
routines to draw the wireframe stuff
* src/window.c (window_should_be_showing): hide window when
doing wireframe, commented out as it breaks grab
* src/window.c (meta_window_refresh_resize_popup): handle wireframe
* src/screen.c (meta_screen_new): create a screen->root_xor_gc
for use in drawing wireframes
* src/frames.c (meta_frames_push_delay_exposes): repaint
everything before we delay
2003-10-11 Havoc Pennington <hp@pobox.com>
* src/display.c (meta_display_begin_grab_op): initialize
display->grab_have_pointer to FALSE, previously I think you could
get a case where we didn't have the grab and thought we did.
Bugs were reported with this happening. Of course we still have
the "why did the grab fail" problem, but it should be less
noticeable with this fixed.
2003-10-06 Rob Adams <readams@readams.net>
* src/constraints.c (constraint_onscreen_*_func): disable onscreen
resize constraints for right, left, and bottom, since there is no
way to violate onscreen constraints by resizing in these
directions and the code to implement the constraints made some
incorrect assumptions. Fix for #120701, #120756, #123165,
#123631, #123838.
2003-09-30 Havoc Pennington <hp@redhat.com>
* src/window.c (meta_window_queue_move_resize): add the moveresize
idle at META_PRIORITY_RESIZE so it runs before GTK does any
drawing, may fix bug #109211 (seem to for me)
* src/ui.h (META_PRIORITY_RESIZE): add this between GTK
resize/redraw priorities
* src/display.c (meta_display_queue_retheme_all_windows): remove
some debug spew from meta_warning
2003-07-28 Rached Ben Mustapha <rached@benmur.net>
Fix bug #118428
* src/window.c (redraw_icon): Also redraw window icon if the window
is not mapped but its frame is.
(idle_update_icon): Unset the window->update_icon_queued flag.
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/tabpopup.c (meta_ui_tab_popup_new): put a random cap on
number of characters in the title of each window, bug #109301
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/wm-tester/test-size-hints.c: a little program to test size
hints, for now just a 0x0 min size to verify bug #113320
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/async-getprop.c (async_get_property_handler): attempt to fix
this to return the data as an array of long even on 64-bit as with
XGetWindowProperty() breakage, bug #114035, credit to Gwenole
Beauchesne for tracking down.
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/xprops.c (cvtINT16toInt): fix the 64-bit check not to use
macros from the X tree that don't get set
* configure.in: check for sizes of various types
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/delete.c (meta_window_delete): don't move the focus after
you click the close button on a window. bug #108706
2003-09-29 Havoc Pennington <hp@redhat.com>
* src/main.c (find_accessibility_module): fix warnings (one was a
real bug)
* src/ui.c (meta_gdk_pixbuf_get_from_pixmap): fix warning that
probably explains remaining crash on bug #116923. Jeez, need to
use -Werror here or something.
Fix#103575, spawn child processes on proper screen.
* src/keybindings.c (error_on_command): pass --screen to
metacity-dialog
(handle_run_command): launch user command with DISPLAY reflecting
the screen you launch it from
* src/delete.c (delete_ping_timeout_func): pass --screen to
metacity-dialog
2003-09-26 Havoc Pennington <hp@redhat.com>
* src/display.c (event_callback): when focus on root window
becomes None, set it to something other than None so keybindings
keep working and print a warning about how some application sucks.
#84564
(event_callback): Fix debug spew to print focus event details
properly
(meta_display_open): when setting initial focus, always use
RevertToPointerRoot and fix the focus if it's None or PointerRoot
2003-09-26 Padraig O'Briain <padraig.obriain@sun.com>
* src/Makefile.am: Add -DMETACITY_LIBDIR to support loading of modules
* src/main.c: Add functions find_accessibility_module,
accessibility_invoke_module and accessibility_invoke
(main); Check whether GConf accessibility key is true and if so
load accessibility modules. This code is based on the libgnome code.
src/tabpopup.c (meta_ui_tab_popup_new): Set accessible role of
accessible for label containing window name to STATUSBAR so
AT can be aware of window name.
This fixes bug #120025
2003-09-22 Taneem Ahmed <taneem@bengalinux.org>
* configure.in: Added "bn" to ALL_LINGUAS.
* po/bn.po: Added Bangla translation by Dr Anirban Mitra
of Ankur group <gnome-translation@bengalinux.org>.