summaryrefslogtreecommitdiff
path: root/src/stack.c
Commit message (Collapse)AuthorAgeFilesLines
* Add support for _NET_WM_USER_TIMEElijah Newren2004-06-241-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* don't promote due to transiency; we handle that elsewhere now.Rob Adams2004-03-021-94/+45
| | | | | | | | | | | | | 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
* Revert 2/27 patch for layer promotion.Rob Adams2004-02-281-83/+32
| | | | | | 2004-02-28 Rob Adams <readams@readams.net> Revert 2/27 patch for layer promotion.
* Handle layer promotion of transient descendants of layer-promoted windowsRob Adams2004-02-281-32/+84
| | | | | | | | | | | | | | | | | | | | | | 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.
* put windows with wm_state_below at the bottom. Make this higher priorityRob Adams2003-08-191-3/+5
| | | | | | | | 2003-08-19 Rob Adams <robadams@uclu.edu> * src/stack.c (get_standalone_layer): put windows with wm_state_below at the bottom. Make this higher priority than full screen layer; see #120238.
* Update window shaking loose so that the window is moved to the pointer andRob Adams2003-07-281-2/+6
| | | | | | | | | | | | | | | | | | | | | | 2003-07-27 Rob Adams <robadams@ucla.edu> * src/window.c (update_move): Update window shaking loose so that the window is moved to the pointer and certain drag state is properly restored once windows "reattach". Fix for #115000 based on the patch by Jurg Billeter. * src/screen.c (meta_screen_resize): Invalidate work areas after an xrandr screen size update. Fix for #117230. * src/stack.c (window_is_fullscreen_size): Check the bottom corner of the window in addition to the top corner. Fix for #118194. * src/constraints.c (meta_window_constrain): Support aspect ratio hints in the new constraints code. Fix for #113798. * src/tools/metacity-window-demo.c (toggle_aspect_ratio): toggle the aspect ratio hints to force a 16:9 aspect ratio. (do_appwindow): add a button to toggle aspect ratio.
* chdir to the user's home directory on startup. See #113755.Rob Adams2003-05-291-7/+19
| | | | | | | | | | | | | | | 2003-05-29 Rob Adams <robadams@ucla.edu> * src/main.c (main): chdir to the user's home directory on startup. See #113755. * src/stack.c (get_standalone_layer): a window should be in the fullscreen layer if it or any of its transient descendants are focused or expecting the focus and it is either fullscreen or fullscreen sized. Fix for #104369. * src/stack.c (is_focused_foreach): foreach used by get_standalone_layer to find focused transient descendants.
* Should fix #108108, #106217, tracked down by Owen Taylor and FredericHavoc Pennington2003-03-171-26/+23
| | | | | | | | | | | | | | | | | | 2003-03-11 Havoc Pennington <hp@pobox.com> Should fix #108108, #106217, tracked down by Owen Taylor and Frederic Crozat * src/window.c (meta_window_foreach_transient): change MetaWindowForeachFunc to return a boolean for whether to continue (meta_window_foreach_ancestor): new function (window_should_be_showing): use meta_window_foreach_ancestor (unminimize_window_and_all_transient_parents): ditto (update_sm_hints): ditto (meta_window_is_ancestor_of_transient): ditto * src/stack.c (get_maximum_layer_of_ancestor): use meta_window_foreach_ancestor
* Patch from Rob Adams addresses #95014 (placement issues), makes first fitHavoc Pennington2003-02-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-23 Havoc Pennington <hp@pobox.com> Patch from Rob Adams addresses #95014 (placement issues), makes first fit algorithm "center tile", adds most code for per-xinerama workspaces (#86682) but disables it for now. * src/workspace.c (meta_workspace_get_work_area_for_xinerama) (meta_workspace_get_work_area_all_xineramas): new xinerama functions, maintain workspace->work_areas with a different work area for each xinerama. However for now all the work areas are the same, because haven't quite figured out how _NET_WM_STRUT is supposed to work * src/window.c: adapt to new meta_window_* xinerama APIs (meta_window_get_work_area_current_xinerama): new xinerama API (meta_window_get_work_area_for_xinerama): new xinerama API (constrain_position): be a bit more clever about which xinerama's work area we choose to use. * src/stack.c: adapt to new Xinerama API * src/screen.c (reload_xinerama_infos): invalidate all work areas (meta_screen_get_xinerama_for_rect): new function (meta_screen_window_intersects_xinerama): new function * src/place.c (find_first_fit): change to use "center tiling" (center a screen full of tiled windows, rather than aligning them top left). Adapt to new xinerama functions.
* don't create constraints between windows on different screens, #106086Havoc Pennington2003-02-211-2/+6
| | | | | | | | 2003-02-20 Havoc Pennington <hp@redhat.com> * src/stack.c (create_constraints): don't create constraints between windows on different screens, #106086 tracked down by Arvind
* When checking if a window is fullscreen size, only require it to be at theHavoc Pennington2003-01-251-8/+21
| | | | | | | | | | | | | | 2003-01-25 Havoc Pennington <hp@pobox.com> * src/stack.c (window_is_fullscreen_size): When checking if a window is fullscreen size, only require it to be at the origin of the work area, not at the origin of the screen/xinerama. Still require it to be full screen in width x height. May fix xine in the case where the user has a top panel. * src/window.c (constrain_position): restore the ability for undecorated windows to position themselves overlapping the top panel, but don't let decorated windows do so. Oh the hacks...
* Fix for the "mangles focus window when switching workspaces and usingHavoc Pennington2003-01-221-8/+49
| | | | | | | | | | | | | | | | | | | | | | 2003-01-21 Havoc Pennington <hp@pobox.com> Fix for the "mangles focus window when switching workspaces and using mouse focus" bug * src/stack.c (meta_stack_get_default_focus_window_at_point): new function * src/screen.c (meta_screen_focus_mouse_window): new function (meta_screen_focus_default_window): new function * src/workspace.c (meta_workspace_activate): use the new meta_screen_focus_default_window() 2003-01-17 Havoc Pennington <hp@pobox.com> * src/window.c (meta_window_handle_mouse_grab_op_event): fix event compression code to use GDK algorithm suggested by Owen, should be more efficient.
* also treat empty string as "unset" in this function.Havoc Pennington2002-12-081-0/+2
| | | | | | | 2002-12-08 Havoc Pennington <hp@pobox.com> * src/prefs.c (update_workspace_name): also treat empty string as "unset" in this function.
* never use a window with input = FALSE take_focus = FALSE as the defaultHavoc Pennington2002-11-121-0/+1
| | | | | | | | 2002-11-12 Havoc Pennington <hp@redhat.com> * src/stack.c (meta_stack_get_default_focus_window): never use a window with input = FALSE take_focus = FALSE as the default focus window #95454 fix from Hidetoshi Tajima
* use window-props.h stuff for a couple of properties (implement_showing):Havoc Pennington2002-11-031-1/+15
| | | | | | | | | | | | | 2002-11-03 Havoc Pennington <hp@pobox.com> * src/window.c (meta_window_new): use window-props.h stuff for a couple of properties (implement_showing): fix printf string * src/xprops.c (meta_prop_free_values): new function * src/window-props.h, src/window-props.c: start moving code that handles loading window properties into this file.
* include config.hHavoc Pennington2002-10-271-0/+1
| | | | | | | | | | | | | | | | | 2002-10-26 Havoc Pennington <hp@pobox.com> * src/iconcache.c: include config.h * src/group.c: include config.h * src/frame.c: include config.h * src/core.c: include config.h so it doesn't crash all over the place due to #ifdef HAVE_STARTUP_NOTIFICATION * src/util.c (meta_print_backtrace): export from this file * src/main.c (log_handler): print backtrace here
* Optimizations for managing new windows (do not all take effect ifHavoc Pennington2002-10-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-10-21 Havoc Pennington <hp@redhat.com> Optimizations for managing new windows (do not all take effect if METACITY_DEBUG=1). Bug #96404 * src/keybindings.c (meta_change_keygrab): use error trap nesting and conditionalize on meta_is_verbose() to avoid a ton of XSync * src/display.c (meta_change_button_grab): ditto Throughout: move to new error trap setup to save on XSync calls, new setup is: * src/errors.c (meta_error_trap_push_with_return): new function, an error trap that needs to care about return value and thus sync even if an outer trap still exists (meta_error_trap_pop_with_return): new function (meta_error_trap_pop): add "last_request_was_roundtrip" argument allowing us to avoid XSync() if we just did a GetProperty or whatever. * src/util.c (meta_warning): flush the warning file descriptor * src/Makefile.am (INCLUDES): define G_LOG_DOMAIN
* replace the old apply_constraints with wacky new approach involvingHavoc Pennington2002-10-181-33/+303
| | | | | | | | | | | | 2002-10-18 Havoc Pennington <hp@pobox.com> * src/stack.c (constrain_stacking): replace the old apply_constraints with wacky new approach involving graphing all the constraints then walking the graph. Fixes #94876 and probably other stacking bugs as well, thanks to Arvind for tracking down the issue. (compute_layer): add FIXME and reference to bug #96140
* don't place transient-for-whole-group windows above _each other_, onlyHavoc Pennington2002-10-171-8/+12
| | | | | | | | | 2002-10-17 Havoc Pennington <hp@redhat.com> * src/stack.c (apply_constraints): don't place transient-for-whole-group windows above _each other_, only above other windows in the group that aren't themselves transient-for-whole-group. Should help with part of #94876
* debug enhancementsHavoc Pennington2002-10-171-0/+1
|
* fix memory leak of group_windows, and don't use the variable name "tmp"Havoc Pennington2002-10-171-5/+7
| | | | | | | | 2002-10-17 Havoc Pennington <hp@redhat.com> * src/stack.c (apply_constraints): fix memory leak of group_windows, and don't use the variable name "tmp" twice. Shadow variables bad.
* make the checks here allow windows larger than the screen in addition toHavoc Pennington2002-10-111-6/+6
| | | | | | | | | | | | | | 2002-10-11 Havoc Pennington <hp@pobox.com> * src/stack.c (window_is_fullscreen_size): make the checks here allow windows larger than the screen in addition to exactly-screen-size * src/window.c (meta_window_configure_request): delete the "try to auto-enter-fullscreen-state" hack here, because it was broken, and the changes to the stacking code to move screen-size focused windows to the fullscreen layer should work better. (meta_window_new): remove auto-fullscreen hack from here too
* also keep utility/menu/toolbar windows above their whole group.Havoc Pennington2002-10-091-4/+37
| | | | | | | | | | | | | 2002-10-09 Havoc Pennington <hp@pobox.com> * src/stack.c (apply_constraints): also keep utility/menu/toolbar windows above their whole group. (get_standalone_layer): don't use META_LAYER_FOCUSED_WINDOW, but only use META_LAYER_FULLSCREEN while the fullscreen window has focus. Also, put screen-sized windows in the fullscreen layer, even if we didn't dare to actually put them in the fullscreen state.
* put ABOVE windows in same layer as docks.Havoc Pennington2002-10-021-1/+1
| | | | | | | 2002-10-01 Havoc Pennington <hp@pobox.com> * src/stack.c (get_standalone_layer): put ABOVE windows in same layer as docks.
* make it staticHavoc Pennington2002-10-021-1/+6
| | | | | | | | | | | | | | | | | | | 2002-10-01 Havoc Pennington <hp@pobox.com> * src/screen.c (meta_screen_resize_func): make it static * src/stack.c (get_standalone_layer): put above/below windows in an appropriate layer. * src/screen.c (set_supported_hint): say we support above/below * src/display.h (struct _MetaDisplay): add _NET_WM_STATE_ABOVE, _NET_WM_STATE_BELOW atoms * src/window.c (meta_window_client_message): handle above/below state messages (set_net_wm_state): handler above/below state (update_net_wm_state): handle above/below states
* re-enable the FOCUSED_WINDOW layer, should now work correctly.Havoc Pennington2002-09-281-8/+2
| | | | | | | 2002-09-28 Havoc Pennington <hp@pobox.com> * src/stack.c (get_standalone_layer): re-enable the FOCUSED_WINDOW layer, should now work correctly.
* Rewrite stack code to work a lot differently. Should be better now, andHavoc Pennington2002-09-281-598/+462
| | | | | | | | | | | 2002-09-28 Havoc Pennington <hp@pobox.com> * src/window.c, src/stack.c: Rewrite stack code to work a lot differently. Should be better now, and not lose relative positions of windows when moving among layers. Also should now be possible to get session management to restore the stacking order. Probably breaks some stuff, and makes all the stack.c changes I made yesterday sort of irrelevant.
* Temporarily disable use of the FOCUSED_WINDOW layer, because given theHavoc Pennington2002-09-281-1/+8
| | | | | | | | | 2002-09-27 Havoc Pennington <hp@pobox.com> * src/stack.c (get_standalone_layer): Temporarily disable use of the FOCUSED_WINDOW layer, because given the fact that moving multiple windows into the same layer changes the Z-order of those windows, it was breaking click-to-focus.
* raise the focused window, since it may not be the window on top, given theHavoc Pennington2002-09-281-10/+52
| | | | | | | | | | | | | | 2002-09-27 Havoc Pennington <hp@pobox.com> * src/screen.c (meta_screen_focus_top_window): raise the focused window, since it may not be the window on top, given the below change. * src/stack.c (meta_stack_get_default_focus_window): make this more complex to prefer to focus the transient parent, followed by other windows in group, followed by topmost non-dock, followed by dock. Previously was just topmost non-dock followed by dock ignoring groups and transiency.
* constrain placement to try to keep windows from going offscreen to theHavoc Pennington2002-09-281-40/+112
| | | | | | | | | | | | | 2002-09-27 Havoc Pennington <hp@pobox.com> * src/place.c (constrain_placement): constrain placement to try to keep windows from going offscreen to the right/bottom * src/stack.c (compute_layer): rearrange the logic here to say that a window must always be in at least as high a layer as any of its transient parents or group members, rather than special-casing fullscreen. Also, group_member_is_fullscreen was leaking the list of group members every time, a fairly major memory leak.
* keep a flag transient_parent_is_root_window for whether theHavoc Pennington2002-09-271-1/+30
| | | | | | | | | | | | | 2002-09-27 Havoc Pennington <hp@redhat.com> * src/window.c (update_transient_for): keep a flag transient_parent_is_root_window for whether the root-window-as-parent convention was used. 2002-09-25 Arvind Samptur <arvind.samptur@wipro.com> * src/stack.c (sort_window_list): Keep dialogs without transient parent above entire app. Fixes #88926
* new functionHavoc Pennington2002-09-241-3/+8
| | | | | | | | | | | | 2002-09-24 Havoc Pennington <hp@redhat.com> * src/window.c (meta_window_update_layer): new function * src/stack.c (compute_layer): put focused window in a layer above all other windows, in click-to-focus mode. #93022 * src/window.c (meta_window_notify_focus): update window layer on focus change.
* translate some strings that should have been, and convert to localeHavoc Pennington2002-08-241-0/+3
| | | | | | | | | | | | | 2002-08-24 Havoc Pennington <hp@redhat.com> * src/util.c: translate some strings that should have been, and convert to locale encoding before printing stuff. * src/stack.c (group_member_is_fullscreen): if window itself is fullscreen, return TRUE immediately. * src/window.c (meta_window_configure_request): add hack to fullscreenize large undecorated windows.
* window is in fullscreen layer if any member of its group is fullscreenHavoc Pennington2002-08-121-2/+34
| | | | | | | | | | | | | | | | 2002-08-12 Havoc Pennington <hp@redhat.com> * src/stack.c (compute_layer): window is in fullscreen layer if any member of its group is fullscreen * src/window.c (meta_window_unmake_fullscreen): update layer for whole window group (meta_window_make_fullscreen): ditto * src/util.c (meta_unsigned_long_hash): move hash/equal funcs for Window in here. * src/group.c: track window groups so we can do stuff with them.
* update layer (meta_window_make_fullscreen): update layerHavoc Pennington2002-08-071-3/+6
| | | | | | | | | | 2002-08-07 Havoc Pennington <hp@redhat.com> * src/window.c (meta_window_unmake_fullscreen): update layer (meta_window_make_fullscreen): update layer * src/stack.c (compute_layer): put window on fullscreen layer if fullscreen
* raise/focus on click, even if the click was on the client area (this makesHavoc Pennington2002-08-041-1/+1
| | | | | | | | | | | | | | | 2002-08-04 Havoc Pennington <hp@redhat.com> * src/frames.c (meta_frames_button_press_event): raise/focus on click, even if the click was on the client area (this makes Alt+button1 raise windows again, yay) * src/stack.c (compute_layer): put panels in the DOCK layer always (keep them on top of other windows). Still sloppy-focus raised with respect to other docks. * configure.in: remove -Wshadow for now as GTK headers make all kinds of noise with it.
* Apply blackc@speakeasy.net patch, bug #83940, to do mini-workspacesHavoc Pennington2002-07-061-0/+36
| | | | | | | | | | | | | | | | | | | | | | | 2002-07-06 Havoc Pennington <hp@pobox.com> Apply blackc@speakeasy.net patch, bug #83940, to do mini-workspaces similar to the pager, when switching spaces. * src/window.c (update_net_wm_state): actually fill in wm_state_skip_taskbar, wm_state_skip_pager flags * src/tabpopup.c: support drawing a mini-workspace similar to the one the pager draws. * src/stack.c (meta_stack_list_windows): new function to list the windows in stacking order * src/screen.c (meta_screen_ensure_workspace_popup): don't pass in the ugly default app icon for workspaces * src/display.c (event_callback): fix from blackc@speakeasy.net to avoid dereferencing a NULL grab window.
* don't use a minimized window as the next focus window, patch fromHavoc Pennington2002-06-181-0/+1
| | | | | | | | 2002-06-17 Havoc Pennington <hp@pobox.com> * 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
* Apply big patch from blackc@speakeasy.net adding a popup window to theHavoc Pennington2002-06-091-1/+1
| | | | | | | | | | | | | | | | 2002-06-08 Havoc Pennington <hp@pobox.com> Apply big patch from blackc@speakeasy.net adding a popup window to the Ctrl+Alt+arrows shortcuts. #83940 2002-06-08 Havoc Pennington <hp@pobox.com> * 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.
* Patch from Erwann Chenede for raise_or_lower keybindingHavoc Pennington2002-05-291-2/+8
| | | | | | | | | | | | | | | | | | 2002-05-28 Havoc Pennington <hp@pobox.com> 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
* keep the tooltip on the screen horizontally, #76825Havoc Pennington2002-05-111-0/+7
| | | | | | | | | | | 2002-05-11 Havoc Pennington <hp@pobox.com> * 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.
* add override redirect test windowHavoc Pennington2002-05-111-4/+96
| | | | | | | | | | | | | | 2002-05-10 Havoc Pennington <hp@pobox.com> * 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
* remove the unused tab stuffHavoc Pennington2002-04-051-176/+0
| | | | | | | | | | 2002-04-05 Havoc Pennington <hp@pobox.com> * src/stack.c: remove the unused tab stuff * src/display.c: implement tab list among panels * src/keybindings.c: fill in move-between-panels keybindings
* use new functionsHavoc Pennington2002-03-121-7/+5
| | | | | | | | | | | | | | | 2002-03-11 Havoc Pennington <hp@pobox.com> * src/keybindings.c: use new functions * src/display.c (meta_display_get_tab_next): (meta_display_get_tab_list): new tab order functions using MRU list instead of map order * src/window.c (meta_window_notify_focus): maintain focus MRU list * src/display.h (struct _MetaDisplay): Keep an MRU list of windows.
* hmm, and don't set last_window at all if we don't ++newp. Fixes even moreHavoc Pennington2002-02-091-1/+0
| | | | | | | | 2002-02-09 Havoc Pennington <hp@pobox.com> * src/stack.c (meta_stack_sync_to_server): hmm, and don't set last_window at all if we don't ++newp. Fixes even more obscure stacking bug.
* assign last_window prior to ++newp, so we don't try to stack windows withHavoc Pennington2002-02-091-2/+2
| | | | | | | | 2002-02-09 Havoc Pennington <hp@pobox.com> * src/stack.c (meta_stack_sync_to_server): assign last_window prior to ++newp, so we don't try to stack windows with respect to themselves. Fixes some obscure stacking bugs.
* try to make more error message strings the same, easier for translatorsHavoc Pennington2002-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-09 Havoc Pennington <hp@pobox.com> * src/theme-parser.c: try to make more error message strings the same, easier for translators * src/theme.c (meta_draw_op_free): free color spec for line op (meta_theme_free): free the integer_constants hash * src/theme-parser.c (parse_boolean): move above first use * src/theme-viewer.c: fixes for theme.h changes * src/frames.c (queue_recalc_func): don't recreate layout immediately, just save title text. should speed things up. (meta_frames_set_title): just remove the layout here also, and save title text. * src/theme-parser.c (parse_toplevel_element): parse title_scale attribute on frame_geometry * src/theme.c: support setting the text size * src/frames.c: support setting the text size * theme-format.txt: updates
* put in some kind of distinctive frame for UTILITY, though it's ugly. AlsoHavoc Pennington2002-02-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-09 Havoc Pennington <hp@pobox.com> * src/themes/Atlanta/metacity-theme-1.xml: put in some kind of distinctive frame for UTILITY, though it's ugly. Also put in the borderless look for maximized windows. * src/stack.c (compute_layer): put splash screen in the splash layer * src/stack.h (enum): create a splash screen layer * src/place.c (meta_window_place): center splashscreen, and fix a typo in the centering code * src/window.c (recalc_window_features): disable most features on splash screens * src/screen.c (set_supported_hint): add UTILITY and SPLASHSCREEN hints * src/window.c: add UTILITY, SPLASHSCREEN implementation * src/window.h (enum): add UTILITY, SPLASHSCREEN types * src/theme-parser.c (parse_toplevel_element): parser support for has_title attribute * src/theme.c (meta_frame_layout_get_borders): handle a has_title field in the layout, for utility windows that don't display a title (would be better to be able to shrink the title text, but that's kind of tricky to implement :-/)
* Throughout: move to meta_topic rather than meta_verbose so metacity.logHavoc Pennington2002-02-081-17/+17
| | | | | | | | | | | 2002-02-07 Havoc Pennington <hp@pobox.com> Throughout: move to meta_topic rather than meta_verbose so metacity.log can start being more useful * src/util.h (enum): add more debug topics * src/frames.c: clean up some cruft that caused warnings
* disable custom log handler and fatal mask for nowHavoc Pennington2002-02-071-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-06 Havoc Pennington <hp@pobox.com> * src/main.c (main): disable custom log handler and fatal mask for now * src/theme.c (meta_draw_op_list_draw): Add META_DRAW_CLIP * src/main.c: load theme, monitor current theme setting * src/prefs.c: add "current theme" setting * src/stack.c (meta_stack_free): don't try to free last_root_children_stacked if it doesn't exist * src/themewidget.c: pluggable GtkMisc subclass to use for menu icons * src/screen.c (meta_screen_manage_all_windows): fix signed/unsigned warning * src/frames.c: port to theme system (meta_frames_style_set): chain up * theme-format.txt: new file * configure.in: add more compiler warnings * src/theme.c: add various stuff needed to get theme parser working. Remove the "spacer" concept from FrameLayout object. Add draw op that references a draw op list. * configure.in: require GTK 1.3.13 * src/Makefile.am: add theme-parser.[hc], implement loading a theme * src/theme.c: add "draw title" and "draw window icon" operations (meta_draw_op_draw): put object_width/object_height in expression environment before computing x/y. Handle out-of-memory when creating pixbufs. Assorted other cleanups.