2002-07-05 Havoc Pennington * src/window.c (update_wm_hints): Change default value of input hint (if not specified) to true instead of false. This is what some clients assume, such as Visual SlickEdit. 2002-07-02 Havoc Pennington * src/window.c (meta_window_show_menu): use new macros to get whether we allow move/resize correct * src/frame.c (meta_frame_get_flags): use new macros to get whether we can move/resize correct, considering maximized/fullscreen for the move case. * src/window.h (META_WINDOW_ALLOWS_RESIZE, META_WINDOW_ALLOWS_MOVE): new macros * src/keybindings.c (process_keyboard_resize_grab): finish the right/left resize, patch from Jayaraj #78179. Has the same old move/resize bug, if it hits a constraint it starts to break because we move without resizing. 2002-07-02 Mark McLoughlin * src/keybindings.c: (grab_keyboard), (ungrab_keyboard): rename from {un}grab_all_keys_and_keyboard and only do an XKeyboardGrab, the XKeyGrab isn't neccessary. (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys), (meta_window_grab_all_keys), (meta_window_ungrab_all_keys): update for above change. (handle_workspace_switch): don't use a MetaWindow when workspace switching, use the root window instead. 2002-07-01 Mark McLoughlin Fix broken workspace switching from my previous commit. * src/display.c: (meta_display_begin_grab_op): don't leak a pointer grab if we fail to grab the keyboard. * src/keybindings.c: (meta_screen_grab_keys): check screen->all_keys_grabbed. (meta_screen_grab_all_keys): regrab our standard bindings if we fail. (handle_workspace_switch): revert to our previous behaviour of using the last focused window to do the grab upon. Only use the RootWindow if there isn't anything else to use. * src/screen.c: (meta_screen_new): initialise all_keys_grabbed. 2002-06-26 Mark McLoughlin Fixes not being able to tab out of a workspace which contains no windows. * src/core.c: (meta_core_begin_grab_op): upd for meta_display_begin_grab_op change. (meta_core_get_grab_frame): allow for grab_window == NULL. * src/display.[ch]: (meta_display_screen_for_xwindow): implement. (meta_display_begin_grab_op): grab on the root window if window == NULL. (meta_display_end_grab_op): use grab_screen instead of grab_window. * src/keybindings.c: (grab_all_keys_and_keyboard): split out from meta_window_grab_all_keys. (ungrab_all_keys_and_keyboard): split out from meta_window_ungrab_all_keys. (meta_screen_grab_all_keys), (meta_screen_ungrab_all_keys): implement grabbing and ungrabbing on the root window. (meta_display_process_key_event): if window == NULL, check the event is from the same screen and process. Only happens with workspace switching. (process_workspace_switch_grab): kill window param and don't use grab_window. (handle_tab_forward), (handle_begin_move): upd for meta_display_begin_grab_op change. (handle_workspace_switch): remove brokeness. Always do the grab op on the root window. * src/keybindings.h: add meta_screen_{un}grab_all_keys. * src/window.c: (meta_window_client_message), (menu_callback): update for meta_display_begin_grab_op change. 2002-06-25 Mark McLoughlin * src/fixedtip.c: (meta_fixed_tip_show): * src/frames.c: (meta_frames_new): * src/tabpopup.c: (meta_ui_tab_popup_new): s/gdk_get_default_display/gdk_display_get_default/ s/gdk_get_default_screen/gdk_screen_get_default/ 2002-06-25 Mark McLoughlin * src/themes/Crux/active-border-top-left-border.png: * src/themes/Crux/active-border-top-right-border.png: * src/themes/Crux/active-top-left-corner.png: * src/themes/Crux/active-top-mid-left-border.png: * src/themes/Crux/active-top-mid-right-border.png: * src/themes/Crux/active-top-right-corner.png: * src/themes/Crux/inactive-border-top-left-border.png: * src/themes/Crux/inactive-border-top-right-border.png: * src/themes/Crux/inactive-top-left-corner.png: * src/themes/Crux/inactive-top-mid-border.png: * src/themes/Crux/inactive-top-right-corner.png: * src/themes/Crux/metacity-theme-1.xml: added support for border only windows. 2002-06-24 James M. Cape * src/themes/Esco/metacity-theme-1.xml: Added some stuff to the window buttons, so they use the ACTIVE bg/fg. 2002-06-25 Mark McLoughlin * src/display.[ch]: (meta_display_open): src/screen.c: (set_supported_hint), (set_work_area_hint): Its _NET_WORKAREA, not _NET_WM_WORKAREA silly :-) 2002-06-25 Mark McLoughlin * src/screen.[ch]: (update_num_workspaces), recalc workarea hint when new workspaces created. Fixes bug that workarea not calculated until first non-dock window is mapped. (set_work_area_hint), (set_work_area_idle_func), (meta_screen_queue_workarea_recalc): move all this stuff from workspace.c. * src/workspace.c: (meta_workspace_invalidate_work_area): use meta_screen_queue_workarea_recalc. 2002-06-23 Gediminas Paulauskas * src/themes/Bright/metacity-theme-1.xml: Update with border-only window stuff from Atlanta. 2002-06-22 James M. Cape * src/themes/Esco/metacity-theme-1.xml: Update for "border" frame stuff, minor button/spacing improvements. 2002-06-22 Havoc Pennington Partially fix Jacob's SM bugs. * src/window.c (meta_window_apply_session_info): restore the extra stuff we're saving, except stack position I didn't figure out yet. * src/session.c: save stack position, minimized, maximized, in the session file. 2002-06-22 Havoc Pennington * src/workspace.c (set_number_of_spaces_hint): do nothing if screen is being unmanaged, we don't want to blow away state, we want to remember it for the next window manager. 2002-06-22 Havoc Pennington * src/workspace.c (meta_screen_ensure_workspace_popup): rename from meta_workspace_ensure_tab_popup, and use workspace->name instead of a hardcoded name 2002-06-22 Havoc Pennington * src/xprops.c (meta_prop_get_utf8_list): new utility function * src/display.c (meta_display_open): _NET_DESKTOP_NAMES atom (event_callback): update workspace names when the property changes * src/screen.c (set_supported_hint): "support" _NET_DESKTOP_NAMES (nothing to do really) 2002-06-21 Havoc Pennington Theme breakage! Themes have to implement "border" frames now, see Atlanta for an example. Fixes #84285 * src/tools/metacity-window-demo.c (do_appwindow): add a border-only window * src/window.c (update_mwm_hints): read border only from the MWM hints * src/window.h (struct _MetaWindow): add border_only flag * src/core.c (meta_core_get_frame_type): report border type if required * src/common.h (enum): add META_FRAME_TYPE_BORDER 2002-06-20 Mark McLoughlin * src/window.c: (meta_window_visible_on_workspace): sticky windows aren't visibile on all screens. Check the workspace is on the same screen as the window. * src/workspace.c: (meta_workspace_list_windows): use meta_window_visible_on_workspace here. 2002-06-19 Havoc Pennington * src/display.c (meta_resize_gravity_from_grab_op): handle UNKNOWN keyboard resizing state * src/keybindings.c (process_keyboard_resize_grab): implement keyboard resize key handling somewhat (only vertical resize works, left/right arrow not implemented, and visual feedback of the edge we're resizing isn't implemented) * src/window.c (menu_callback): start keyboard resize grab when it's chosen from the menu 2002-06-17 Havoc Pennington * src/stack.c (meta_stack_get_default_focus_window): don't use a minimized window as the next focus window, patch from blackc@speakeasy.net 2002-06-17 Havoc Pennington * src/place.c (find_next_cascade): increase the cascade threshold a bit. (find_first_fit): implement a somewhat lame first fit algorithm 2002-06-17 Havoc Pennington * src/window.c (meta_window_change_workspace): fix from Gaute Lindkvist #82977 for unsticking windows 2002-06-17 Frederic Crozat * src/metacity.schemas.in: associate close_window keybinding to Alt-F4 2002-06-16 Havoc Pennington * src/main.c (main): fix spelling error, #85452 2002-06-15 Havoc Pennington * src/keybindings.c (meta_display_process_key_event): don't pass a null string to printf * src/display.c (key_event_description): don't pass a null string to printf * src/keybindings.c (meta_set_keybindings_disabled): allow enable/disable keybindings regardless of debug mode. 2002-06-15 Havoc Pennington * src/draw-workspace.h, src/draw-workspace.c: workspace-drawing code factored out of libwnck, needs wiring up to tabpopup.c (which is kind of annoying since you have to get the list of workspaces and MetaWindow across the barrier between the GDK-aware and non-GDK-aware sides of metacity) 2002-06-14 Havoc Pennington * src/window.c (meta_window_show): always focus new windows, trying to be smart about it was a flop. 2002-06-14 Jayaraj Rajappan * src/delete.c (io_from_ping_dialog): Check for NULL string before calling strlen(). Fixes the core dump issue reported in #84873. 2002-06-13 Anders Carlsson * src/theme.c (meta_frame_layout_calc_geometry): Set client height as 0 when the window actually is shaded, not the other way around. 2002-06-12 Havoc Pennington * src/theme.c (meta_frame_layout_calc_geometry): when a window is shaded, don't include client height in the height calculation. * src/workspace.c (meta_workspace_get_neighbor): apply fix from Mads Villadsen for the Up arrow key, #84582 2002-06-12 Havoc Pennington * src/theme.c (meta_frame_style_draw): Draw the buttons right before the "overlay" piece. 2002-06-12 Jayaraj Rajappan * src/tools/metacity-properties.glade: accessibility work for metacity-properties capplet. Set appropriate atk relations. Fixes bug #84749 2002-06-11 Havoc Pennington * src/window.c (meta_window_show): allow dialogs to steal focus from panels/desktop 2002-06-10 Jayaraj Rajappan * src/fixedtip.c: include - fix for #83960 2002-06-10 Erwann Chenede - * src/keybindings.c : (handle_close_window, handle_minimize_window) verify the active window has the appropriate close/minimize function before closing or minimizing the window. 2002-06-09 Havoc Pennington * configure.in: 2.3.987 2002-06-09 Havoc Pennington * src/delete.c (delete_ping_timeout_func): add G_IO_NVAL to watch condition, patch from Gustavo Giraldez, avoids another 100% CPU thingy 2002-06-09 Havoc Pennington * src/place.c (meta_window_place): don't run constrain_placement on windows we allow to go anywhere (docks, etc.). Fixes positioning of panel windows in certain cases. 2002-06-09 Havoc Pennington * src/frames.c (meta_frames_button_press_event): don't raise/focus the window if minimize/close are clicked, patch from Gaute Lindkvist #75460 2002-06-08 Havoc Pennington Cleanups to workspace popup patch. Space before all parens in a couple places. * src/prefs.c (meta_prefs_get_keybinding_action): fix brace indentation, and use while instead of for loop. Take a "mask" argument to avoid ambiguity issues. * src/keybindings.c (handle_workspace_switch): rename from handle_workspace_forward since there's no directionality here (handle_workspace_switch): add a FIXME about how screwed it is that we need a window in order to do our grab. Should be able to grab on a dummy window like no_focus_window or the root window. (process_workspace_switch_grab): rename from tab_grab for clarity, no tab involved here. * src/common.h (enum): have only one grab op for all workspace switching directions, instead of one for each. 2002-06-08 Havoc Pennington Apply big patch from blackc@speakeasy.net adding a popup window to the Ctrl+Alt+arrows shortcuts. #83940 2002-06-08 Havoc Pennington * src/screen.c (meta_screen_new): select key press/release on the display->no_focus_window, another attempted fix for not getting keybindings when no window is focused. Still doesn't seem to work though. I don't get what's going wrong. (meta_create_offscreen_window): new function, used instead of XCreateSimpleWindow so we get override redirect offscreen windows. 2002-06-08 Havoc Pennington * src/display.c (meta_display_open): set net_supporting_wm_check in addition to win_supporting_wm_check, patch from JeyaSudha for #83365 * src/screen.c (set_wm_check_hint): remove setting win_supporting_wm_check on leader window here, done already in display.c 2002-06-08 Havoc Pennington * src/keybindings.c (meta_window_ungrab_keys): set keys_grabbed to FALSE, patch from Jayaraj for #81857 2002-06-08 Havoc Pennington * src/xprops.c (meta_prop_get_utf8_string): don't die on bad atom name * src/display.c (meta_display_close): don't unmanage windows here, do it in screen_free and then closing the display unmanages windows as a side effect of unmanaging the screen (meta_display_unmanage_screen): new function (process_selection_clear, process_selection_request): handle selection stuff (meta_spew_event): don't crash on client message containing invalid atom (meta_spew_event): don't crash on property notify with invalid atom * src/main.c (main): add --replace option to replace existing window manager. * src/screen.c: implement holding manager selection. * src/display.c (meta_display_open): add new selection-related atoms. 2002-06-08 Havoc Pennington * src/screen.c (meta_screen_new): select keypress/keyrelease events on root window, this may fix the bug where keybindings didn't work if you didn't have a focused window. 2002-06-08 Havoc Pennington * src/main.c (main): call meta_session_shutdown when exiting cleanly * src/session.c (meta_session_shutdown): function to change use to RestartIfRunning (meta_session_init): change normal restart hint to RestartImmediately 2002-06-08 Havoc Pennington Yeah I know maximization is broken, I'm too tired to fix it. Probably because of the change to update_struts() that was supposed to fix the 100% CPU bug. * src/place.c (meta_window_place): don't run docks and things through the placement algorithm. Thought it might fix metacity-window-demo but it didn't. * src/window.c (constrain_size): only get work area when needed (meta_window_new): init the do_not_cover field 2002-06-08 Havoc Pennington * src/screen.c (meta_screen_get_xinerama_for_window): short-circuit the "only one xinerama" case, and use outer rect of window instead of window->rect, so we get root window coords. * src/theme.c (meta_frame_layout_get_borders): if fullscreen all frame edges are zero-width. * src/frame.c (meta_frame_get_flags): init fullscreen flag. * src/common.h (enum): add META_FRAME_FULLSCREEN frame flag * src/place.c: fix up calls to meta_window_get_work_area * src/window.c (meta_window_get_work_area): add an arg for whether the work area is for the screen or the xinerama subscreen. (constrain_position): fix up calls to meta_window_get_work_area (constrain_size): ditto * src/screen.c (meta_screen_new): add METACITY_DEBUG_XINERAMA environment variable which simulates xinerama on a single head. 2002-06-08 Havoc Pennington * src/window.c (update_struts): only invalidate things if the struts actually change, since the panel likes to set them over and over. May fix the infinite loop that caused 100% CPU usage. 2002-06-07 Havoc Pennington * src/screen.c (meta_screen_new): use XineramaIsActive() not XineramaQueryExtension() 2002-06-07 Havoc Pennington * src/screen.c (meta_screen_get_current_xinerama): don't return null on non-multihead 2002-06-06 Havoc Pennington * src/screen.c (meta_screen_get_current_xinerama): implement * src/place.c (meta_window_place): cascade windows on the active Xinerama screen * src/window.c (meta_window_move_resize_internal): strip out the #if 0 cruft about guessing fullscreen mode (constrain_position, constrain_size): fullscreen/maximize to the Xinerama head, not the whole screen (meta_window_get_work_area): autocreate struts at the Xinerama physical screen edges for the screen the window is on. * src/screen.c (meta_screen_get_xinerama_for_window): someone snuck in a for loop, fix it. ;-) 2002-06-06 James M. Cape * src/themes/Esco/metacity-theme-1.xml: Increase the border size of the buttons so they aren't quite so huge on my box. Also get a *little* closer to finally fixing the horizontal line behind the icon. It now works decently with common font sizes (in pixels). 2002-06-05 Havoc Pennington * src/theme.c (meta_color_spec_new_from_string): parse "shade/foo/factor" as a color (colorize_pixbuf): remove the unused hsv_to_rgb and vice-versa stuff, add the gtk_style_shade stuff. (meta_color_spec_render): render the shaded color spec * src/theme.h (struct _MetaColorSpec): add "shade" mode to MetaColorSpec. 2002-06-04 Seth Nickell * src/metacity.desktop.in: Add X-GnomeWMSettingsLibrary to desktop file to support new Window capplet. 2002-06-04 Havoc Pennington * src/window.c (update_wm_hints): fix for how we read the input hint, from Hidetoshi Tajima (meta_window_show): from Hidetoshi, don't autofocus windows with input = FALSE wm_take_focus = FALSE when they first appear. We do allow these windows to be focused (so keynav works), but they don't get focused automatically. Now how do we keep them out of the task list? 2002-06-04 Gustavo Giráldez * src/theme.c (draw_op_as_pixbuf): Use icon's instead of image's fill_type when type is META_DRAW_ICON. 2002-06-03 Havoc Pennington * src/window.c (meta_window_new): don't automatically fullscreen things opened fullscreen, because there's no GUI to un-fullscreen them. 2002-06-03 Havoc Pennington * src/theme-parser.c (parse_aspect_ratio): fix error message about bad aspect ratio name. 2002-06-03 Havoc Pennington * src/themes/Esco/metacity-theme-1.xml: test button aspect ratio instead of hardcoded button size, James feel free to revert if you don't like it this way. * src/theme-parser.c: parse the aspect_ratio element for button aspect ratios. * src/theme.h (struct _MetaFrameLayout): allow button sizes to be given as an aspect ratio derived from the titlebar height, instead of as a fixed size. * src/theme.c (meta_frame_layout_validate): validate new button sizing parameters * src/theme.c (meta_frame_layout_calc_geometry): use new button layout params Mon Jun 3 15:12:11 2002 HideToshi Tajima * configure.in (METACITY_LIBS): put -lXext into SHAPE_LIBS 2002-06-03 Kjartan Maraas * src/tools/metacity-properties.desktop.in: Someone forgot to mark the two strings in here for translation :) 2002-06-02 Havoc Pennington * configure.in: 2.3.610 2002-06-01 Havoc Pennington * src/frames.c (meta_frames_finalize): move the remove_listener to finalize instead of destroy, thanks to Jayaraj for tracking down the bug. 2002-06-01 Havoc Pennington * src/session.c: add some missing \n (meta_session_init): remove the #if 0 interact callback from our initial SmcOpenConnection call, this arg to SmcOpenConnection doesn't exist. 2002-06-01 Havoc Pennington * src/session.c: put in more debug spew about the session 2002-05-30 Havoc Pennington * src/Makefile.am (INCLUDES): use $(prefix)/@DATADIRNAME@/locale for localedir to work with Solaris native gettext, patch from Hidetoshi Tajima * src/tools/Makefile.am: ditto 2002-05-31 Havoc Pennington * src/theme.c: add MetaImageFillType and implement TILE in addition to the existing SCALE * src/theme.h (struct _MetaDrawOp): remove no-longer-used "alpha" field 2002-05-31 Havoc Pennington * src/theme.c (multiply_alpha): now just uses meta_gradient_add_alpha (draw_op_as_pixbuf): implement alpha gradients for tint, gradient, and image draw ops, so I can implement garrett's stuff. * src/gradient.c (meta_gradient_add_alpha): new function to multiply the alpha channel of a pixbuf by an alpha gradient 2002-05-30 Havoc Pennington * src/main.c (main): verbose-log on startup whether we were compiled with various extensions * src/display.c (meta_display_queue_retheme_all_windows): reapply shape mask when changing themes, sucks to do it here though, makes theme changing slower. Needs fixing. * src/theme-parser.c (parse_toplevel_element): parse rounded corner options to frame_geometry * src/frames.c (meta_frames_apply_shapes): apply rounded corners if requested by the theme * configure.in (HAVE_SHAPE): check for shape extension 2002-05-30 Stephen Browne * src/tools/metacity-properties.c: Some day I'll make all my changes in one commit :) Needed to rip out code for adding icon to the dialog since it was removed from teh galde file in my previous change. 2002-05-30 Stephen Browne * src/tools/metacity-properties.glade: Some UI changes demanded by Pat and Calum. Make Close default response Change mnemonic for Click so as not to clash with Close 2002-05-30 Stephen Browne * src/tools/metacity-properties.glade: changed window title to match other control center dialogs 2002-05-29 Havoc Pennington * src/session.c (meta_session_init): improve error about failing to open session manager. (shutdown_cancelled_callback): send SmcSaveYourselfDone when we get cancelled (interact_callback): implement an interact callback that complains about lame clients that can't be saved. Still somewhat buggy in that it sends InteractDone before the user has closed the dialog. 2002-05-29 Havoc Pennington * src/tools/metacity-mag.c: add a magnifier I'm using when making themes. Not installed. * src/tools/metacity-properties.c: reindentation, show window, add copyright info. * src/tools/metacity-properties.glade: make main window !visible on startup, to avoid funkiness. 2002-05-29 Jacob Berkman * src/tools/Makefile.am (EXTRA_DIST): dist .desktop.in files 2002-05-29 Stephen Browne New simple metacity-properties dialog to configure focus mode and auto raise. * configure.in: added build support for metacity-properties * src/tools/Makefile: more build stuff * src/tools/metacity-properties.c: added these files * src/tools/metacity-properties.glade: * src/tools/metacity-properties.desktop.in: * src/tools/metacity-properties.png: 2002-05-29 Havoc Pennington * src/window.c (meta_window_move_resize_internal): add code to also guess that client wants to come out of fullscreen, then #if 0 the whole deal, I'm not sure it's such a good idea. 2002-05-29 Havoc Pennington * src/window.c (meta_window_move_resize_internal): guess if a window meant to be fullscreen, and if so put it in that state. 2002-05-28 Havoc Pennington * src/window.c (redraw_icon): handle missing frame, prevents segv with undecorated windows. #83298 2002-05-28 Havoc Pennington Patch from Erwann Chenede for raise_or_lower keybinding * src/display.c, src/common.h: POINT_IN_RECT moved to a common location, removed from here (meta_rectangle_intersect): move here and make it public * src/prefs.c: add raise_or_lower keybinding * src/stack.c (meta_stack_get_below, meta_stack_get_above): add an arg to only get windows within the same layer * src/keybindings.c (handle_raise_or_lower): add handling for a "raise window if obscured, else lower" keybinding 2002-05-28 Havoc Pennington * src/window.c (meta_window_configure_request): handle CWStackMode in configure requests (meta_window_new): if a window is opened at 0,0 and screen size, put it in the fullscreen state. (meta_window_new): remove old code that set the window position to 0,0 if PPosition/USPosition unset, that will be handled by whether we place the window or not. 2002-05-28 Abel Cheung * configure.in: Added "zh_TW" to ALL_LINGUAS. 2002-05-27 Havoc Pennington * src/window.c (meta_window_new): search for the window's screen by root window instead of Screen*, maybe it will help with bug #82664 2002-05-27 Kjartan Maraas * autogen.sh: Hook up intltoolize here. * configure.in: Initialize intltool. * src/metacity.schemas.in: Add this. * src/metacity.desktop.in: Add this too * src/Makefile.am: Hook up intltool support for .schemas and .desktop. * Makefile.am: Dist the intltool files. 2002-05-27 Anders Carlsson * src/themes/Gorilla/metacity-theme-1.xml: Apparently someone thinks my name is Anders Carlsom. Well, it's not. (Thanks to Carl-Johan Kjellander for noticing.) 2002-05-26 James M. Cape * src/themes/Esco/metacity-theme-1.xml: Remove borders from Esco theme as well (didn't know you could), apparently fixed the problem where the spacing between the icon & the title got larger as the fontsize went up. 2002-05-26 Havoc Pennington * src/themes/Atlanta/metacity-theme-1.xml: totally drop the borders off of maximized windows. 2002-05-26 Havoc Pennington Patch from Gaute Lindkvist so you can't move the panel or desktop to only one workspace. * src/keybindings.c (handle_move_to_workspace): don't allow moving window to another space if the window is always_sticky * src/window.c (recalc_window_features): set the always_sticky field for desktop/dock windows. (meta_window_show_menu): disable unsticking always sticky windows via the menus * src/menu.c (meta_window_menu_new): disable workspace items if requested 2002-05-26 Matthias Warkus * po/de.po: Added. * configure.in: de added to ALL_LINGUAS 2002-05-25 Erwann Chenede - * src/keybindings.c (rebuild_screen_binding_table, rebuild_window_binding_table, meta_change_keygrab): allow key grabbing for unmodified keys (e.g F1, etc) fix #82630 2002-05-25 Anders Carlsson * src/place.c: (get_vertical_edges), (get_horizontal_edges): Take Xinerama screen edges into consideration. * src/screen.c: (meta_rectangle_intersect), (meta_screen_get_xinerama_for_window): * src/screen.h: Add a new function that returns the xinerama monitor that a window is on. 2002-05-24 Havoc Pennington * src/window.c (menu_callback): follow windows to their new workspace * src/keybindings.c (handle_move_to_workspace): follow windows to their new workspace 2002-05-24 Havoc Pennington * src/metacity.schemas: add minimize window binding * src/keybindings.c (handle_minimize_window): add minimize keybinding 2002-05-24 Havoc Pennington * src/window.c (meta_window_show): change how focusing windows on initial map works, so that we only steal focus from our transient parent or from a panel/desktop, never from other normal windows. 2002-05-24 Havoc Pennington * src/window.c (meta_window_configure_request): modify to ignore PPosition and USPosition once the window has been placed 2002-05-24 Anders Carlsson * src/window.c: Redraw the window frame when the icon changes. Fixes #78543, reported by Kang Jeong-Hee. 2002-05-23 Havoc Pennington * src/display.c (event_callback): also filter out LeaveNotify with NotifyInferior 2002-05-23 Jayaraj Rajappan * src/display.c (event_callback): fix for bugzilla bug #72314, filter out LeaveNotify caused by grabs when in mouse focus mode. 2002-05-23 Havoc Pennington * src/metacity.schemas: clean up the font preference * src/prefs.c: font pref * src/frames.c: pay attention to the font pref 2002-05-23 Havoc Pennington Crack from Erwann * src/metacity.schemas: add autoraise crackrock * src/display.c (event_callback): autoraise window if autoraise is enabled * src/prefs.c: autoraise crack 2002-05-21 Havoc Pennington * src/window.c (constrain_position): fix positioning in fullscreen mode, patch from Gustavo Giráldez 2002-05-20 Alessio Frusciante * configure.in: Added Italian to ALL_LINGUAS. 2002-05-20 Pablo Saratxaga * configure.in: Added Catalan (ca) and Azeri (az) to ALL_LINGUAS 2002-05-17 Havoc Pennington * configure.in: 2.3.377 2002-05-16 Havoc Pennington * src/workspace.c (meta_workspace_get_neighbor): fix it, maybe 2002-05-16 Havoc Pennington * src/window.c (constrain_position): lock desktop to position 0,0 2002-05-16 Havoc Pennington * src/window.c (meta_window_show): don't focus dock, desktop, etc. windows on initial map, only windows that should have focus. 2002-05-15 Havoc Pennington * src/workspace.c (meta_workspace_get_neighbor): use the layout information to figure out up/down neighbors * src/display.c (event_callback): catch propertynotify on _NET_DESKTOP_LAYOUT * src/screen.c (meta_screen_update_workspace_layout): keep track of the layout of workspaces as set by the pager 2002-05-15 James M. Cape * src/themes/Esco/metacity-theme-1.xml: Minor tweak to minimize button. 2002-05-14 Havoc Pennington * src/themes/Makefile.am (THEMES): add Esco theme from James Cape 2002-05-12 Havoc Pennington * src/place.c (meta_window_place): move pposition/usposition honoring code into here, instead of putting it in window.c. Makes focusing new windows work, and cleans things up a bit. #81585 2002-05-12 Havoc Pennington * src/main.c (main): turn on --g-fatal-warnings if METACITY_G_FATAL_WARNINGS env variable is set. 2002-05-11 Anders Carlsson * src/display.c: (find_tab_forward), (find_tab_backward), (meta_display_get_tab_next): * src/display.h: * src/keybindings.c: (handle_tab_forward), (handle_focus_previous): Add screen argument to meta_display_get_tab_next, since we only want windows on the same screen to appear in the tab chain. * src/screen.c: (meta_screen_new): Or the event mask with existing events since gtk+ may listen to certain events and we don't want to disable those events. (meta_screen_ensure_tab_popup): * src/tabpopup.c: (meta_ui_tab_popup_new): * src/tabpopup.h: Add a screen number argument to meta_ui_tab_popup_new so we can position the popup on the correct screen. 2002-05-11 Havoc Pennington * src/main.c: include locale.h, fix from Hidetoshi Tajima * src/window.c (meta_window_new): disable show desktop mode when a new window is managed. 2002-05-11 Havoc Pennington * src/fixedtip.c (meta_fixed_tip_show): keep the tooltip on the screen horizontally, #76825 * src/window.c (meta_window_handle_mouse_grab_op_event): end grab op _after_ doing the final update of the move or resize. Hopefully I didn't have a reason for the order I was using before. 2002-05-10 Havoc Pennington * src/tools/metacity-window-demo.c: add override redirect test window * src/stack.c (raise_window_relative_to_managed_windows): new function, used to avoid moving windows above override redirect popup windows. * src/display.c (event_callback): don't lower panels on LeaveNotify if they have focus, #70895 2002-05-10 Havoc Pennington * src/window.c (constrain_position): when maximizing/fullscreening something with a grid, like a terminal, center it in the maximization area in case it can't fill the whole area. #70554 * src/main.c (main): use g_strerror() to get proper UTF-8. 2002-05-10 Havoc Pennington * src/keybindings.c (reload_modmap): put LockMask into the ignored_modifier_mask so that caps lock doesn't mess up keybindings. 2002-05-10 Havoc Pennington * src/window.c (meta_window_focus): if window is not mapped after the calc_showing, don't focus it, it's probably on another workspace or something. 2002-05-09 Havoc Pennington * src/frames.c (show_tip_now): DefaultScreen() returns the screen number not Screen* * src/frame.c (meta_frame_sync_to_window): immediately repaint frame whenever we resize it, if we're inside a grab operation. * src/frames.c (meta_frames_repaint_frame): new function * src/window.c (meta_window_new): initialize window's colormap (meta_window_notify_focus): install the colormap for a window when it gets focus, uninstall on unfocus. * src/window.h (struct _MetaWindow): store window's colormap * src/display.c (event_callback): note changes to window colormap * src/frame.c (EVENT_MASK): add ColormapChangeMask 2002-05-09 Havoc Pennington * src/display.c (event_callback): make Alt+button2 do a resize 2002-05-08 Anders Carlsson * src/fixedtip.c (meta_fixed_tip_show): #ifdef out call to gtk_window_set_screen, reported by Erwann Chenede. 2002-05-08 Anders Carlsson * configure.in: * src/display.c: (meta_display_open): * src/fixedtip.c: (meta_fixed_tip_show): * src/fixedtip.h: * src/frames.c: (meta_frames_new), (show_tip_now): * src/frames.h: * src/menu.c: (meta_window_menu_new): * src/ui.c: (meta_ui_new): Add multi-screen support. Also add patch by Erwann Chenede to make tooltips appear on the correct screen. 2002-05-07 Anders Carlsson * src/workspace.c (set_work_area_hint): Doh, only update the tmp pointer when the screen matches. Fixes a segfault when running with multiple screens. * src/display.c: (meta_display_open), (event_callback), (meta_display_update_show_desktop_hint): * src/display.h: * src/screen.c: (set_supported_hint): Fix atom name; it's _NET_SHOW_DESKTOP, not _NET_WM_SHOW_DESKTOP. * src/frames.c: (meta_frames_unmanage_window): Restore the mouse cursor to default when unmanaging a window. 2002-05-06 Anders Carlsson * src/display.c: (set_utf8_string_hint): Fix an off-by-one error. (meta_display_open), (event_callback), (meta_display_update_show_desktop_hint), (meta_display_show_desktop), (meta_display_unshow_desktop): * src/display.h: * src/screen.c: (set_supported_hint): Add support for _NET_WM_SHOW_DESKTOP, both as a message and as a root window property. 2002-05-05 Havoc Pennington * src/window.c (meta_window_unminimize): on unminimize, queue calc_showing on all transients (meta_window_activate): on activate, unminimize all a window's ancestors, not just the window itself. * src/workspace.c (set_work_area_hint): don't increment "tmp" by 16 unsigned long, increment by 4 * src/window.c (meta_window_free): if a window isn't minimized, restore its WM_STATE to NormalState instead of IconicState, since IconicState on initial window map means that the window should be minimized. * src/workspace.c (meta_workspace_invalidate_work_area): queue an idle to recompute the work area hint. (set_work_area_hint): we need 4*num_workspaces ints, not just num_workspaces. * src/screen.c (meta_screen_new): add work_area_idle field, handle it on screen shutdown * src/common.h (META_PRIORITY_PREFS_NOTIFY, META_PRIORITY_WORK_AREA_HINT): define some idle priorities * src/window.c (meta_window_calc_showing): hide windows if their parent window is minimized (meta_window_minimize): also queue_calc_showing on all transients of the window being minimized * src/place.c (constrain_placement): function to apply placement-time-only constraints, such as "not off the left of the screen" (meta_window_place): put dialogs down a bit over their parent, not right at the top. (meta_window_place): when centering a dialog, center it on the current xinerama screen, rather than the entire screen. * src/screen.c (meta_screen_get_current_xinerama): new function, but not implemented 2002-05-04 Havoc Pennington * src/frames.c (meta_frames_paint_to_drawable): chop out the portion of the region that's outside the screen. * src/core.c (meta_core_get_screen_size): new function (meta_core_get_frame_extents): new function 2002-05-04 Havoc Pennington * src/frames.c (meta_frames_init): disable automatic GTK double buffering, since it resulted in gigantic backing pixmaps the size of the whole screen. (meta_frames_paint_to_drawable): change to take a region argument; punch the client area out of the expose region, then iterate over rectangles in the region and draw each, manually doing begin_paint_rect. Results in 4 long thin backing pixmaps per frame repaint, instead of one large backing pixmap. Suggested by Owen. 2002-05-05 Bastien Nocera * src/workspace.c: (meta_workspace_get_neighbor): Wrap-around workspaces (ie. when on the last workspace, "switch_to_workspace_right" goes back to the first one) 2002-05-05 Anders Carlsson * src/metacity.schemas: Fix a spelling error and change switch_to_workspace_up and switch_to_workspace_down to use Ctrl+Alt since Nautilus uses Alt now. 2002-05-04 Havoc Pennington * src/window.c (update_net_wm_type): correctly print things if the type_atom is unset (meta_window_new): with workarounds disabled, always allow self-placement for windows with PPosition or USPosition set. 2002-05-03 Havoc Pennington * src/Makefile.am: fix for automake 1.5, patch from Tomasz Kloczko 2002-05-03 Laszlo Peter * configure.in: add the X libs to METACITY_MESSAGE_LIBS and METACITY_WINDOW_DEMO_LIBS 2002-05-02 Havoc Pennington * README: updates * configure.in: 2.3.233 2002-05-02 Bastien Nocera * src/metacity.schemas: change the default for switch_to_workspace_* to be arrow as just arrow collides with some apps (especially web browsers) 2002-05-01 Havoc Pennington * src/screen.c (meta_screen_new): Xlib doesn't like NULL for out arguments; fix for #80472 from lbedford 2002-04-30 Havoc Pennington * src/keybindings.c: finish mopping up mode_switch_mask field * src/display.h (struct _MetaDisplay): remove mode_switch_mask field 2002-04-30 Havoc Pennington * src/window.c (recalc_window_features): don't try to decorate toolbars. * src/tools/metacity-window-demo.c: add menu and toolbar tests * src/place.c (meta_window_place): only dialogs should be centered over parent, not anything with transient for set. * src/window.c (meta_window_configure_request): become more fascist about window positioning if workarounds are disabled, and less fascist if they are enabled. * src/metacity.schemas: add a "disable_workarounds" option. Kind of crack-smoking. But we just can't get all applications fixed. And I need no-workarounds mode to monitor which apps are broken and what needs fixing in specs. * src/window.c (meta_window_configure_request): always allow windows to resize themselves * src/keybindings.c (reload_modmap): don't filter out Mode_switch, apparently some people bind window manager shortcuts to that. 2002-04-30 Havoc Pennington * src/window.c (constrain_position): oops, fix maximization. Pointed out by Gustavo Giráldez Tue Apr 30 06:24:09 2002 Jonathan Blandford * src/menu.c: give Maximize/Unmaximize and Shade/Unshade the same mnemonic for consistency's sake. 2002-04-29 Havoc Pennington * src/window.c (TITLEBAR_LENGTH_ONSCREEN): require 36 pixels onscreen so you typically get a sliver of titlebar, suggested by tigert. Should still fix this to consider actual theme geometry. (constrain_position): change to allow movement off the left 2002-04-29 Havoc Pennington * src/display.c (event_callback): always raise windows on focus click, regardless of focus mode. 2002-04-29 Havoc Pennington * configure.in: 2.3.144 2002-04-29 Havoc Pennington * src/ui.c (meta_ui_init): don't leak the PangoContext 2002-04-28 Anders Carlsson * src/display.c: (meta_display_open): * src/display.h: * src/screen.c: (set_supported_hint): * src/workspace.c: (set_number_of_spaces_hint), (set_workarea_hint): Add support for setting the _NET_WM_WORKAREA hint. No code does it yet though. 2002-04-28 Havoc Pennington * README: remove caveats about keybindings * src/metacity.schemas: add schemas for all the keybindings. * src/window.c (meta_window_activate): if in "show desktop" mode when a window is activated, leave show desktop mode. So e.g. when you click on a task in the task list, show desktop mode will be turned off. * src/workspace.c (meta_workspace_get_neighbor): new function that doesn't quite work yet (needs support for getting workspace layout from the pager) * src/prefs.c: keybindings stuff * src/keybindings.c: make keybindings configurable * src/ui.c (meta_ui_parse_accelerator): new function 2002-04-25 Havoc Pennington * metacity.spec: fix to install gconf schemas 2002-04-25 jacob berkman * src/session.c (load_state): g_file_get_contents() takes a gsize not int (fixes bus error on 64-bit platforms) 2002-04-22 Havoc Pennington * src/main.c (main): call setlocale ourselves because due to a GLib bug that sticks us in A