static void matewnck_selector_finalize (GObject *object) { MatewnckSelector *selector; selector = MATEWNCK_SELECTOR (object); if (selector->priv->window_hash) g_hash_table_destroy (selector->priv->window_hash); selector->priv->window_hash = NULL; G_OBJECT_CLASS (matewnck_selector_parent_class)->finalize (object); }
static void matewnck_selector_dispose (GObject *object) { MatewnckSelector *selector; selector = MATEWNCK_SELECTOR (object); if (selector->priv->menu) gtk_widget_destroy (selector->priv->menu); selector->priv->menu = NULL; selector->priv->image = NULL; selector->priv->icon_window = NULL; G_OBJECT_CLASS (matewnck_selector_parent_class)->dispose (object); }
static GObject * matewnck_selector_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { GObject *obj; obj = G_OBJECT_CLASS (matewnck_selector_parent_class)->constructor ( type, n_construct_properties, construct_properties); matewnck_selector_fill (MATEWNCK_SELECTOR (obj)); return obj; }
static void matewnck_selector_unrealize (GtkWidget *widget) { MatewnckSelector *selector; MatewnckScreen *screen; GList *l; selector = MATEWNCK_SELECTOR (widget); screen = matewnck_selector_get_screen (selector); matewnck_selector_disconnect_from_screen (selector, screen); for (l = matewnck_screen_get_windows (screen); l; l = l->next) matewnck_selector_disconnect_from_window (selector, l->data); GTK_WIDGET_CLASS (matewnck_selector_parent_class)->unrealize (widget); }
static void matewnck_selector_realize (GtkWidget *widget) { MatewnckSelector *selector; MatewnckScreen *screen; MatewnckWindow *window; GList *l; GTK_WIDGET_CLASS (matewnck_selector_parent_class)->realize (widget); selector = MATEWNCK_SELECTOR (widget); screen = matewnck_selector_get_screen (selector); window = matewnck_screen_get_active_window (screen); matewnck_selector_set_active_window (selector, window); for (l = matewnck_screen_get_windows (screen); l; l = l->next) matewnck_selector_connect_to_window (selector, l->data); matewnck_selector_connect_to_screen (selector, screen); }
static gboolean window_menu_key_press_event(GtkWidget* widget, GdkEventKey* event, WindowMenu* window_menu) { GtkMenuShell* menu_shell; MatewnckSelector* selector; switch (event->keyval) { case GDK_KP_Enter: case GDK_ISO_Enter: case GDK_3270_Enter: case GDK_Return: case GDK_space: case GDK_KP_Space: selector = MATEWNCK_SELECTOR(window_menu->selector); /* * We need to call _gtk_menu_shell_activate() here as is done in * window_key_press_handler in gtkmenubar.c which pops up menu * when F10 is pressed. * * As that function is private its code is replicated here. */ menu_shell = GTK_MENU_SHELL(selector); if (!menu_shell->active) { gtk_grab_add(GTK_WIDGET(menu_shell)); menu_shell->have_grab = TRUE; menu_shell->active = TRUE; } gtk_menu_shell_select_first(menu_shell, FALSE); return TRUE; default: break; } return FALSE; }