diff options
author | Havoc Pennington <hp@pobox.com> | 2002-07-25 02:45:38 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2002-07-25 02:45:38 +0000 |
commit | 9abae5b0a22cdd7d0b95bfeb3be526f483110983 (patch) | |
tree | 7352d35d317d15def3183b05b9555fb5ace9484b | |
parent | 98c3b06ffd010be6cc5dc099436b503818609d9b (diff) | |
download | metacity-9abae5b0a22cdd7d0b95bfeb3be526f483110983.tar.gz |
add Metabox theme from Garrett
2002-07-24 Havoc Pennington <hp@pobox.com>
* src/themes/Makefile.am (THEMES): add Metabox theme from Garrett
* README: updates
2002-07-21 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_new): don't automaximize fullscreen
windows.
2002-07-14 Havoc Pennington <hp@pobox.com>
* src/window.c (recalc_window_features): don't allow shading of
border-only windows.
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | README | 57 | ||||
-rw-r--r-- | src/themes/Makefile.am | 3 | ||||
-rw-r--r-- | src/themes/Metabox/metacity-theme-1.xml | 470 | ||||
-rw-r--r-- | src/window.c | 5 |
5 files changed, 497 insertions, 54 deletions
@@ -1,3 +1,19 @@ +2002-07-24 Havoc Pennington <hp@pobox.com> + + * src/themes/Makefile.am (THEMES): add Metabox theme from Garrett + + * README: updates + +2002-07-21 Havoc Pennington <hp@pobox.com> + + * src/window.c (meta_window_new): don't automaximize fullscreen + windows. + +2002-07-14 Havoc Pennington <hp@pobox.com> + + * src/window.c (recalc_window_features): don't allow shading of + border-only windows. + 2002-07-24 Havoc Pennington <hp@redhat.com> * src/theme-parser.c (meta_theme_load): look for themes in @@ -16,9 +16,9 @@ REPORTING BUGS AND SUBMITTING PATCHES Report new bugs on http://bugzilla.gnome.org. -Feel free to send patches too; Metacity is really small and simple, so -if you find a bug or want to add a feature it should be pretty easy. -Send me mail, or put the patch in bugzilla. +Feel free to send patches too; Metacity is relatively small and +simple, so if you find a bug or want to add a feature it should be +pretty easy. Send me mail, or put the patch in bugzilla. See the HACKING file for some notes on hacking Metacity. @@ -57,7 +57,7 @@ METACITY FEATURES Alt-Shift-Tab backward cycle focus Alt-Ctrl-Tab forward cycle focus among panels Alt-Ctrl-Shift-Tab backward cycle focus among panels - Alt-Escape focus previous window + Alt-Escape cycle window focus without a popup thingy Ctrl-Alt-Left Arrow previous workspace Ctrl-Alt-Right Arrow next workspace Ctrl-Alt-D minimize/unminimize all, to show desktop @@ -156,56 +156,13 @@ METACITY BUGS, NON-FEATURES, AND CAVEATS - There are probably other ICCCM-compliance issues. - - Window placement is always cascade for now; I want to implement - "first fit, falling back to cascade if no fit." - (Configurable placement algorithms are stupid though, don't - send me patches for any bogus ones. Let's just pick a good one.) + - The first-fit algorithm for placement isn't very clever. - Should Metacity support flipping in right-to-left locales? I don't know what window managers look like in a right-to-left locale. I assume the window titles should be right-justified; should the window controls also be flipped? - - Resize menu item doesn't do anything. It's intended to enter - resize-with-the-keyboard mode, similar to Move menu item. - - - In GNOME 1.x, if you switch from sawfish to metacity without - restarting X, the panel often ends up buried behind the Nautilus - desktop window. - - What happens is that the panel detects Sawfish has gone away, and - turns on override redirect mode because no GNOME-aware WM is - running (i.e. it goes into "ignore the window manager" mode). But - the panel doesn't notice that Metacity has appeared and is - (partially) GNOME-compliant. So Metacity doesn't see the override - redirect panel, and leaves it behind the Nautilus desktop. I'm not - sure whether Metacity or the panel is to blame for this. - - (To debug - use "xwininfo" on the panel, if override redirect is - "Yes" then Metacity won't have any awareness of a window and can't - properly stack it above the desktop. If override redirect is "No" - then Metacity can see the panel and handle it properly. Look at - xstuff.c:xstuff_is_compliant_wm() in the panel to get started on - how the panel deals with this.) - - - In GNOME 1.x, If you have "put panel below other windows" turned on - in panel Global Preferences, Miscellaneous tab, you need to change - this to "Put panel on top of other windows." That's because - Metacity uses semantic categories, not the legacy layer system in - the GNOME spec. It treats things in the legacy "dock" layer as - semantic type dock, but if you have the panel set to be in another - layer, Metacity will think it's a normal window. - - You can diagnose this problem because Metacity will put panels in - the wrong place, and Alt+rightclick will let you perform operations - like minimize/maximize, and Alt+leftclick will let you move the panel. - If Metacity has detected that the panel is a panel, then none of - this will be enabled. - - I put a patch in the CVS version of the panel to fix this by - setting the new non-legacy type hint, but a panel with that - patch hasn't been released yet. - FAQ === @@ -229,8 +186,7 @@ A: If it makes sense to turn on unconditionally, so on. But I am too used to them to turn them off. Or alternatively iconification/tasklist is crack, and workspaces/pager are good. But having both is certainly a bit wrong. - Sloppy focus is probably crackrock too. Oh, and my Alt-1 thru Alt-6 - keybindings are definitely on crack. + Sloppy focus is probably crackrock too. But don't think unlimited crack is OK just because I slipped up a little. No slippery slope here. @@ -317,7 +273,6 @@ A: I could conceivably be convinced to use viewports _instead_ of Q: Did you spend a lot of time on this? A: Originally the answer was no. Sadly the answer is now yes. - Still, it's only 12,000 lines of code. Q: How can you claim that you are anti-crack, while still writing a window manager? diff --git a/src/themes/Makefile.am b/src/themes/Makefile.am index 2dcf3449..f9349323 100644 --- a/src/themes/Makefile.am +++ b/src/themes/Makefile.am @@ -3,7 +3,8 @@ THEMES= \ Bright \ Crux \ Esco \ - Gorilla + Gorilla \ + Metabox THEME_DIR=$(datadir)/themes THEME_SUBDIR=metacity-1 diff --git a/src/themes/Metabox/metacity-theme-1.xml b/src/themes/Metabox/metacity-theme-1.xml new file mode 100644 index 00000000..9c473047 --- /dev/null +++ b/src/themes/Metabox/metacity-theme-1.xml @@ -0,0 +1,470 @@ +<?xml version="1.0"?> +<metacity_theme> + <info> + <name>Metabox</name> + <author>Garrett LeSage <garrett@redhat.com< based on Havoc Pennington <hp@redhat.com>'s Atlanta theme</author> + <copyright>Â Garrett LeSage, Havoc Pennington, 2002</copyright> + <date>Jun 12, 2002</date> + <description>Looks a little like BlackBox.</description> + </info> + + <frame_geometry name="normal"> + <distance name="left_width" value="1"/> + <distance name="right_width" value="1"/> + <distance name="bottom_height" value="6"/> + <distance name="left_titlebar_edge" value="1"/> + <distance name="right_titlebar_edge" value="1"/> + <distance name="title_vertical_pad" value="3"/> + <border name="title_border" left="0" right="0" top="1" bottom="1"/> + <border name="button_border" left="0" right="0" top="1" bottom="1"/> + <aspect_ratio name="button" value="1.0"/> + </frame_geometry> + + <!-- strip borders off the normal geometry --> + <frame_geometry name="normal_small_borders" parent="normal"> + <distance name="left_width" value="0"/> + <distance name="right_width" value="0"/> + <distance name="bottom_height" value="0"/> + <distance name="left_titlebar_edge" value="0"/> + <distance name="right_titlebar_edge" value="0"/> + </frame_geometry> + + <frame_geometry name="utility" title_scale="small"> + <distance name="left_width" value="1"/> + <distance name="right_width" value="1"/> + <distance name="bottom_height" value="4"/> + <distance name="left_titlebar_edge" value="1"/> + <distance name="right_titlebar_edge" value="1"/> + <distance name="title_vertical_pad" value="1"/> + <border name="title_border" left="0" right="0" top="1" bottom="1"/> + <border name="button_border" left="0" right="0" top="1" bottom="1"/> + <aspect_ratio name="button" value="1.0"/> + </frame_geometry> + + <frame_geometry name="border" has_title="false"> + <distance name="left_width" value="4"/> + <distance name="right_width" value="4"/> + <distance name="bottom_height" value="4"/> + <distance name="left_titlebar_edge" value="0"/> + <distance name="right_titlebar_edge" value="0"/> + <distance name="button_width" value="0"/> + <distance name="button_height" value="0"/> + <distance name="title_vertical_pad" value="4"/> + <border name="title_border" left="0" right="0" top="0" bottom="0"/> + <border name="button_border" left="0" right="0" top="0" bottom="0"/> + </frame_geometry> + + <!-- define constants --> + <constant name="ArrowWidth" value="7"/> + <constant name="ArrowHeight" value="5"/> + <constant name="ButtonIPad" value="4"/> + <constant name="ThickLineWidth" value="3"/> + <constant name="IconTitleSpacing" value="2"/> + <constant name="SpacerWidth" value="8"/> + <constant name="SpacerHeight" value="11"/> + + <!-- Backgrounds --> + + <draw_ops name="bg_active"> + <gradient type="vertical" x="0" y="0" width="width" height="height"> + <color value="shade/gtk:bg[SELECTED]/1.25"/> + <color value="shade/gtk:bg[SELECTED]/0.85"/> + </gradient> + </draw_ops> + + <draw_ops name="bg_inactive"> + <gradient type="vertical" x="0" y="0" width="width" height="height"> + <color value="shade/gtk:bg[INSENSITIVE]/1.1"/> + <color value="shade/gtk:bg[INSENSITIVE]/0.9"/> + </gradient> + </draw_ops> + + <draw_ops name="bg_button_active"> + <include name="bg_active"/> + </draw_ops> + + <draw_ops name="bg_button_inactive"> + <include name="bg_inactive"/> + </draw_ops> + + <draw_ops name="bg_title_active"> + <include name="bg_active"/> + </draw_ops> + + <draw_ops name="bg_title_inactive"> + <include name="bg_inactive"/> + </draw_ops> + + <!-- Buttons --> + + <draw_ops name="button_pressed_bg"> + <gradient type="vertical" x="0" y="0" width="width" height="height" alpha="0.25"> + <color value="shade/gtk:bg[SELECTED]/0.75"/> + <color value="shade/gtk:bg[SELECTED]/0.5"/> + </gradient> + </draw_ops> + + <draw_ops name="button_prelight_bg"> + <gradient type="vertical" x="0" y="0" width="width" height="height" alpha="0.25"> + <color value="shade/gtk:bg[SELECTED]/2.0"/> + <color value="shade/gtk:bg[SELECTED]/1.5"/> + </gradient> + </draw_ops> + + <draw_ops name="menu_button"> + <include name="bg_button_active"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="ButtonIPad+1" y1="width/2+2" x2="(width-ButtonIPad)/2+1" y2="width/2+2"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="ButtonIPad+1" y1="width/2-2" x2="(width-ButtonIPad)/2+1" y2="width/2-2"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="width-ButtonIPad-1" y1="width/2+2" x2="width-(width-ButtonIPad)/2-1" y2="width/2+2"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" x1="width-ButtonIPad-1" y1="width/2-2" x2="width-(width-ButtonIPad)/2-1" y2="width/2-2"/> + </draw_ops> + + <draw_ops name="menu_button_pressed"> + <include name="menu_button"/> + <include name="button_pressed_bg"/> + </draw_ops> + + <draw_ops name="menu_button_prelight"> + <include name="menu_button"/> + <include name="button_prelight_bg"/> + </draw_ops> + + <draw_ops name="menu_button_unfocused"> + <include name="bg_button_inactive"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="ButtonIPad+1" y1="width/2+2" x2="(width-ButtonIPad)/2+1" y2="width/2+2"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="ButtonIPad+1" y1="width/2-2" x2="(width-ButtonIPad)/2+1" y2="width/2-2"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="width-ButtonIPad-1" y1="width/2+2" x2="width-(width-ButtonIPad)/2-1" y2="width/2+2"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" x1="width-ButtonIPad-1" y1="width/2-2" x2="width-(width-ButtonIPad)/2-1" y2="width/2-2"/> + </draw_ops> + + <draw_ops name="minimize_button"> + <include name="bg_button_active"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" + x1="ButtonIPad" + y1="height - ButtonIPad - ThickLineWidth + 1" + x2="width - ButtonIPad" + y2="height - ButtonIPad - ThickLineWidth + 1" + width="3"/> <!-- FIXME allow a constant here --> + </draw_ops> + + <draw_ops name="minimize_button_pressed"> + <include name="minimize_button"/> + <include name="button_pressed_bg"/> + </draw_ops> + + <draw_ops name="minimize_button_prelight"> + <include name="minimize_button"/> + <include name="button_prelight_bg"/> + </draw_ops> + + <draw_ops name="minimize_button_unfocused"> + <include name="bg_button_inactive"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" + x1="ButtonIPad" + y1="height - ButtonIPad - ThickLineWidth + 1" + x2="width - ButtonIPad" + y2="height - ButtonIPad - ThickLineWidth + 1" + width="3"/> <!-- FIXME allow a constant here --> + </draw_ops> + + <draw_ops name="maximize_button"> + <include name="bg_button_active"/> + <rectangle color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" filled="false" + x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="3" + x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/> + </draw_ops> + + <draw_ops name="maximize_button_pressed"> + <include name="maximize_button"/> + <include name="button_pressed_bg"/> + </draw_ops> + + <draw_ops name="maximize_button_prelight"> + <include name="maximize_button"/> + <include name="button_prelight_bg"/> + </draw_ops> + + <draw_ops name="maximize_button_unfocused"> + <include name="bg_button_inactive"/> + <rectangle color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" filled="false" + x="ButtonIPad" y="ButtonIPad" width="width-ButtonIPad*2-1" height="height-ButtonIPad*2-1"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="3" + x1="ButtonIPad" y1="ButtonIPad+1" x2="width-ButtonIPad" y2="ButtonIPad+1"/> + </draw_ops> + + <draw_ops name="mini_window_icon"> + <rectangle color="gtk:bg[SELECTED]" filled="true" + x="0" y="0" width="width-1" height="height-1"/> + <rectangle color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" filled="false" + x="0" y="0" width="width-1" height="height-1"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" width="2" + x1="0" y1="1" x2="width" y2="1"/> + </draw_ops> + + <draw_ops name="mini_window_icon_unfocused"> + <rectangle color="gtk:bg[NORMAL]" filled="true" + x="0" y="0" width="width-1" height="height-1"/> + <rectangle color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" filled="false" + x="0" y="0" width="width-1" height="height-1"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" width="2" + x1="0" y1="1" x2="width" y2="1"/> + </draw_ops> + + <draw_ops name="restore_button"> + <include name="bg_button_active"/> + <include name="mini_window_icon" + x="3 + ButtonIPad" y="ButtonIPad" + width="width - 7 - ButtonIPad" + height="height - 7 - ButtonIPad"/> + <include name="mini_window_icon" + x="ButtonIPad" y="3 + ButtonIPad" + width="width - 7 - ButtonIPad" + height="height - 7 - ButtonIPad"/> + </draw_ops> + + <draw_ops name="restore_button_pressed"> + <include name="restore_button"/> + <include name="button_pressed_bg"/> + </draw_ops> + + <draw_ops name="restore_button_prelight"> + <include name="restore_button"/> + <include name="button_prelight_bg"/> + </draw_ops> + + <draw_ops name="restore_button_unfocused"> + <include name="bg_button_inactive"/> + <include name="mini_window_icon_unfocused" + x="3 + ButtonIPad" y="ButtonIPad" + width="width - 7 - ButtonIPad" + height="height - 7 - ButtonIPad"/> + <include name="mini_window_icon_unfocused" + x="ButtonIPad" y="3 + ButtonIPad" + width="width - 7 - ButtonIPad" + height="height - 7 - ButtonIPad"/> + </draw_ops> + + <draw_ops name="close_button"> + <include name="bg_button_active"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" + width="2" + x1="ButtonIPad" y1="ButtonIPad" + x2="width - ButtonIPad - 1" y2="height - ButtonIPad - 1"/> + <line color="blend/gtk:bg[SELECTED]/gtk:fg[SELECTED]/0.75" + width="2" + x1="ButtonIPad" y1="height - ButtonIPad - 1" + x2="width - ButtonIPad - 1" y2="ButtonIPad"/> + </draw_ops> + + <draw_ops name="close_button_pressed"> + <include name="close_button"/> + <include name="button_pressed_bg"/> + </draw_ops> + + <draw_ops name="close_button_prelight"> + <include name="close_button"/> + <include name="button_prelight_bg"/> + </draw_ops> + + <draw_ops name="close_button_unfocused"> + <include name="bg_button_inactive"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" + width="2" + x1="ButtonIPad" y1="ButtonIPad" + x2="width - ButtonIPad - 1" y2="height - ButtonIPad - 1"/> + <line color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" + width="2" + x1="ButtonIPad" y1="height - ButtonIPad - 1" + x2="width - ButtonIPad - 1" y2="ButtonIPad"/> + </draw_ops> + + <draw_ops name="outer_bevel"> + <rectangle color="#000000" + x="0" y="0" width="width-1" height="height-1"/> + <line color="gtk:light[NORMAL]" + x1="1" y1="1" x2="1" y2="height-2"/> + <line color="gtk:light[NORMAL]" + x1="1" y1="1" x2="width-2" y2="1"/> + <line color="gtk:dark[NORMAL]" + x1="width-2" y1="1" x2="width-2" y2="height-2"/> + <line color="gtk:dark[NORMAL]" + x1="1" y1="height-2" x2="width-2" y2="height-2"/> + </draw_ops> + + <draw_ops name="blank"> + <!-- nothing --> + </draw_ops> + + <draw_ops name="focus_outline"> + <rectangle color="#000000" + x="left_width-1" y="top_height-1" + width="width-left_width-right_width+1" + height="height-top_height-bottom_height+1"/> + </draw_ops> + + <draw_ops name="focus_background"> + <include name="outer_bevel"/> + <include name="focus_outline"/> + </draw_ops> + + <draw_ops name="title_text_focused_with_icon"> + <clip x="0" y="0" width="width" height="height"/> + <title color="gtk:fg[SELECTED]" + x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing" + y="((height - title_height) / 2) `max` 0"/> + <icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2" + y="(height-mini_icon_height) / 2" + width="mini_icon_width" height="mini_icon_height"/> + </draw_ops> + + <draw_ops name="title_text_focused_no_icon"> + <clip x="0" y="0" width="width" height="height"/> + <title color="gtk:fg[SELECTED]" + x="(0 `max` (width-title_width)) / 2" + y="((height - title_height) / 2) `max` 0"/> + </draw_ops> + + <draw_ops name="title_text_with_icon"> + <clip x="0" y="0" width="width" height="height"/> + <title color="gtk:fg[INSENSITIVE]" + x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2 + mini_icon_width + IconTitleSpacing" + y="((height - title_height) / 2) `max` 0"/> + <icon x="(0 `max` (width-title_width-mini_icon_width-IconTitleSpacing)) / 2" + y="(height-mini_icon_height) / 2" + width="mini_icon_width" height="mini_icon_height"/> + </draw_ops> + + <draw_ops name="title_text_no_icon"> + <clip x="0" y="0" width="width" height="height"/> + <title color="blend/gtk:fg[INSENSITIVE]/gtk:bg[INSENSITIVE]/0.35" + x="(0 `max` (width-title_width)) / 2" + y="((height - title_height) / 2) `max` 0"/> + </draw_ops> + + <draw_ops name="title_normal"> + <include name="bg_title_inactive"/> + <include name="title_text_no_icon"/> + </draw_ops> + + <draw_ops name="title_focused"> + <include name="bg_title_active"/> + <include name="title_text_focused_no_icon"/> + </draw_ops> + + <draw_ops name="title_utility"> + <include name="title_text_no_icon"/> + </draw_ops> + + <draw_ops name="title_utility_focused"> + <include name="bg_title_active"/> + <include name="title_text_focused_no_icon"/> + </draw_ops> + + <frame_style name="normal_unfocused" geometry="normal"> + <piece position="entire_background" draw_ops="focus_background"/> + <piece position="title" draw_ops="title_normal"/> + + <!-- we don't specify for prelight, so normal is used --> + <button function="close" state="normal" draw_ops="close_button_unfocused"/> + <button function="close" state="pressed" draw_ops="close_button_pressed"/> + <button function="minimize" state="normal" draw_ops="minimize_button_unfocused"/> + <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/> + <button function="maximize" state="normal" draw_ops="maximize_button_unfocused"/> + <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/> + <button function="menu" state="normal" draw_ops="menu_button_unfocused"/> + <button function="menu" state="pressed" draw_ops="menu_button_pressed"/> + </frame_style> + + <frame_style name="normal_focused" geometry="normal"> + <piece position="entire_background" draw_ops="focus_background"/> + <piece position="title" draw_ops="title_focused"/> + + <!-- we don't specify for prelight, so normal is used --> + <button function="close" state="normal" draw_ops="close_button"/> + <button function="close" state="pressed" draw_ops="close_button_pressed"/> + <button function="close" state="prelight" draw_ops="close_button_prelight"/> + <button function="minimize" state="normal" draw_ops="minimize_button"/> + <button function="minimize" state="pressed" draw_ops="minimize_button_pressed"/> + <button function="minimize" state="prelight" draw_ops="minimize_button_prelight"/> + <button function="maximize" state="normal" draw_ops="maximize_button"/> + <button function="maximize" state="pressed" draw_ops="maximize_button_pressed"/> + <button function="maximize" state="prelight" draw_ops="maximize_button_prelight"/> + <button function="menu" state="normal" draw_ops="menu_button"/> + <button function="menu" state="pressed" draw_ops="menu_button_pressed"/> + <button function="menu" state="prelight" draw_ops="menu_button_prelight"/> + </frame_style> + + <frame_style name="maximized_unfocused" geometry="normal_small_borders" parent="normal_unfocused"> + <piece position="entire_background" draw_ops="blank"/> + <button function="maximize" state="normal" draw_ops="restore_button_unfocused"/> + <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/> + </frame_style> + + <frame_style name="maximized_focused" geometry="normal_small_borders" parent="normal_focused"> + <piece position="entire_background" draw_ops="focus_outline"/> + <button function="maximize" state="normal" draw_ops="restore_button"/> + <button function="maximize" state="pressed" draw_ops="restore_button_pressed"/> + <button function="maximize" state="prelight" draw_ops="restore_button_prelight"/> + </frame_style> + + <frame_style name="utility_unfocused" geometry="utility" parent="normal_unfocused"> + <piece position="title" draw_ops="title_utility"/> + </frame_style> + + <frame_style name="utility_focused" geometry="utility" parent="normal_focused"> + <piece position="title" draw_ops="title_utility_focused"/> + </frame_style> + + <frame_style name="border" geometry="border" parent="normal_unfocused"> + <piece position="entire_background" draw_ops="outer_bevel"/> + <piece position="title" draw_ops="blank"/> + </frame_style> + + <frame_style_set name="normal"> + <frame focus="yes" state="normal" resize="both" style="normal_focused"/> + <frame focus="no" state="normal" resize="both" style="normal_unfocused"/> + <frame focus="yes" state="maximized" style="maximized_focused"/> + <frame focus="no" state="maximized" style="maximized_unfocused"/> + <frame focus="yes" state="shaded" style="normal_focused"/> + <frame focus="no" state="shaded" style="normal_unfocused"/> + <frame focus="yes" state="maximized_and_shaded" style="maximized_focused"/> + <frame focus="no" state="maximized_and_shaded" style="maximized_unfocused"/> + </frame_style_set> + + <frame_style_set name="utility" parent="normal"> + <frame focus="yes" state="normal" resize="both" style="utility_focused"/> + <frame focus="no" state="normal" resize="both" style="utility_unfocused"/> + <!-- this is a bunch of crack since utility windows shouldn't be maximized --> + <frame focus="yes" state="maximized" style="utility_focused"/> + <frame focus="no" state="maximized" style="utility_unfocused"/> + <frame focus="yes" state="shaded" style="utility_focused"/> + <frame focus="no" state="shaded" style="utility_unfocused"/> + <frame focus="yes" state="maximized_and_shaded" style="utility_focused"/> + <frame focus="no" state="maximized_and_shaded" style="utility_unfocused"/> + </frame_style_set> + + <frame_style_set name="border"> + <frame focus="yes" state="normal" resize="both" style="border"/> + <frame focus="no" state="normal" resize="both" style="border"/> + <frame focus="yes" state="maximized" style="border"/> + <frame focus="no" state="maximized" style="border"/> + <frame focus="yes" state="shaded" style="border"/> + <frame focus="no" state="shaded" style="border"/> + <frame focus="yes" state="maximized_and_shaded" style="border"/> + <frame focus="no" state="maximized_and_shaded" style="border"/> + </frame_style_set> + + <window type="normal" style_set="normal"/> + <window type="dialog" style_set="normal"/> + <window type="modal_dialog" style_set="normal"/> + <window type="menu" style_set="normal"/> + <window type="utility" style_set="utility"/> + <window type="border" style_set="border"/> + + <menu_icon function="close" state="normal" draw_ops="close_button"/> + <menu_icon function="maximize" state="normal" draw_ops="maximize_button"/> + <menu_icon function="unmaximize" state="normal" draw_ops="restore_button"/> + <menu_icon function="minimize" state="normal" draw_ops="minimize_button"/> + +</metacity_theme> diff --git a/src/window.c b/src/window.c index 157eea2e..58524371 100644 --- a/src/window.c +++ b/src/window.c @@ -613,7 +613,8 @@ meta_window_new (MetaDisplay *display, Window xwindow, * area (bit of a hack here). Assume undecorated windows * probably don't intend to be maximized. */ - if (window->has_maximize_func && window->decorated) + if (window->has_maximize_func && window->decorated && + !window->fullscreen) { MetaRectangle workarea; MetaRectangle outer; @@ -5073,7 +5074,7 @@ recalc_window_features (MetaWindow *window) } /* no shading if not decorated */ - if (!window->decorated) + if (!window->decorated || window->border_only) window->has_shade_func = FALSE; window->skip_taskbar = FALSE; |