struct _ObMenuFrame
{
/* stuff to be an ObWindow */
- Window_InternalType type;
+ ObWindow obwin;
Window window;
struct _ObMenu *menu;
gint monitor; /* monitor on which to show the menu in xinerama */
- RrAppearance *a_title;
+ /* We make a copy of this for each menu, so that we don't have to re-render
+ the background of the entire menu each time we render an item inside it.
+ */
RrAppearance *a_items;
+
+ gboolean got_press; /* don't allow a KeyRelease event to run things in the
+ menu until it has seen a KeyPress. this is to
+ avoid having the keybinding used to show the menu
+ end up running something inside the menu */
};
struct _ObMenuEntryFrame
Window icon;
Window text;
Window bullet;
-
- RrAppearance *a_normal;
- RrAppearance *a_selected;
- RrAppearance *a_disabled;
- RrAppearance *a_disabled_selected;
-
- RrAppearance *a_icon;
- RrAppearance *a_mask;
- RrAppearance *a_bullet_normal;
- RrAppearance *a_bullet_selected;
- RrAppearance *a_separator;
- RrAppearance *a_text_normal;
- RrAppearance *a_text_selected;
- RrAppearance *a_text_disabled;
- RrAppearance *a_text_disabled_selected;
- RrAppearance *a_text_title;
};
extern GHashTable *menu_frame_map;
void menu_entry_frame_show_submenu(ObMenuEntryFrame *self);
-void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state, Time time);
+void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state);
#endif