mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
Add Dropdown menu atoms so we can add shadows to them. Fixes #517442
2008-05-24 Iain Holmes <iain@gnome.org> * src/compositor/compositor-xrender.c: Add Dropdown menu atoms so we can add shadows to them. Fixes #517442 Handle tooltips as well. Fixes #517524 svn path=/trunk/; revision=3725
This commit is contained in:
parent
1f435cc1fc
commit
76735c18a1
@ -1,3 +1,9 @@
|
|||||||
|
2008-05-24 Iain Holmes <iain@gnome.org>
|
||||||
|
|
||||||
|
* src/compositor/compositor-xrender.c: Add Dropdown menu atoms so we
|
||||||
|
can add shadows to them. Fixes #517442
|
||||||
|
Handle tooltips as well. Fixes #517524
|
||||||
|
|
||||||
2008-05-24 Iain Holmes <iain@gnome.org>
|
2008-05-24 Iain Holmes <iain@gnome.org>
|
||||||
|
|
||||||
* src/compositor/compositor.c: Check the compositor isn't NULL before
|
* src/compositor/compositor.c: Check the compositor isn't NULL before
|
||||||
|
@ -86,7 +86,10 @@ typedef enum _MetaCompWindowType
|
|||||||
META_COMP_WINDOW_NORMAL,
|
META_COMP_WINDOW_NORMAL,
|
||||||
META_COMP_WINDOW_DND,
|
META_COMP_WINDOW_DND,
|
||||||
META_COMP_WINDOW_DESKTOP,
|
META_COMP_WINDOW_DESKTOP,
|
||||||
META_COMP_WINDOW_DOCK
|
META_COMP_WINDOW_DOCK,
|
||||||
|
META_COMP_WINDOW_MENU,
|
||||||
|
META_COMP_WINDOW_DROP_DOWN_MENU,
|
||||||
|
META_COMP_WINDOW_TOOLTIP,
|
||||||
} MetaCompWindowType;
|
} MetaCompWindowType;
|
||||||
|
|
||||||
typedef enum _MetaShadowType
|
typedef enum _MetaShadowType
|
||||||
@ -117,6 +120,8 @@ typedef struct _MetaCompositorXRender
|
|||||||
Atom atom_net_wm_window_type_utility;
|
Atom atom_net_wm_window_type_utility;
|
||||||
Atom atom_net_wm_window_type_splash;
|
Atom atom_net_wm_window_type_splash;
|
||||||
Atom atom_net_wm_window_type_toolbar;
|
Atom atom_net_wm_window_type_toolbar;
|
||||||
|
Atom atom_net_wm_window_type_dropdown_menu;
|
||||||
|
Atom atom_net_wm_window_type_tooltip;
|
||||||
|
|
||||||
#ifdef USE_IDLE_REPAINT
|
#ifdef USE_IDLE_REPAINT
|
||||||
guint repaint_id;
|
guint repaint_id;
|
||||||
@ -895,7 +900,18 @@ window_has_shadow (MetaCompWindow *cw)
|
|||||||
meta_verbose ("Window has shadow as it is not ARGB\n");
|
meta_verbose ("Window has shadow as it is not ARGB\n");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cw->type == META_COMP_WINDOW_MENU ||
|
||||||
|
cw->type == META_COMP_WINDOW_DROP_DOWN_MENU) {
|
||||||
|
meta_verbose ("Window has shadow as it is a menu\n");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cw->type == META_COMP_WINDOW_TOOLTIP) {
|
||||||
|
meta_verbose ("Window has shadow as it is a tooltip\n");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
meta_verbose ("Window has no shadow as it fell through\n");
|
meta_verbose ("Window has no shadow as it fell through\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -1721,7 +1737,9 @@ get_window_type (MetaDisplay *display,
|
|||||||
atoms[i] == compositor->atom_net_wm_window_type_dialog ||
|
atoms[i] == compositor->atom_net_wm_window_type_dialog ||
|
||||||
atoms[i] == compositor->atom_net_wm_window_type_normal ||
|
atoms[i] == compositor->atom_net_wm_window_type_normal ||
|
||||||
atoms[i] == compositor->atom_net_wm_window_type_utility ||
|
atoms[i] == compositor->atom_net_wm_window_type_utility ||
|
||||||
atoms[i] == compositor->atom_net_wm_window_type_splash)
|
atoms[i] == compositor->atom_net_wm_window_type_splash ||
|
||||||
|
atoms[i] == compositor->atom_net_wm_window_type_dropdown_menu ||
|
||||||
|
atoms[i] == compositor->atom_net_wm_window_type_tooltip)
|
||||||
{
|
{
|
||||||
type_atom = atoms[i];
|
type_atom = atoms[i];
|
||||||
break;
|
break;
|
||||||
@ -1736,6 +1754,12 @@ get_window_type (MetaDisplay *display,
|
|||||||
cw->type = META_COMP_WINDOW_DESKTOP;
|
cw->type = META_COMP_WINDOW_DESKTOP;
|
||||||
else if (type_atom == compositor->atom_net_wm_window_type_dock)
|
else if (type_atom == compositor->atom_net_wm_window_type_dock)
|
||||||
cw->type = META_COMP_WINDOW_DOCK;
|
cw->type = META_COMP_WINDOW_DOCK;
|
||||||
|
else if (type_atom == compositor->atom_net_wm_window_type_menu)
|
||||||
|
cw->type = META_COMP_WINDOW_MENU;
|
||||||
|
else if (type_atom == compositor->atom_net_wm_window_type_dropdown_menu)
|
||||||
|
cw->type = META_COMP_WINDOW_DROP_DOWN_MENU;
|
||||||
|
else if (type_atom == compositor->atom_net_wm_window_type_tooltip)
|
||||||
|
cw->type = META_COMP_WINDOW_TOOLTIP;
|
||||||
else
|
else
|
||||||
cw->type = META_COMP_WINDOW_NORMAL;
|
cw->type = META_COMP_WINDOW_NORMAL;
|
||||||
|
|
||||||
@ -2932,7 +2956,9 @@ meta_compositor_xrender_new (MetaDisplay *display)
|
|||||||
"_NET_WM_WINDOW_TYPE_NORMAL",
|
"_NET_WM_WINDOW_TYPE_NORMAL",
|
||||||
"_NET_WM_WINDOW_TYPE_UTILITY",
|
"_NET_WM_WINDOW_TYPE_UTILITY",
|
||||||
"_NET_WM_WINDOW_TYPE_SPLASH",
|
"_NET_WM_WINDOW_TYPE_SPLASH",
|
||||||
"_NET_WM_WINDOW_TYPE_TOOLBAR"
|
"_NET_WM_WINDOW_TYPE_TOOLBAR",
|
||||||
|
"_NET_WM_WINDOW_TYPE_DROPDOWN_MENU",
|
||||||
|
"_NET_WM_WINDOW_TYPE_TOOLTIP"
|
||||||
};
|
};
|
||||||
Atom atoms[G_N_ELEMENTS(atom_names)];
|
Atom atoms[G_N_ELEMENTS(atom_names)];
|
||||||
MetaCompositorXRender *xrc;
|
MetaCompositorXRender *xrc;
|
||||||
@ -2963,6 +2989,8 @@ meta_compositor_xrender_new (MetaDisplay *display)
|
|||||||
xrc->atom_net_wm_window_type_utility = atoms[10];
|
xrc->atom_net_wm_window_type_utility = atoms[10];
|
||||||
xrc->atom_net_wm_window_type_splash = atoms[11];
|
xrc->atom_net_wm_window_type_splash = atoms[11];
|
||||||
xrc->atom_net_wm_window_type_toolbar = atoms[12];
|
xrc->atom_net_wm_window_type_toolbar = atoms[12];
|
||||||
|
xrc->atom_net_wm_window_type_dropdown_menu = atoms[13];
|
||||||
|
xrc->atom_net_wm_window_type_tooltip = atoms[14];
|
||||||
|
|
||||||
#ifdef USE_IDLE_REPAINT
|
#ifdef USE_IDLE_REPAINT
|
||||||
meta_verbose ("Using idle repaint\n");
|
meta_verbose ("Using idle repaint\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user